Florian Feuerwehrmanagement

Backup & Wiederherstellung

Florian erstellt konsistente Sicherungen seiner SQLite-Datenbank im laufenden Betrieb. Eine vollständige Wiederherstellung der Instanz erfordert zusätzlich die getrennte Sicherung der verwendeten Dateien, Konfiguration und gegebenenfalls des Datenbankschlüssels.

Wichtig: Die eingebaute Backup-Funktion sichert ausschließlich die Datenbank. Sie erstellt kein vollständiges Serverarchiv. Prüfen Sie den Wiederherstellungsumfang, bevor Sie sich auf einen Sicherungssatz verlassen.

Was die eingebaute Sicherung enthält

Eine Datenbankdatei enthält die gespeicherten Mitglieder-, Geräte-, Dienst-, Benutzer-, Rechte-, Einstellungs- und Auditdaten aller Wehren dieser Instanz. Deshalb dürfen nur menschliche Plattformadministratoren auf die instanzweiten Backups zugreifen; ein gewöhnlicher Wehradministrator oder ein API-Schlüssel genügt nicht.

Nicht enthalten sind Dateien außerhalb der Datenbank. Dazu können Mitglieder- und Gerätefotos, Nachweise, Branding-Dateien und Faxarchive gehören. Die tatsächlichen Verzeichnisse hängen von Ihrer Installation und deren Einstellungen ab. Auch Dienstkonfiguration, Umgebungsdateien und Verschlüsselungsschlüssel müssen getrennt und zugriffsgeschützt gesichert werden. Eigene Vorlagen und externe Integrationsdaten gehören ebenfalls in die Bestandsaufnahme, sofern sie außerhalb der Datenbank liegen.

Lassen Sie für Ihre Instanz dokumentieren, welche Dateien und Einstellungen zusammengehören. Prüfen Sie eine Wiederherstellung auf einer getrennten Testinstanz einschließlich der Anzeige und des Downloads der benötigten Dateien. Ein erfolgreicher Datenbank-Restore allein belegt keine vollständige Instanzwiederherstellung.

Checkliste für einen wiederherstellbaren Bestand

Lassen Sie den Betreiber für jede zutreffende Zeile den tatsächlich verwendeten Speicherort, die geschützte Sicherung und den zugehörigen Datenstand festhalten. Diese Checkliste erzeugt selbst keine Sicherung und prüft Ihre Installation nicht automatisch.

Bestandteil Was zusätzlich zu beachten ist
Datenbank Verwenden Sie die von Florian erstellte Datenbanksicherung. Notieren Sie Sicherungszeitpunkt und Florian-Version. Die laufende Datenbankdatei allein ist keine verlässliche Kopie.
Mitgliederfotos, Gerätefotos und Nachweise Die Verzeichnisse fotos, geraet-fotos und nachweise liegen neben der verwendeten Datenbankdatei. Sichern Sie die benötigten Dateien getrennt. Verhindern Sie während der abgestimmten Sicherung Änderungen an Daten und Dateien, damit diese zusammenpassen.
Logo und Branding Prüfen Sie den tatsächlich verwendeten Pfad. Branding:StoragePath kann einen anderen Speicherort vorgeben; ohne diese Vorgabe liegt die Ablage unter App_Data/branding im Programmverzeichnis.
Faxdokumente Prüfen Sie sowohl die externe Dokumentenablage als auch das lokale Faxarchiv. Ein erfolgreich extern archiviertes Fax muss keine lokale Kopie haben. Der lokale Ersatzpfad ist über fax.localArchiveDirectory einstellbar; ohne Vorgabe heißt das Verzeichnis fax-archive. Die Wiederherstellung der externen Dokumentenablage muss separat organisiert werden.
Anwendungsschlüssel Lassen Sie den tatsächlich verwendeten DataProtection-Schlüsselbestand geschützt sichern. Er wird unter anderem für gespeicherte Zwei-Faktor-Geheimnisse benötigt. Setzen Sie dessen Speicherort nicht pauschal mit dem Datenbankverzeichnis gleich.
Datenbankschlüssel bei aktivierter Verschlüsselung Klären Sie, wie der erforderliche Schlüssel nach einem Serverausfall wieder verfügbar wird. Er kann direkt konfiguriert oder über eine Schlüsseldatei bereitgestellt sein. Bewahren Sie ihn getrennt vom Datenbackup auf; siehe Datenbank-Verschlüsselung.
Start- und Dienstkonfiguration Berücksichtigen Sie die verwendeten Konfigurationsdateien, geschützte Dienst-Einstellungen und gegebenenfalls App_Data/launch-config.json im Inhaltsverzeichnis der Anwendung. Startumgebung und Konfiguration können die dort gespeicherte Netzwerkadresse übersteuern.
Externe Dienste Halten Sie fest, welche angebundenen Dienste und getrennt bereitgestellten Zugangsdaten für den Wiederanlauf benötigt werden. Datenbestände externer Dienste werden durch die Florian-Datenbanksicherung nicht gesichert. Die in Florian gespeicherten Serienbriefvorlagen liegen dagegen bereits in der Datenbank.

