Naar de inhoud
Illustratie: bundles gaan na een geheimcontrole om 23:30 naar een beveiligde eigen cloud
Illustratie.
afgerondSmart home & homelab

Nachtelijke backup naar je eigen cloud

Elke nacht git-bundles en werkdata naar een eigen OpenCloud via WebDAV, met een controle op geheimen en een geteste herstelprocedure.

Gestart oktober 2026Bijgewerkt Leestijd 1 min

Doel

Alles van mijn AI-assistent Jarvis (de scripts, het geheugen en de werkdata) moet elke nacht buiten de machine staan. En de backup moet aantoonbaar terug te zetten zijn: een backup die je nooit hebt teruggezet, is een hoop.

Aanpak

  • Een eigen cloud als doel. In het homelab draait OpenCloud. Die gaat zelf versleuteld naar een tweede plek buiten huis, dus een backup daarheen is een volwaardige keten.
  • Git-bundles in plaats van losse bestanden. Een bundle is één bestand met de volledige geschiedenis van een repository, en git clone kan er direct uit herstellen.
  • Eerst controleren, dan uploaden. Vóór elke upload doorzoekt het script de hele geschiedenis van de repositories op geheimen. Vindt het iets, dan wordt er niets verstuurd.
  • Alleen melden als het misgaat. Een mislukte backup stuurt een bericht via Telegram; een geslaagde blijft stil.

Configuratie

Het script is gewoon Python zonder extra pakketten. Per nacht komt er een map met de datum, met daarin:

Bestand Inhoud
<repository>.bundle per repository de volledige git-geschiedenis
data.tar.gz werkdata die niet in git staat

Uploaden gaat met WebDAV (MKCOL voor de map, PUT per bestand) en een app-token, omdat OpenCloud via WebDAV geen gewoon wachtwoord accepteert. De laatste 30 nachten blijven staan; oudere mappen ruimt het script zelf op. Een systemd-timer start het om 23:30.

Resultaten

De eerste backup en een volledige hersteltest zijn geslaagd: de bundles gekloond, de laatste commit gelijk aan het origineel en de werkdata compleet. De geheimcontrole gaf bij het testen twee keer vals alarm; beide zijn opgelost voordat de timer aanging.

Vervolgstappen

  • De hersteltest periodiek automatisch laten draaien.
  • Nieuwe repositories, zoals die van deze website, meenemen in dezelfde backup.