aitrader/deploy/install.sh

37 lines
1.3 KiB
Bash
Raw Permalink Normal View History

#!/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"