Programmverzeichnis, Inhaltsverzeichnis und Arbeitsverzeichnis des Dienstes können verschieden sein. Relative Pfade können deshalb auf andere Verzeichnisse zeigen als erwartet. Lassen Sie die wirksamen absoluten Pfade vom Betreiber bestätigen; kopieren Sie keine Zugangsdaten oder Schlüsselwerte in eine allgemein zugängliche Checkliste.

Prüfen Sie den zusammengestellten Bestand zuerst auf einer getrennten Testinstanz: Anmeldung und benötigte Zwei-Faktor-Anmeldung, Fotos, Nachweise, Branding sowie lokale und externe Dokumente. Dokumentieren Sie fehlende Bestandteile und den Rückfall auf den vorherigen Stand, bevor die Instanz wieder freigegeben wird.

Datenbank sichern und herunterladen

Zum Anzeigen der Seite ist das Recht Backups → Anzeigen (View) erforderlich, zum manuellen Erstellen zusätzlich Backups → Erstellen (Create). Direkt vor einer manuellen Erstellung prüft Florian erneut, ob die angemeldete Person aktiv und weiterhin Plattformadministrator ist und beide Rechte besitzt. Bei entzogenem Recht oder nicht verfügbarer Berechtigungsprüfung startet die Aktion nicht; die Aktion meldet einen Berechtigungsfehler. Eine schon begonnene Sicherung wird dadurch nicht nachträglich abgebrochen.

Für den Download ist zusätzlich zu Anzeigen (View) das Recht Backups → Exportieren (Export) erforderlich. Für die Wiederherstellung über die Backup-API benötigen Sie Anzeigen (View) und Backups → Verwalten (Manage). Auch diese Aktionen sind persönlichen Plattformadministratorkonten vorbehalten; ein API-Schlüssel ersetzt diese Anmeldung nicht.

  1. Melden Sie sich als Plattformadministrator an und öffnen Sie Backups.
  2. Klicken Sie auf Backup jetzt erstellen.
  3. Nach Abschluss erscheint die Datei mit Datum und Größe in der Liste. Download lädt die Datenbanksicherung herunter.
  4. Bewahren Sie eine geschützte Kopie auf einem getrennten Datenträger auf und sichern Sie die zusätzlich benötigten Dateien separat.

Die Sicherung verwendet eine SQLite-Snapshot-Funktion und berücksichtigt den WAL-Modus. Kopieren Sie die laufende Datenbank deshalb nicht einfach über das Dateisystem: aktuelle Änderungen können in WAL-Zusatzdateien liegen.

Neue Dateien heißen etwa florian-JJJJMMTT-HHMMSS-<eindeutige Kennung>.db. Die zusätzliche Kennung unterscheidet auch Sicherungen, die innerhalb derselben Sekunde erstellt werden. Ältere Sicherungsnamen ohne diese Kennung bleiben verwendbar.

Zeitplan und Aufbewahrung

Zum Ändern von Zeitplan, Aufbewahrung oder Verzeichnis benötigen Sie Backups → Anzeigen (View) und Backups → Verwalten (Manage) sowie ein aktives persönliches Plattformadministratorkonto. Florian prüft diese Voraussetzungen vor jedem Speichern erneut. Schlägt diese Prüfung fehl, startet das Speichern nicht und die Aktion meldet einen Berechtigungsfehler.

Ein Speichervorgang übernimmt den beim Start übergebenen Einstellungssatz. Weitere Speicheraufrufe derselben geöffneten Seite werden bis zum Abschluss abgewiesen. Falls inzwischen ein neuerer Entwurf eingetroffen ist, bleibt er erhalten und erhält keine pauschale Erfolgsmeldung für den zuvor gespeicherten Satz; speichern Sie diesen Entwurf anschließend ausdrücklich erneut.

Unter Backups → Zeitplan & Aufbewahrung können Plattformadministratoren das Intervall in Stunden, die Aufbewahrung als Anzahl von Backups und das Backup-Verzeichnis einstellen. Es gibt dort keine Auswahl einer festen Uhrzeit. Standardwerte sind 24 Stunden und 14 Sicherungen. Der Hintergrunddienst wartet das jeweilige Intervall ab; Änderungen wirken ab dem nächsten Wartezyklus.

Das Zielverzeichnis darf relativ zum Arbeitsverzeichnis des Dienstes oder absolut angegeben werden. Lassen Sie bei relativen Angaben den tatsächlich aufgelösten Pfad prüfen. Das Dienstkonto benötigt dort passende Schreibrechte. Ein Wechsel verschiebt vorhandene Sicherungen nicht: Dateien im bisherigen Verzeichnis bleiben dort liegen. Nach automatischen Läufen werden ältere Sicherungen gemäß der Aufbewahrung entfernt. Sichern Sie benötigte ältere Stände deshalb rechtzeitig getrennt.

