#!/usr/bin/env bash # Idempotentes Setup auf dem VPS. Aus dem Repo-Root mit `sudo bash deploy/install.sh` aufrufen. set -euo pipefail REPO_DIR="${REPO_DIR:-/opt/aitrader}" USER_NAME="aitrader" echo "[1/6] System-Pakete" apt-get update apt-get install -y python3 python3-venv git curl ufw echo "[2/6] Service-User" id "$USER_NAME" &>/dev/null || useradd --system --create-home --shell /usr/sbin/nologin "$USER_NAME" echo "[3/6] Repo-Verzeichnis" mkdir -p "$REPO_DIR/data" chown -R "$USER_NAME":"$USER_NAME" "$REPO_DIR" echo "[4/6] uv installieren (für $USER_NAME)" sudo -u "$USER_NAME" bash -c 'command -v uv >/dev/null 2>&1 || curl -LsSf https://astral.sh/uv/install.sh | sh' echo "[5/6] venv + dependencies" cd "$REPO_DIR" sudo -u "$USER_NAME" bash -c "cd '$REPO_DIR' && \$HOME/.local/bin/uv venv --python 3.12 && \$HOME/.local/bin/uv pip install -e ." echo "[6/6] systemd-Units installieren" cp deploy/systemd/aitrader.service /etc/systemd/system/ cp deploy/systemd/aitrader-dashboard.service /etc/systemd/system/ systemctl daemon-reload echo echo "Fertig. Nächste Schritte:" echo " 1) .env in $REPO_DIR/.env eintragen (Keys!)" echo " 2) systemctl enable --now aitrader.service" echo " 3) systemctl enable --now aitrader-dashboard.service" echo " 4) journalctl -u aitrader -f"