diff --git a/scripts/deploy.sh b/scripts/deploy.sh new file mode 100755 index 00000000..9e1df6ba --- /dev/null +++ b/scripts/deploy.sh @@ -0,0 +1,34 @@ +#!/bin/bash +# deploy.sh — Push zu Forgejo + sofort auf pve-hetzner synchronisieren +# CT 116 sieht Änderungen automatisch über Bind-Mount. +# +# Nutzung: ./scripts/deploy.sh "Commit-Nachricht" +# ./scripts/deploy.sh (ohne Nachricht = Auto-Message) + +set -euo pipefail +cd "$(dirname "$0")/.." + +source homelab.conf + +MSG="${1:-Deploy: $(date +%Y-%m-%d\ %H:%M)}" + +git add -A +if git diff --cached --quiet 2>/dev/null; then + echo "Nichts zu committen." +else + git commit -m "$MSG" +fi + +git fetch forgejo main +git rebase forgejo/main +git push forgejo main + +echo "→ Sync auf pve-hetzner..." +sshpass -p "$PW_HETZNER" ssh -o StrictHostKeyChecking=no root@$SRV_HETZNER \ + 'cd /opt/homelab-brain && git fetch origin main --quiet && git reset --hard FETCH_HEAD --quiet && echo "OK: $(git log --oneline -1)"' + +echo "→ Bot neu starten..." +sshpass -p "$PW_HETZNER" ssh -o StrictHostKeyChecking=no root@$SRV_HETZNER \ + 'pct exec 116 -- systemctl restart hausmeister-bot 2>/dev/null && echo "Bot restarted" || echo "Bot restart nicht nötig"' + +echo "✅ Deploy fertig."