Ein NAS-Pfad ist nur dann ein brauchbares Ziel, wenn die Freigabe auf dem Server zuverlässig eingebunden ist und Schreibzugriff besteht. Ein Verzeichnisname allein richtet weder einen externen Speicher noch einen Offsite-Transfer ein.

Verschlüsselung

Die Datenbankverschlüsselung wird durch den Betreiber in der Instanzkonfiguration eingerichtet. Die Backup-Seite bietet keinen eigenen Passphrase-Schalter. Ist die optionale SQLCipher-Datenbankverschlüsselung korrekt eingerichtet, benötigen Sicherung und Wiederherstellung denselben konfigurierten Schlüssel. Ohne passende Verschlüsselung ist eine heruntergeladene Datenbank nicht automatisch geschützt.

Sicherungen können personenbezogene und besonders schutzbedürftige Daten enthalten. Schützen Sie Dateien und Übertragungswege entsprechend. Bewahren Sie den erforderlichen Schlüssel getrennt und sicher auf; ohne ihn kann ein verschlüsselter Bestand nicht geöffnet werden. Veröffentlichen Sie Schlüssel oder Zugangsdaten niemals zusammen mit einem Backup.

Wiederherstellung vorbereiten

Eine Wiederherstellung ersetzt die gesamte Instanzdatenbank, einschließlich aller Wehren und Benutzerrechte, durch einen früheren Stand. Spätere Änderungen gehen verloren. Die aktuelle Oberfläche bietet die Erstellung und den Download; eine Wiederherstellung wird durch einen berechtigten Betreiber über die vorhandene Backup-API ausgeführt. Es gibt dort keinen allgemeinen Datei-Upload oder automatischen Restore-Schritt des Setup-Assistenten.

Vereinbaren Sie dafür ein Wartungsfenster:

  1. Prüfen Sie Sicherungszeitpunkt, Zielinstanz, benötigte Dateien und gegebenenfalls den Datenbankschlüssel. Testen Sie den gewählten Stand zuerst getrennt.
  2. Stoppen Sie die Nutzung und externe Schreibzugriffe. Erstellen Sie eine zusätzliche Sicherung des aktuellen Bestands und der benötigten Dateien. Eine automatische Sicherung vor dem Restore wird nicht zugesagt.
  3. Legen Sie die ausgewählte Datenbanksicherung mit ihrem von Florian erzeugten Dateinamen im konfigurierten Backup-Verzeichnis bereit. Der Betreiber verwendet POST /api/backups/{Dateiname}/restore mit den erforderlichen Plattformrechten.
  4. Florian prüft Datenbankintegrität, grundlegende Florian-Tabellen und Fremdschlüssel. Beschädigte oder offensichtlich fremde SQLite-Dateien werden zurückgewiesen. Diese Kompatibilitätsprüfung ist kein kryptografischer Herkunftsnachweis.
  5. SQLite überträgt den Datenbankstand in einer Transaktion und hält den WAL-Zustand konsistent. Die native Kopie kann Schreibzugriffe blockieren; ein bereits begonnener Kopiervorgang lässt sich nicht zuverlässig durch das Schließen des Browserfensters abbrechen.
  6. Starten Sie die Anwendung anschließend kontrolliert neu und lassen Sie Browser und Mobilgeräte neu verbinden. Der Restore-Endpunkt führt keinen automatischen Dienstneustart und keine automatische Aktualisierung bestehender Ansichten aus.
  7. Prüfen Sie Anmeldung, Integrität, wichtige Datensätze sowie die zusätzlich gesicherten Fotos und Nachweise. Geben Sie die Instanz erst danach wieder frei. Halten Sie die Sicherung des vorherigen Stands für einen kontrollierten Rückfall bereit.

Getrennte Kopien und Serverwechsel

Die eingebaute Sicherung lädt Daten nicht selbstständig in einen Cloud- oder Offsite-Speicher. Ein solcher Betrieb muss gesondert eingerichtet und durch einen Wiederherstellungstest nachgewiesen werden. Eine gebuchte oder geplante Zusatzleistung ersetzt diesen Nachweis nicht.

Bei einem Serverwechsel benötigt der neue Server neben einer kompatiblen Florian-Version auch die passenden Einstellungen, geschützten Schlüssel und externen Dateien. Lassen Sie die Wiederherstellung und den Rückfall vom Betreiber vorbereiten. Nehmen Sie die alte Instanz erst nach erfolgreicher Prüfung außer Betrieb; vermeiden Sie parallele Änderungen an zwei auseinanderlaufenden Datenständen.

Regelmäßig prüfen

  • Lassen Sie Sicherungsergebnisse und verfügbaren Speicher kontrollieren.
  • Bewahren Sie getrennte, zugriffsgeschützte Kopien auf.
  • Testen Sie nach Änderungen am Sicherungsumfang und regelmäßig im Betrieb die vollständige Wiederherstellung auf einer isolierten Instanz.
  • Dokumentieren Sie Datenstand, benötigte Dateien und Schlüssel, Prüfergebnis und Wiederanlauf.

Siehe auch