mirror of
https://codeberg.org/Mo8it/AdvLabDB.git
synced 2024-12-20 23:41:20 +00:00
Add server setup script
This commit is contained in:
parent
7560da3834
commit
1e264dfc80
1 changed files with 71 additions and 0 deletions
71
scripts/server_setup.sh
Normal file
71
scripts/server_setup.sh
Normal file
|
@ -0,0 +1,71 @@
|
||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
SDIR="$(cd -- "$(dirname -- "${BASH_SOURCE[0]}")" && pwd)"
|
||||||
|
|
||||||
|
source "$SDIR/shared.sh"
|
||||||
|
|
||||||
|
LOGS_DIR=/var/log/advlabdb
|
||||||
|
|
||||||
|
step "Update system packages"
|
||||||
|
sudo apt update
|
||||||
|
sudo apt dist-upgrade
|
||||||
|
|
||||||
|
step "Remove unused packages"
|
||||||
|
sudo apt autoremove
|
||||||
|
|
||||||
|
step "Install needed system packages"
|
||||||
|
sudo apt install python3 python3-pip python3-venv ufw nginx systemd -y
|
||||||
|
|
||||||
|
step "Install optional system packages"
|
||||||
|
sudo apt install htop
|
||||||
|
|
||||||
|
step "Setup firewall"
|
||||||
|
sudo ufw default allow outgoing
|
||||||
|
sudo ufw default deny incoming
|
||||||
|
sudo ufw allow ssh
|
||||||
|
sudo ufw allow http/tcp
|
||||||
|
# TODO: Setup https
|
||||||
|
#sudo ufw allow https/tcp
|
||||||
|
sudo ufw enable
|
||||||
|
sudo ufw status
|
||||||
|
|
||||||
|
step "Enable Gunicorn"
|
||||||
|
sudo cp -v "$SDIR/gunicorn.service" /etc/systemd/system/
|
||||||
|
sudo systemctl enable gunicorn
|
||||||
|
|
||||||
|
step "Setup Nginx"
|
||||||
|
sudo rm -v /etc/nginx/sites-{available,enabled}/default
|
||||||
|
sudo cp -v "$SDIR/advlabdb.conf" /etc/nginx/sites-available/
|
||||||
|
sudo ln -v -s /etc/nginx/sites-available/advlabdb.conf /etc/nginx/sites-enabled/
|
||||||
|
sudo systemctl enable nginx
|
||||||
|
|
||||||
|
step "Install pipx"
|
||||||
|
install_latest_pipx
|
||||||
|
LOCAL_BIN=/home/admin/.local/bin/
|
||||||
|
PATH="$LOCAL_BIN:$PATH"
|
||||||
|
|
||||||
|
step "Install Poetry"
|
||||||
|
pipx install poetry
|
||||||
|
|
||||||
|
step "Install Certbot"
|
||||||
|
pipx install certbot
|
||||||
|
pipx inject certbot certbot-nginx
|
||||||
|
|
||||||
|
step "Setup Certbot"
|
||||||
|
sudo "$LOCAL_BIN/certbot" --nginx
|
||||||
|
echo "0 0,12 * * * root python3 -c 'import random; import time; time.sleep(random.random() * 3600)' && sudo $LOCAL_BIN/certbot renew -q" | sudo tee -a /etc/crontab
|
||||||
|
|
||||||
|
step "Setup update cron jobs"
|
||||||
|
# Every Sunday at 04:00
|
||||||
|
echo "0 4 * * 0 admin bash $SDIR/user_update.sh &>> $LOGS_DIR/user_update.log" | sudo tee -a /etc/crontab
|
||||||
|
# Every Sunday at 04:15
|
||||||
|
echo "15 4 * * 0 root bash $SDIR/root_update.sh &>> $LOGS_DIR/root_update.log" | sudo tee -a /etc/crontab
|
||||||
|
|
||||||
|
step "Install latest Poetry packages"
|
||||||
|
poetry_install_latest
|
||||||
|
|
||||||
|
step "Deactivate the 'root' user"
|
||||||
|
sudo passwd -l root
|
||||||
|
|
||||||
|
step "Reboot"
|
||||||
|
sudo reboot
|
Loading…
Reference in a new issue