Anleitung
Gehört zu: Verein & Zugang
Automatischer Export: verschlüsselte Backups
Mit dem automatischen Export (Paket Pro) landet der Komplettexport eures Vereins regelmäßig bei euch – abgeholt von einem Skript oder von uns auf euer Ziel hochgeladen. Er ist immer mit eurem eigenen Schlüssel verschlüsselt: Wer die Datei abfängt, kann sie nicht lesen, und bei uns liegt sie höchstens 24 Stunden.
10 Minuten Lesezeit
Vorab: ohne privaten Schlüssel kein Backup
- Jeder automatische Export wird mit age verschlüsselt. Öffnen lässt er sich nur mit eurem privaten Schlüssel (der Datei verein-backup.key) bzw. mit eurem Passwort. Geht beides verloren, sind alle Backups unlesbar – auch wir können sie nicht wiederherstellen.
- Bewahrt den privaten Schlüssel deshalb an zwei sicheren Orten auf (z. B. verschlüsselter USB-Stick im Vereinstresor und ein Passwort-Manager des Vorstands) – aber nicht auf dem Rechner oder NAS, auf dem die Backups liegen.
- Den automatischen Export richtet nur der Inhaber ein. Jede Einrichtung bestätigt ein Code, den wir an die Adresse des Inhabers schicken.
So funktioniert es
- Paket Pro: Der automatische Export gehört zum Paket Pro. Der manuelle Komplettexport mit Einmal-Code bleibt in jeder Stufe frei.
- Zwei Wege: Ein Export-Schlüssel erlaubt einem Skript bei euch (Windows-Aufgabenplanung, Synology, Linux), den Export abzuholen. Oder ihr tragt ein Ziel ein (WebDAV/Nextcloud, SFTP, S3) und wir laden den Export nach Zeitplan hoch.
- Höchstens ein automatischer Export am Tag je Verein – Abholen und Hochladen zusammen.
- Immer verschlüsselt: Der Export wird schon bei uns verschlüsselt, bevor er gespeichert wird. Nach dem Abholen bzw. Hochladen löschen wir ihn sofort, sonst nach 24 Stunden.
- Nach jedem automatischen Export bekommt der Inhaber eine Mail mit Zeitpunkt, Größe und Adresse – auf Wunsch stattdessen eine wöchentliche Zusammenfassung.
- Eingerichtet wird in der Verwaltung (/admin) unter „Organisation“ → „Stammdaten“ → „Komplettexport“ → Reiter „Automatisch“, in der WebApp oder App unter „Einstellungen“ → „Admin-Bereich“ → „Stammdaten“.
age installieren
- age ist ein kleines, freies Verschlüsselungsprogramm (age-encryption.org). Ihr braucht es auf dem Rechner, auf dem ihr den Schlüssel erzeugt und die Backups öffnet – auf dem NAS, das nur abholt, nicht.
- Windows: in der Eingabeaufforderung oder PowerShell „winget install FiloSottile.age“ eingeben.
- macOS: „brew install age“. Linux: über die Paketverwaltung, z. B. „sudo apt install age“.
- Prüfen: „age --version“ zeigt die installierte Version.
Schlüssel erzeugen
age-keygen -o verein-backup.key
Public key: age1… ← diese Zeile tragt ihr in der Verwaltung ein
Verschlüsselung einrichten – Schritt für Schritt
- Öffnet den Reiter „Automatisch“ beim Komplettexport und klickt auf „Verschlüsselung einrichten“.
- Wählt „Öffentlicher Schlüssel (empfohlen)“ und fügt die Zeile ein, die mit age1 beginnt.
- Klickt auf „Testdatei erstellen“. Die kleine Datei test-automatischer-export.txt.age wird gespeichert.
- Entschlüsselt sie bei euch: „age -d -i verein-backup.key test-automatischer-export.txt.age“. Es erscheint ein Prüfwort wie K7Q4-M2XD.
- Gebt das Prüfwort ein und klickt auf „Prüfwort bestätigen“. Wir schicken einen Code an den Inhaber; mit dem Code ist die Verschlüsselung aktiv.
- So ist sicher, dass ihr eure Backups wirklich öffnen könnt – ein falsch kopierter Schlüssel fällt hier auf, nicht erst im Ernstfall.
Passwort statt Schlüssel
Statt eines Schlüssels geht auch ein Passwort mit mindestens 12 Zeichen. Geöffnet wird dann mit „age -d datei.zip.age“, age fragt nach dem Passwort.
Bedenkt dabei: Zum Verschlüsseln muss unser Server das Passwort kennen. Es liegt bei uns nur verschlüsselt, aber der Betreiber könnte technisch entschlüsseln. Mit einem öffentlichen Schlüssel ist das ausgeschlossen – deshalb empfehlen wir den Schlüssel.
Export-Schlüssel für ein Skript anlegen
- Unter „Export-Schlüssel“ eine Bezeichnung eingeben, z. B. „NAS im Vereinsheim“, und die Laufzeit wählen (höchstens 12 Monate).
- Optional: Habt ihr eine feste IP-Adresse, tragt sie unter „nur von diesen IP-Adressen“ ein – dann funktioniert der Schlüssel nur von dort.
- „Export-Schlüssel anlegen“ klicken und den Code aus der Mail eingeben.
- Der Schlüssel wird genau einmal angezeigt. Speichert ihn sofort an einem sicheren Ort für das Skript – nicht im Skript selbst.
- 30 und 7 Tage vor dem Ablauf erinnern wir per Mail. „Erneuern“ erzeugt einen neuen Schlüssel; der alte gilt danach noch 7 Tage, damit ihr das Skript in Ruhe umstellen könnt.
Windows: Skript für die Aufgabenplanung (PowerShell)
# backup-export.ps1 – holt den verschlüsselten Komplettexport ab
# Install-Module CredentialManager -Scope CurrentUser (einmalig / once)
# New-StoredCredential -Target 'drinklist-export' -UserName export -Password '<Export-Schlüssel / export key>' -Persist LocalMachine
$key = (Get-StoredCredential -Target 'drinklist-export').GetNetworkCredential().Password
$base = 'https://getraenkeliste.de/api/v1'
$h = @{ Authorization = "Bearer $key" }
$export = Invoke-RestMethod -Method Post -Uri "$base/exports" -Headers $h
do { Start-Sleep -Seconds 30; $state = Invoke-RestMethod -Uri "$base/exports/$($export.id)" -Headers $h } while ($state.status -in 'Waiting','Running')
if ($state.status -ne 'Ready') { throw "Export: $($state.status)" }
$file = "D:\Backup\Verein\komplettexport-$(Get-Date -Format yyyy-MM-dd).zip.age"
Invoke-WebRequest -Uri "$base/exports/$($export.id)/download" -Headers $h -OutFile $file
# Öffnen nur bei Bedarf auf einem sicheren Rechner: age -d -i verein-backup.key -o export.zip <Datei>
Windows-Aufgabenplanung einrichten
- Skript als backup-export.ps1 speichern, z. B. unter C:\Skripte. Den Export-Schlüssel einmalig mit New-StoredCredential in der Windows-Anmeldeinformationsverwaltung ablegen (Zeilen 2 und 3 des Skripts).
- Aufgabenplanung öffnen → „Aufgabe erstellen“ → Name „Backup Verein“, „Unabhängig von der Benutzeranmeldung ausführen“.
- Trigger: täglich, z. B. 03:30. Aktion: Programm „powershell.exe“, Argumente „-NoProfile -ExecutionPolicy Bypass -File C:\Skripte\backup-export.ps1“.
- Einmal von Hand starten und prüfen, ob die Datei *.zip.age im Backup-Ordner liegt.
Synology/NAS oder Linux: Skript für cron
#!/bin/sh
# backup-export.sh – holt den verschlüsselten Komplettexport ab
set -eu
KEY=$(cat /volume1/scripts/.drinklist-export-key) # chmod 600
BASE=https://getraenkeliste.de/api/v1
ID=$(curl -fsS -X POST -H "Authorization: Bearer $KEY" "$BASE/exports" | sed -n 's/.*"id":\([0-9]*\).*/\1/p')
while :; do
STATUS=$(curl -fsS -H "Authorization: Bearer $KEY" "$BASE/exports/$ID" | sed -n 's/.*"status":"\([A-Za-z]*\)".*/\1/p')
[ "$STATUS" = "Ready" ] && break
case "$STATUS" in Waiting|Running) sleep 30 ;; *) echo "Export: $STATUS" >&2; exit 1 ;; esac
done
curl -fsS -H "Authorization: Bearer $KEY" -o "/volume1/backup/verein/export-$(date +%F).zip.age" "$BASE/exports/$ID/download"
# Das NAS braucht kein age – geöffnet wird nur auf einem sicheren Rechner
Synology: Aufgabenplaner einrichten
- Export-Schlüssel in eine Datei schreiben (z. B. /volume1/scripts/.drinklist-export-key) und mit „chmod 600“ nur für den Backup-Benutzer lesbar machen.
- Skript als /volume1/scripts/backup-export.sh speichern und ausführbar machen („chmod 700“).
- Systemsteuerung → Aufgabenplaner → Erstellen → Geplante Aufgabe → Benutzerdefiniertes Script; Benutzer: der Backup-Benutzer; Zeitplan: täglich 03:30; Befehl: /volume1/scripts/backup-export.sh.
- Unter Linux genügt ein Eintrag in der crontab: „30 3 * * * /volume1/scripts/backup-export.sh“.
Ohne Skript: wir laden auf euer Ziel hoch
- Unter „Ziel“ die Art wählen: WebDAV (Nextcloud, Synology mit dem Paket WebDAV Server, https-Port 5006), SFTP oder S3.
- Nextcloud: Adresse des Ordners wie https://cloud.verein.de/remote.php/dav/files/backup/Getraenkeliste/ und ein App-Passwort eines eigenen Backup-Benutzers verwenden. Den Ordner vorher anlegen.
- SFTP: Server, Port (22 oder 2222), Ordner, Benutzer und Passwort oder privaten SSH-Schlüssel eintragen. Den Schlüssel des Servers merken wir uns beim ersten Test – ändert er sich, brechen wir aus Sicherheitsgründen ab.
- S3: Endpunkt (leer = Amazon), Region, Bucket und einen Zugang, der nur schreiben darf (PutObject) – lesen oder löschen braucht er nicht.
- Häufigkeit (täglich oder wöchentlich) und Uhrzeit wählen – sie gilt in der Zeitzone eures Vereins.
- „Verbindung testen und einrichten“: Wir schreiben eine kleine Testdatei. Klappt das, kommt der Code an den Inhaber; mit dem Code ist das Ziel aktiv.
- Schlägt das Hochladen fehl, versuchen wir es dreimal erneut und schicken eine Mail. Nach drei fehlgeschlagenen Läufen hintereinander pausieren wir das Ziel, bis ihr es wieder freigebt.
Backup öffnen (entschlüsseln)
age -d -i verein-backup.key -o komplettexport.zip komplettexport-2026-10-07.zip.age
age -d -o komplettexport.zip komplettexport-2026-10-07.zip.age # Passwort-Variante
Sicherheit auf einen Blick
- Ein Export-Schlüssel kann nur den verschlüsselten Export abholen – keine Konten, keine Buchungen, keine anderen Daten.
- Anlegen darf nur der Inhaber, bestätigt mit Code per Mail; Administratoren und der Support können keinen Export-Schlüssel anlegen.
- Zugriffe aus einem neuen Land oder wiederholte abgelehnte Anfragen pausieren den Schlüssel; der Inhaber bekommt eine Mail und kann ihn wieder freigeben oder widerrufen.
- Bei einer Sperre der Organisation wegen Verstoß ist der automatische Export pausiert; der manuelle Export in der Verwaltung bleibt erreichbar.
- Wechselt der Inhaber, bleiben Schlüssel und Ziele bestehen. Der neue Inhaber bekommt eine Mail und kann sie widerrufen und die Verschlüsselung neu einrichten.
Wenn es nicht klappt
- 429 „only one automatic export per day“: Heute gab es schon einen automatischen Export – morgen geht es wieder.
- 403 „export key paused“: Die Missbrauchserkennung hat den Schlüssel pausiert. Der Inhaber gibt ihn in der Verwaltung mit „Wieder freigeben“ frei.
- 409 beim Download: Der Export wurde schon abgeholt oder ist nach 24 Stunden gelöscht worden – am nächsten Tag einen neuen anfordern.
- 423: Die Organisation ist gesperrt; bitte an den Support wenden.
- Statt im Skript abzufragen, kann ein Webhook das Ereignis „export.ready“ melden (Verwaltung → Integrationen).
Nicht weitergekommen?
Wenn eine Anleitung eine Frage offenlässt oder etwas anders aussieht als beschrieben: öffnen Sie ein Ticket – wir antworten darin. Support gibt es ausschließlich über Tickets, nicht per E-Mail.