Backups

Auf dieser Seite

EmDash bietet drei Schutzebenen für deine Inhalte, von der Zero-Config-Point-in-Time-Wiederherstellung auf Cloudflare bis hin zu herunterladbaren Archiven, die du selbst aufbewahrst.

Was in einem Backup enthalten ist

Ein Backup enthält alles, was zur Rekonstruktion der Inhalte deiner Website benötigt wird:

  • Alle Inhaltseinträge, einschließlich Entwürfe, geplante Beiträge und gelöschte Elemente
  • Sammlungs- und Felddefinitionen (dein Inhaltsmodell)
  • Taxonomien und Begriffszuordnungen
  • Menüs, Widgets, Abschnitte und SEO-Einstellungen
  • Revisionen und Medien-Metadaten
  • Website-Einstellungen (Titel, Slogan, Anzeigeeinstellungen)

Backups schließen bewusst aus:

  • Benutzerkonten, Sitzungen, Passkeys und API-Tokens — Authentifizierungsdaten sind weder portabel noch sicher in einer herunterladbaren Datei
  • Geheimnisse (Vorschau-Signierschlüssel, Plugin-Konfiguration)
  • Mediendateien — die eigentlichen Dateien befinden sich in deinem Speicher-Bucket (R2, S3 oder lokal); ein Backup enthält deren Metadaten, damit Referenzen intakt bleiben

Backups sind JSON-Dateien im gleichen Snapshot-Format, das vom EmDash-Vorschausystem verwendet wird, versioniert mit der EmDash-Version, die sie erstellt hat.

Ein-Klick-Download

Unter Einstellungen → Backups im Admin generiert die Schaltfläche Backup herunterladen ein frisches Backup und lädt es als JSON-Datei herunter. Erfordert die Admin-Rolle.

Das ist das richtige Werkzeug vor riskanten Operationen: Massenimporte, Schemaänderungen oder größere Upgrades.

Automatische Backups in den Speicher

Wenn deine Website ein Speicher-Backend konfiguriert hat (R2 auf Cloudflare, S3 oder lokaler Speicher), kannst du tägliche automatische Backups aktivieren:

  1. Öffne Einstellungen → Backups im Admin.

  2. Schalte Tägliche automatische Backups ein.

  3. Wähle, wie viele Backups aufbewahrt werden sollen (1–30). Ältere Archive werden automatisch gelöscht.

  4. Speichern. Backups werden als Teil der geplanten EmDash-Wartung ausgeführt — kein zusätzliches Cron-Setup nötig.

Archive werden unter dem Präfix backups/ in deinem Bucket als emdash-backup-<timestamp>-<random>.json gespeichert. Die Liste Gespeicherte Backups im Admin ermöglicht das Herunterladen oder Löschen einzelner Archive, und Jetzt sichern erstellt eines auf Abruf.

Automatische Backups nutzen den geplanten Wartungstick (derselbe Mechanismus, der die geplante Veröffentlichung antreibt) — auf Cloudflare ist dies der Cron-Trigger des Workers, auf Node der eingebaute Scheduler. Wenn dein Deployment keinen Cron-Trigger konfiguriert hat, verwende stattdessen Jetzt sichern oder die Download-Schaltfläche.

Point-in-Time-Wiederherstellung mit D1 Time Travel

Wenn deine Website auf Cloudflare D1 läuft, hast du bereits eine vollständige Datenbank-Point-in-Time-Wiederherstellung — immer aktiv, keine Konfiguration:

# Aktuelles Lesezeichen anzeigen (vor riskanten Operationen)
npx wrangler d1 time-travel info my-database

# Datenbank auf einen bestimmten Zeitpunkt wiederherstellen
npx wrangler d1 time-travel restore my-database --timestamp=2026-07-08T13:00:00Z

Time Travel behält 30 Tage Historie im kostenpflichtigen Plan (7 Tage im kostenlosen) mit minütlicher Granularität. Es stellt die gesamte Datenbank wieder her — Inhalte, Benutzer, Einstellungen — was es zum richtigen Werkzeug für Disaster Recovery macht.

Siehe die D1 Time Travel Dokumentation für Details.

Offsite-Datenbankdumps

Für einen vollständigen SQL-Dump der Rohdatenbank (einschließlich Benutzer und Auth-Tabellen), verwende Wrangler:

npx wrangler d1 export my-database --remote --output=backup.sql

Bei Node-Deployments ist die Datenbank eine einzelne SQLite-Datei — kopiere sie bei gestopptem Server, oder verwende sqlite3 emdash.db ".backup backup.db" für eine konsistente Online-Kopie.

Ein Backup wiederherstellen

Die Wiederherstellung aus einem Backup-JSON ist absichtlich noch nicht als Ein-Klick-Admin-Aktion verfügbar — das Überschreiben einer Live-Datenbank verdient mehr Reibung als eine Schaltfläche. Aktuelle Optionen:

  • Cloudflare: verwende D1 Time Travel (oben) für Point-in-Time-Wiederherstellung.
  • Vollständige Dumps: importiere einen wrangler d1 export-Dump mit npx wrangler d1 execute my-database --remote --file=backup.sql.
  • Backup-JSON: das Format entspricht EmDash’s Snapshot-Format; ein geführter CLI-Restore ist geplant. Verfolge Discussion #142.