add setup script
This commit is contained in:
80
setup_build_server.sh
Normal file
80
setup_build_server.sh
Normal 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
|
||||
Reference in New Issue
Block a user