oneOS/deploy.sh
2026-04-02 06:53:43 +00:00

57 lines
2 KiB
Bash

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