#!/bin/bash # ───────────────────────────────────────────────────────────────── # one.OS — Server Deployment Script # Aufruf: sudo bash deploy.sh # Voraussetzung: Repository unter /opt/one-os geclont # ───────────────────────────────────────────────────────────────── set -e REPO_DIR="/opt/one-os" APP_DIR="$REPO_DIR/one_os_webapp" SERVICE_NAME="one-os" echo "" echo " ┌─────────────────────────────────────────┐" echo " │ one.OS — Deploy Script │" echo " └─────────────────────────────────────────┘" echo "" # 1. Git Pull echo "▶ Pulling latest changes..." cd "$REPO_DIR" git pull origin main echo "✅ Repository aktualisiert" # 2. Update Frontend (aktuelle Version als index.html) echo "▶ Aktualisiere Frontend..." LATEST=$(ls "$REPO_DIR"/one.OS_local_v*.html 2>/dev/null | sort -V | tail -n 1) if [ -n "$LATEST" ]; then cp "$LATEST" "$APP_DIR/static/index.html" echo "✅ Frontend: $(basename $LATEST) → static/index.html" else echo "⚠️ Keine one.OS_local_v*.html gefunden — index.html unverändert" fi # 3. Python Dependencies echo "▶ Prüfe Python-Abhängigkeiten..." pip3 install -r "$APP_DIR/requirements.txt" --quiet --break-system-packages echo "✅ Abhängigkeiten aktuell" # 4. Service neu starten echo "▶ Starte one.OS Service neu..." systemctl restart "$SERVICE_NAME" sleep 2 # 5. Status prüfen if systemctl is-active --quiet "$SERVICE_NAME"; then echo "✅ Service läuft" else echo "❌ Service-Start fehlgeschlagen — Logs:" journalctl -u "$SERVICE_NAME" -n 20 --no-pager exit 1 fi echo "" echo " ✅ Deployment abgeschlossen" echo ""