add setup script

This commit is contained in:
2025-11-22 14:09:25 +01:00
parent 7cd73e0fa8
commit 705b527638

80
setup_build_server.sh Normal file
View File

@@ -0,0 +1,80 @@
#!/bin/bash
set -e
# -----------------------------
# Variablen anpassen
# -----------------------------
REPO_URL="https://gitea.malmert.de/marcus/mitm-webserver.git"
APP_DIR="/opt/mitm-webserver"
FRONTEND_DIR="$APP_DIR/frontend"
BACKEND_DIR="$APP_DIR/backend"
BACKEND_SERVICE="mitm-backend"
NGINX_SITE="/etc/nginx/sites-available/mitm-webserver"
USER_ROOT="root"
GITEA_RUNNER_URL="https://gitea.malmert.de//api/v1/repos/marcus/mitm-webserver/actions/runners/register"
RUNNER_TOKEN="Kjwkep8nEQet05z1syzi7FSaZZh1Zt340GdJauNt"
RUNNER_NAME="mitm-runner"
NODE_VERSION="lts/*" # aktuelle LTS Version
PYTHON_VERSION="3" # aktuelle Python 3 Version
# -----------------------------
# System aktualisieren & Pakete installieren
# -----------------------------
echo "==> Update & Upgrade"
apt update && apt upgrade -y
apt install -y git curl build-essential nginx python3 python3-pip python3-venv unzip wget
# -----------------------------
# Node.js installieren (LTS)
# -----------------------------
echo "==> Install Node.js LTS"
curl -fsSL https://deb.nodesource.com/setup_lts.x | bash -
apt install -y nodejs
# -----------------------------
# Repository clonen / pull
# -----------------------------
echo "==> Setup repository"
if [ ! -d "$APP_DIR" ]; then
git clone "$REPO_URL" "$APP_DIR"
else
cd "$APP_DIR"
git reset --hard
git pull
fi
# -----------------------------
# Frontend bauen
# -----------------------------
echo "==> Build Frontend"
cd "$FRONTEND_DIR"
npm install
npm run build
# -----------------------------
# Backend vorbereiten
# -----------------------------
echo "==> Setup Backend"
cd "$BACKEND_DIR"
python3 -m venv venv
source venv/bin/activate
pip install --upgrade pip
pip install -r requirements.txt
deactivate
# -----------------------------
# Systemd Service für Backend
# -----------------------------
echo "==> Setup Systemd Service"
cat >/etc/systemd/system/$BACKEND_SERVICE.service <<EOL
[Unit]
Description=MITM Backend
After=network.target
[Service]
User=$USER_ROOT
WorkingDirectory=$BACKEND_DIR
ExecStart=$BACKEND_DIR/venv/bin/uvicorn src.main:app --host 0.0.0.0 --port 8000
Restar