Automatische Versionskontrolle für deine Home Assistant Konfiguration. Gitea Config Sync pusht deine
/config-Dateien zuverlässig in ein Gitea-Repository — bei jeder Änderung, nach Zeitplan oder auf Knopfdruck.
- 🔄 File-Watcher — erkennt Änderungen sofort und synchronisiert automatisch (5s Debounce)
- ⏱️ Zeitgesteuerter Sync — konfigurierbares Intervall von 1 bis 1440 Minuten
- 🚀 Startup-Sync — synchronisiert automatisch bei jedem HA-Neustart
- 🖱️ Manueller Sync — per Button-Entity direkt im Dashboard oder per Service
- 🎯 Einzeldatei-Sync — gezieltes Pushen einzelner Dateien per Service-Aufruf
- 🔒 Secrets-Schutz —
secrets.yamlund.storage/sind standardmäßig ausgeschlossen - ⚡ Intelligenter Vergleich — nur tatsächlich geänderte Dateien werden gepusht
- 📊 Status-Sensor — zeigt
idle,running,successoderfailedmit Commit-SHA - 🔧 Flexible Pfadkonfiguration — Include/Exclude per Glob-Muster frei konfigurierbar
- ⚙️ Options-Flow — alle Einstellungen nachträglich änderbar, kein Neustart nötig
- Den Button oben klicken oder in HACS manuell als Custom Repository hinzufügen:
https://github.com/jenskaesler/gitea_sync→ Kategorie: Integration - Gitea Config Sync suchen und Herunterladen klicken
- Home Assistant neu starten
- Einstellungen → Geräte & Dienste → Integration hinzufügen → Gitea Config Sync
- Das neueste Release herunterladen
gitea_sync.zipentpacken- Den Ordner
custom_components/gitea_sync/nach/config/custom_components/gitea_sync/kopieren - Home Assistant neu starten
Für die automatische Erkennung von Dateiänderungen wird watchdog benötigt.
Ohne watchdog sind alle anderen Sync-Methoden weiterhin voll funktionsfähig.
# In der HA-Shell (Advanced SSH Addon):
pip install watchdogDie Einrichtung erfolgt in drei Schritten über den integrierten Config-Flow.
Einstellungen → Geräte & Dienste → Integration hinzufügen → Gitea Config Sync
- Gitea URL — URL deiner Gitea-Instanz, z.B.
https://gitea.example.com - Access Token — Gitea Personal Access Token (Scope:
repository) - Repository-Besitzer — dein Gitea-Username oder eine Organisation
- Repository-Name — Name des Ziel-Repositories, z.B.
ha-config - Branch — Ziel-Branch, Standard:
main
Token erstellen: Gitea → Einstellungen → Anwendungen → Token generieren → Scope
repositoryaktivieren
- Einschließen — Glob-Muster für zu synchronisierende Dateien, kommagetrennt
Standard:
*.yaml,*.json - Ausschließen — Glob-Muster für ausgeschlossene Dateien, kommagetrennt
Standard:
secrets.yaml,.storage/,*.log,home-assistant_v2.db - Commit-Präfix — Präfix für automatische Commit-Nachrichten
Standard:
HA Auto-Sync
- Intervall — Automatischer Sync alle X Minuten (
0= deaktiviert, max. 1440) - Beim Start synchronisieren — Sync bei jedem HA-Neustart (Standard:
true) - Dateiänderungen überwachen — File-Watcher aktivieren (benötigt
watchdog)
Nach der Einrichtung stehen zwei Entitäten zur Verfügung:
Zeigt den aktuellen Synchronisationsstatus:
idle— wartet auf den nächsten Triggerrunning— Synchronisation läuft geradesuccess— letzter Sync erfolgreich abgeschlossenfailed— letzter Sync fehlgeschlagen
Attribute des Sensors:
last_sync— Zeitstempel der letzten Synchronisation (ISO 8601)last_commit— SHA des letzten Commits (7 Zeichen)files_synced— Anzahl der tatsächlich geänderten Dateien
Löst sofort eine vollständige Synchronisation aus — ideal für das Dashboard.
Startet eine vollständige Synchronisation aller konfigurierten Dateien.
service: gitea_sync.sync_nowSynchronisiert eine einzelne Datei aus /config nach Gitea.
service: gitea_sync.sync_file
data:
file_path: "automations.yaml"alias: Tägliche HA-Config Sicherung nach Gitea
trigger:
- platform: time
at: "02:00:00"
action:
- service: gitea_sync.sync_nowalias: Gitea Sync Fehler-Benachrichtigung
trigger:
- platform: state
entity_id: sensor.gitea_sync_status
to: failed
action:
- service: notify.mobile_app_mein_telefon
data:
title: "⚠️ Gitea Sync fehlgeschlagen"
message: "Die HA-Config konnte nicht nach Gitea synchronisiert werden."alias: automations.yaml sofort nach Gitea pushen
trigger:
- platform: event
event_type: automation_reloaded
action:
- service: gitea_sync.sync_file
data:
file_path: "automations.yaml"# configuration.yaml
logger:
default: warning
logs:
custom_components.gitea_sync: debugLogs sind danach unter Einstellungen → System → Protokolle sichtbar.
- Gitea-URL prüfen — muss mit
https://beginnen, kein abschließendes/ - Token-Berechtigungen prüfen — Scope
repository(Lesen & Schreiben) erforderlich - Netzwerkverbindung von HA zur Gitea-Instanz prüfen
- Besitzer und Repository-Name exakt prüfen (Groß-/Kleinschreibung beachten)
- Repository muss existieren und für den Token zugänglich sein
pip install watchdog
# Danach HA neu startenPrüfen ob secrets.yaml im Exclude-Feld eingetragen ist.
Standard-Exclude: secrets.yaml,.storage/,*.log,home-assistant_v2.db
Alle Änderungen sind in der CHANGELOG.md dokumentiert.
Pull Requests und Issues sind willkommen! Bitte lies die PUBLISHING.md für Hinweise zur lokalen Entwicklung und zum Release-Prozess.
MIT License — © 2026 jenskaesler Siehe LICENSE für Details.