Files
zshrc/server-setup.md
T
2021-09-18 11:38:11 -04:00

229 lines
3.8 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# HyDEV Server Setup
Notes about how to setup a Fedora 32 server for HyDEV
## 1. Wifi Connection for Potato Laptop Servers
Connect to ethernet first, and then:
```bash
nmcli
nmcli d connect <device>
```
Setting up wifi:
(If `wpa_supplicant` isn't installed, it would say "unavailable")
```bash
dnf install NetworkManager-tui wpa_supplicant
systemctl enable wpa_supplicant
reboot
```
And then select the wifi and connect:
```bash
nmtui
```
If you are using 811AC usb wifi adapter too, install the driver:
```bash
dnf install make automake gcc gcc-c++ kernel-devel dkms
mkdir drivers
cd drivers
git clone https://github.com/brektrou/rtl8821CU
cd rt18821CU
./dkms-install.sh
```
Toggle USB wifi adapter mode: (Find the coresponding device ID eg. `0bda:c811`)
```bash
lsusb
sudo usb_modeswitch -KW -v 0bda -p c811
reboot
nmtui
```
### Laptop Close Lid
```bash
nano /etc/systemd/logind.conf
# Add HandleLidSwitch=ignore
systemctl restart systemd-logind
```
## 2. Mariadb
Files: None
Steps:
```bash
dnf install mariadb mariadb-server
sctl enable mariadb
sctl start mariadb
mysql_secure_installation
mysql -p
GRANT ALL PRIVILEGES ON *.* TO 'root'@'...ip...' IDENTIFIED BY '...password...' WITH GRANT OPTION;
```
## 3. Nginx
Files:
* /etc/nginx/nginx.conf
* /etc/nginx/html/*
* /etc/letsencrypt/*
* /app/hres/*
Steps:
```bash
dnf install nginx certbot certbot-nginx
# And then you copy the config files
chron -Rt httpd_sys_content_t /app/
```
## 4. Shadowsocks
Files:
`/etc/shadowsocks-libev/hydev.json`:
```json
{
"server": "0.0.0.0",
"server_port": <Port>,
"password": "<Password>",
"method": "aes-256-cfb",
"mode": "tcp_and_udp"
}
```
Steps:
```bash
dnf copr enable librehat/shadowsocks
dnf update
dnf install shadowsocks-libev
# And then you copy the config files
sctl enable shadowsocks-libev-server@hydev
sctl start shadowsocks-libev-server@hydev
```
## 5. Java Application Servers
Files:
* /app/depl/\<application\>
* /etc/systemd/system/\<application\>.service
```ini
[Unit]
Description=<name>
[Service]
WorkingDirectory=/app/depl/<application>/
ExecStart=/bin/bash launch.sh
User=jvmapps
Type=simple
Restart=on-failure
RestartSec=5
[Install]
WantedBy=multi-user.target
```
* /app/depl/\<application\>/launch.sh
```sh
/usr/bin/java -cp <application>.jar:./lib/* -Xms1024M -Xmx2048M org.hydev.Main
```
Steps:
```bash
groupadd -r appmgr
useradd -r -s /bin/false -g appmgr jvmapps
chown -R jvmapps:appmgr /app/depl/<application>/
sctl start <application>
sctl enable <application>
```
## 6. LAN File Servers (SMB)
https://www.jianshu.com/p/cc9da3a154a0
Files:
* /etc/samba/smb.conf
```ini
[global]
workgroup = HYDEV
security = user
passdb backend = tdbsam
[data]
comment = Shared data
path = /mnt/data
public = no
admin users = admin
valid users = @admin smb-user
browseable = yes
writable = yes
create mask = 0777
directory mask = 0777
force directory mode = 0777
force create mode = 0777
```
Steps:
```bash
dnf install samba
nano /etc/samba/smb.conf
groupadd -r samba
useradd -r -s /bin/false -g samba smb-user
smbpasswd -a smb-user
sctl enable smb nmb
sctl start smb nmb
```
Allow smb access with SELinux enabled
https://www.lisenet.com/2016/samba-server-on-rhel-7/
```bash
setsebool -P samba_export_all_ro=1 samba_export_all_rw=1
semanage fcontext at samba_share_t "/mnt/data(/.*)?"
restorecon -Rv /mnt/data
```
If you are still using an NTFS drive:
```bash
dnf install ntfs-3g fuse
modprobe fuse
mount -t ntfs-3g /dev/sdb1 /mnt/data
nano /etc/fstab
# Add line: /dev/sdb1 /mnt/data ntfs-3g defaults 0 0
```
## 7. Firewall (UFW)
```bash
sctl disable firewalld
sctl stop firewalld
dnf install ufw
sctl enable ufw
sctl start ufw
ufw status
```
Allow all traffic from LAN:
```bash
ufw allow from 192.168.0.0/16
```