57 lines
2 KiB
Bash
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 ""
|