#!/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 < Configure Nginx" cat >$NGINX_SITE < Install Gitea Act Runner" RUNNER_DIR="/opt/gitea-act-runner" mkdir -p "$RUNNER_DIR" cd "$RUNNER_DIR" # Binary herunterladen GITEA_RUNNER_BIN="act_runner-0.2.13-linux-amd64" wget -O $GITEA_RUNNER_BIN "https://gitea.com/gitea/act_runner/releases/download/v0.2.13/act_runner-0.2.13-linux-amd64" chmod +x $GITEA_RUNNER_BIN mv $GITEA_RUNNER_BIN act_runner # Runner registrieren ./act_runner register --instance "https://gitea.malmert.de/" --token "$RUNNER_TOKEN" --name "$RUNNER_NAME" --no-interactive # Systemd-Service einrichten cat >/etc/systemd/system/gitea-act-runner.service < Gitea Act Runner installiert & gestartet" # ----------------------------- # Gitea Runner Job Script # ----------------------------- echo "==> Setup auto-build script" BUILD_SCRIPT="$RUNNER_DIR/build.sh" cat >$BUILD_SCRIPT <<'EOL' #!/bin/bash set -e APP_DIR="/opt/mitm-webserver" FRONTEND_DIR="$APP_DIR/frontend" BACKEND_DIR="$APP_DIR/backend" BACKEND_SERVICE="mitm-backend" cd $APP_DIR git reset --hard git pull # Build Frontend cd $FRONTEND_DIR npm install npm run build # Backend Dependencies cd $BACKEND_DIR source venv/bin/activate pip install -r requirements.txt deactivate # Restart backend systemctl restart $BACKEND_SERVICE EOL chmod +x $BUILD_SCRIPT echo "==> Setup complete! Gitea Runner will automatically build on push." echo "Frontend: http:///" echo "Backend API: http:///api/"