- .cursorrules: 20-Zeilen Router, lädt nur relevanten Kontext - MASTER_INDEX.md: Einseiten-Übersicht aller Projekte - infrastructure/STATE.md: alle Server, Container, IPs - arakava-news/STATE.md: WordPress + RSS Manager - edelmetall/STATE.md: Gold/Silber Dashboard - smart-home/STATE.md: ioBroker, Grafana, Backup-System - esp32/PLAN.md: Hardware-Projekte - scripts/sync-state.sh: Auto-Sync täglich 03:00 - scripts/setup.sh: Einmalig einrichten
40 lines
1.3 KiB
Bash
40 lines
1.3 KiB
Bash
#!/bin/bash
|
|
# ============================================================
|
|
# Einmalig ausführen auf pve-hetzner um Auto-Sync einzurichten
|
|
# ssh root@100.88.230.59
|
|
# bash <(curl -s https://raw.githubusercontent.com/Orbitalo/homelab-brain/main/scripts/setup.sh)
|
|
# ============================================================
|
|
|
|
GH_TOKEN="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"
|
|
REPO_URL="https://${GH_TOKEN}@github.com/Orbitalo/homelab-brain.git"
|
|
REPO_DIR="/opt/homelab-brain"
|
|
|
|
echo "=== homelab-brain Setup ==="
|
|
|
|
# 1. Repo klonen
|
|
if [ -d "$REPO_DIR" ]; then
|
|
echo "Repo vorhanden, update..."
|
|
cd "$REPO_DIR" && git pull
|
|
else
|
|
echo "Klone Repo..."
|
|
git clone "$REPO_URL" "$REPO_DIR"
|
|
fi
|
|
|
|
# 2. Script ausführbar machen
|
|
chmod +x "$REPO_DIR/scripts/sync-state.sh"
|
|
|
|
# 3. Cron-Job einrichten (täglich 03:00)
|
|
CRON_ENTRY="0 3 * * * root /opt/homelab-brain/scripts/sync-state.sh >> /var/log/homelab-sync.log 2>&1"
|
|
if ! grep -q "homelab-brain" /etc/crontab; then
|
|
echo "$CRON_ENTRY" >> /etc/crontab
|
|
echo "Cron-Job eingerichtet (täglich 03:00)"
|
|
else
|
|
echo "Cron-Job bereits vorhanden"
|
|
fi
|
|
|
|
# 4. Einmalig jetzt synchronisieren
|
|
echo "Führe ersten Sync aus..."
|
|
"$REPO_DIR/scripts/sync-state.sh"
|
|
|
|
echo "=== Setup abgeschlossen ==="
|
|
echo "Logs: tail -f /var/log/homelab-sync.log"
|