mirror of
https://codeberg.org/Mo8it/AdvLabDB.git
synced 2024-12-20 23:41:20 +00:00
Remove Xonsh scripts
This commit is contained in:
parent
0536cc699f
commit
8cfaa1651b
5 changed files with 0 additions and 192 deletions
|
@ -1,90 +0,0 @@
|
||||||
#!/usr/bin/env xonsh
|
|
||||||
|
|
||||||
from pathlib import Path
|
|
||||||
import sys
|
|
||||||
|
|
||||||
script_dir = Path(__file__).parent.absolute()
|
|
||||||
|
|
||||||
sys.path.insert(0, str(script_dir))
|
|
||||||
|
|
||||||
from shared import step, install_latest_pipx, poetry_install_latest
|
|
||||||
|
|
||||||
logs_dir = Path("/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")
|
|
||||||
gunicorn_service_file = script_dir / "gunicorn.service"
|
|
||||||
sudo cp -v @(gunicorn_service_file) /etc/systemd/system/
|
|
||||||
sudo systemctl enable gunicorn
|
|
||||||
|
|
||||||
step("Setup Nginx")
|
|
||||||
for dir_appendix in ("available", "enabled"):
|
|
||||||
sudo rm -v /etc/nginx/sites-@(dir_appendix)/default
|
|
||||||
|
|
||||||
nginx_conf_file = script_dir / "advlabdb.conf"
|
|
||||||
sudo cp -v @(nginx_conf_file) /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 = Path("/home/admin/.local/bin/")
|
|
||||||
$PATH.insert(0, str(local_bin))
|
|
||||||
|
|
||||||
step("Install Poetry")
|
|
||||||
pipx install poetry
|
|
||||||
|
|
||||||
step("Install Certbot")
|
|
||||||
pipx install certbot
|
|
||||||
pipx inject certbot certbot-nginx
|
|
||||||
|
|
||||||
step("Setup Certbot")
|
|
||||||
certbot_bin = local_bin / "certbot"
|
|
||||||
sudo @(certbot_bin) --nginx
|
|
||||||
echo f"0 0,12 * * * root python3 -c 'import random; import time; time.sleep(random.random() * 3600)' && sudo {certbot_bin} renew -q" | sudo tee -a /etc/crontab
|
|
||||||
|
|
||||||
step("Setup update cron jobs")
|
|
||||||
xonsh_bin = local_bin / "xonsh"
|
|
||||||
|
|
||||||
user_update_script = script_dir / "user_update.xsh"
|
|
||||||
user_update_log = logs_dir / "user_update.log"
|
|
||||||
|
|
||||||
root_update_script = script_dir / "root_update.xsh"
|
|
||||||
root_update_log = logs_dir / "root_update.log"
|
|
||||||
|
|
||||||
# Every Sunday at 04:00
|
|
||||||
echo f"0 4 * * 0 admin {xonsh_bin} {user_update_script} &>> {user_update_log}" | sudo tee -a /etc/crontab
|
|
||||||
# Every Sunday at 04:15
|
|
||||||
echo f"15 4 * * 0 root {xonsh_bin} {root_update_script} &>> {root_update_log}" | sudo tee -a /etc/crontab
|
|
||||||
|
|
||||||
step("Install latest Poetry packages")
|
|
||||||
poetry_install_latest(script_dir)
|
|
||||||
|
|
||||||
step("Deactivate the 'root' user")
|
|
||||||
sudo passwd -l root
|
|
||||||
|
|
||||||
step("Reboot")
|
|
||||||
sudo reboot
|
|
|
@ -1,20 +0,0 @@
|
||||||
#!/usr/bin/env xonsh
|
|
||||||
|
|
||||||
from pathlib import Path
|
|
||||||
import sys
|
|
||||||
|
|
||||||
script_dir = Path(__file__).parent.absolute()
|
|
||||||
|
|
||||||
sys.path.insert(0, str(script_dir))
|
|
||||||
|
|
||||||
from shared import box, spaced_hl
|
|
||||||
|
|
||||||
spaced_hl()
|
|
||||||
|
|
||||||
box($(date), "Update on")
|
|
||||||
|
|
||||||
box("Update system packages")
|
|
||||||
sudo apt update
|
|
||||||
sudo apt upgrade -y
|
|
||||||
|
|
||||||
sudo reboot
|
|
|
@ -1,17 +0,0 @@
|
||||||
#!/usr/bin/env xonsh
|
|
||||||
|
|
||||||
from pathlib import Path
|
|
||||||
|
|
||||||
script_dir = Path(__file__).parent.absolute()
|
|
||||||
|
|
||||||
logs_dir = Path("/var/log/advlabdb/")
|
|
||||||
|
|
||||||
# Create logs directory
|
|
||||||
sudo mkdir -v -p @(logs_dir)
|
|
||||||
sudo chown -R admin:admin @(logs_dir)
|
|
||||||
|
|
||||||
logged_server_setup_script = script_dir / "logged_server_setup.xsh"
|
|
||||||
log_file = logs_dir / "server_setup.log"
|
|
||||||
|
|
||||||
# Start actual server setup script with logging
|
|
||||||
xonsh @(logged_server_setup_script) | tee @(log_file)
|
|
|
@ -1,40 +0,0 @@
|
||||||
#!/usr/bin/env xonsh
|
|
||||||
|
|
||||||
def box(message, context=None):
|
|
||||||
text_line = "| "
|
|
||||||
|
|
||||||
if context is not None:
|
|
||||||
textline += context + ": "
|
|
||||||
|
|
||||||
text_line += message + " |"
|
|
||||||
|
|
||||||
separator = "=" * (4 + len(text))
|
|
||||||
|
|
||||||
print()
|
|
||||||
print(separator)
|
|
||||||
print(textline)
|
|
||||||
print(separator)
|
|
||||||
print()
|
|
||||||
|
|
||||||
def step(message):
|
|
||||||
continue_message = "-> Press ENTER to continue or Ctrl+C to interrupt the script <-"
|
|
||||||
upper_separator = "_" * len(continue_message)
|
|
||||||
|
|
||||||
print()
|
|
||||||
print(upper_separator)
|
|
||||||
|
|
||||||
box(message, "Next step")
|
|
||||||
|
|
||||||
print(continue_message)
|
|
||||||
read -s
|
|
||||||
print()
|
|
||||||
|
|
||||||
def install_latest_pipx():
|
|
||||||
pip install --user --upgrade pipx
|
|
||||||
|
|
||||||
def poetry_install_latest(script_dir):
|
|
||||||
cd @(script_dir)/..
|
|
||||||
poetry install
|
|
||||||
|
|
||||||
def spaced_hl():
|
|
||||||
print("\n\n___________________\n\n")
|
|
|
@ -1,25 +0,0 @@
|
||||||
#!/usr/bin/env xonsh
|
|
||||||
|
|
||||||
from pathlib import Path
|
|
||||||
import sys
|
|
||||||
|
|
||||||
script_dir = Path(__file__).parent.absolute()
|
|
||||||
|
|
||||||
sys.path.insert(0, str(script_dir))
|
|
||||||
|
|
||||||
from shared import box, install_latest_pipx, poetry_install_latest, spaced_hl
|
|
||||||
|
|
||||||
spaced_hl()
|
|
||||||
|
|
||||||
box($(date), "Update on")
|
|
||||||
|
|
||||||
box("Upgrade pipx")
|
|
||||||
install_latest_pipx()
|
|
||||||
|
|
||||||
box("Upgrade pipx packages")
|
|
||||||
pipx upgrade-all --include-injected
|
|
||||||
|
|
||||||
# TODO: Backup
|
|
||||||
|
|
||||||
box("Install latest Poetry packages")
|
|
||||||
poetry_install_latest(script_dir)
|
|
Loading…
Reference in a new issue