Zum Inhalt springen
NETbrainDokumentation

NETbrainDokumentationBetrieb

Sicherung und Wiederherstellung

NETbrain sichert sich selbst: täglich, verschlüsselt und mit anschließender Prüfung. Ihre Aufgabe ist zweierlei — die Sicherungen vom Server herunterholen und das Zurückspielen gelegentlich üben.

Was gesichert wird#

Eine Sicherung ist eine einzelne, mit AES-256-GCM verschlüsselte Datei (.nbk). Sie enthält:

Alles liegt in einem Bündel, weil die Teile zusammengehören: Die Chat-Schlüssel eines Kontos sind mit dessen Passwort verpackt. Ein Bündel aus verschiedenen Zeitpunkten wäre teilweise unlesbar.

Ohne Passphrase keine Wiederherstellung

Die Sicherungen öffnen sich nur mit der Sicherungs-Passphrase aus der Einrichtung. Wir haben sie nicht und können sie nicht wiederherstellen.

Zeitplan und letzter Lauf#

Unter Administration → Einstellungen → Sicherungen stehen Uhrzeit (Vorgabe 02:00, leer heißt aus), die Zahl der aufbewahrten Stände (Vorgabe 14) und der Knopf Jetzt sichern. Der letzte Lauf und sein Ergebnis stehen dort und unter Administration → Übersicht. Daneben lädt Firmenwissen als JSON exportieren alle Firmenseiten als eine Datei herunter. Ein ausbleibender Lauf meldet sich sonst nirgends — werfen Sie gelegentlich einen Blick darauf.

Von Hand auf dem Server, etwa vor einem Eingriff:

cd /opt/netbrain
sudo docker compose -f netbrain-compose.yml exec netbrain node scripts/backup.mjs

Sicherungen vom Server holen#

Die Sicherungen liegen zunächst auf demselben Rechner wie die Daten. Gegen einen gelöschten Beitrag hilft das, gegen einen Ausfall des Servers nicht. Zwei Wege:

Aus dem Volume kopieren, per Auftrag Ihres Sicherungssystems:

sudo docker compose -f /opt/netbrain/netbrain-compose.yml cp netbrain:/backups/ /pfad/zu/ihrem/sicherungsziel/

Ein Verzeichnis des Servers einhängen. In der netbrain-compose.yml die Zeile - netbrain-backups:/backups durch Ihr Verzeichnis ersetzen, etwa - /srv/sicherung/netbrain:/backups, dann sudo ./install.sh. NETbrain schreibt danach direkt dorthin.

Die Bündel sind verschlüsselt und dürfen auf ein Ziel, das andere lesen können — solange die Passphrase nicht danebenliegt.

Eine Sicherung prüfen#

cd /opt/netbrain
sudo docker compose -f netbrain-compose.yml exec netbrain sh -c 'ls -lh /backups | tail -5'
sudo docker compose -f netbrain-compose.yml exec netbrain node scripts/backup.mjs --verify /backups/<datei>.nbk

Wiederherstellen#

Die Wiederherstellung schreibt ausschließlich auf ein leeres Ziel; ein bestehender Bestand wird nie überschrieben. Spielen Sie deshalb erst in ein Prüfverzeichnis zurück, sehen Sie es an, und entscheiden Sie dann.

sudo docker compose -f netbrain-compose.yml exec netbrain \
  node scripts/backup.mjs --restore /backups/<datei>.nbk \
    --vault /tmp/probe/vault --users /tmp/probe/users.json \
    --chat /tmp/probe/ai-chat --policy /tmp/probe/ai-policy.json \
    --portal /tmp/probe/portal.json --branding /tmp/probe/branding

Enthält das Bündel einen Teil, für den Sie kein Ziel angeben, bricht die Wiederherstellung ab, statt ihn stillschweigend wegzulassen. Bündel ohne Portal-Freigaben oder eigenes Logo brauchen --portal bzw. --branding nicht.

Die Passphrase nimmt der Lauf aus der Installation. Auf einem fremden Rechner — dem Ernstfall — geben Sie sie mit: NETBRAIN_BACKUP_PASSPHRASE='…'.

Auf einen neuen Server#

NETbrain nach Installation aufsetzen, nicht einrichten, und stattdessen die Sicherung nach /data zurückspielen. Wenden Sie sich dafür gern an uns; wir gehen den Weg mit Ihnen durch.

Einmal im Quartal: die Probe#

Spielen Sie vierteljährlich eine Sicherung testweise in ein Prüfverzeichnis zurück und sehen Sie hinein. Mit Termin im Kalender, sonst findet es nicht statt. Eine Sicherung, aus der nie jemand zurückgespielt hat, ist kein Nachweis, sondern eine Vermutung.

Volumes#

VolumeInhalt
netbrain-data (/data)Wissensbestand, Anhänge, Konten, Einstellungen, Lizenz — der einzige unersetzliche Zustand
netbrain-backups (/backups)die verschlüsselten Sicherungen

Zwei Installationen dürfen niemals dasselbe Datenvolume benutzen. Es gibt keine Sperre dagegen, und der Schaden zeigt sich erst später als widersprüchlicher Bestand.

Stand: NETbrain 0.5.9. Fehlt etwas oder stimmt etwas nicht? Schreiben Sie uns.