DocuSeal: Absichern, Backup und Betrieb
Auf einen Blick
| Gilt für | DocuSeal 3.3.x selbst gehostet mit Docker Compose und PostgreSQL (alternativ SQLite); Dateien lokal oder in S3-kompatiblem Speicher |
|---|---|
| Bereich | Server-Software |
| Dauer | Härtung ca. 1 Stunde; Backup-Einrichtung ca. 1 Stunde; Restore-Test ca. 30 Minuten |
| Rechte | Root auf dem Docker-Host, Administrator in DocuSeal |
| Stand | Oktober 2026 |
DocuSeal absichern, sichern und betreiben ist Pflicht, sobald Verträge und Personalunterlagen über den Server laufen: Er ist aus dem Internet erreichbar, verwaltet rechtlich relevante Dokumente mit personenbezogenen Daten und erzeugt die Prüfprotokolle, auf die man sich im Streitfall beruft. Diese Anleitung fasst die wichtigsten Einstellungen für Konten und Download-Links zusammen, zeigt ein vollständiges Backup inklusive des oft vergessenen Schlüssels und beschreibt Updates und Überwachung.

Schritt 1: Konten absichern
- Zwei-Faktor-Pflicht: Einstellungen › Konto › 2FA mit Authenticator-App erzwingen. Jeder Benutzer muss danach unter Einstellungen › Profil eine Authenticator-App einrichten, bevor er weiterarbeiten kann. Siehe Zwei-Faktor-Authentifizierung.
- Wenige Benutzer: In der freien Version ist jeder Benutzer Administrator und sieht alle Vorlagen und Einreichungen – inklusive Personalunterlagen. Benutzerkreis klein halten, ausgeschiedene Mitarbeiter sofort unter Einstellungen › Benutzer entfernen.
- Sitzungsdauer: Ein angemeldeter Browser bleibt standardmäßig 730 Tage angemeldet (
SESSION_REMEMBER_DAYS). Für den Unternehmenseinsatz auf z. B. 7 bis 14 Tage verkürzen. - API- und MCP-Token nur bei Bedarf erzeugen und regelmäßig erneuern, siehe DocuSeal: API, Webhooks und Automatisierung.
- SSO mit SAML (z. B. Entra ID) gibt es nur in Pro.
Schritt 2: Dokumente und Links schützen
| Einstellung | Wo | Empfehlung |
|---|---|---|
| Authentifizierung für Dateidownload-Links erforderlich | Einstellungen › Konto | an – Links zu Dokumenten funktionieren nur mit Anmeldung oder API-Schlüssel |
| Ablaufbare Datei-Download-Links | Einstellungen › Konto | an |
FILE_URLS_EXPIRE_MINUTES |
Umgebung | Standard 40 Minuten lassen oder verkürzen |
ACTIVE_STORAGE_PUBLIC |
Umgebung | nicht setzen bzw. false – Dateien werden über DocuSeal ausgeliefert, nicht direkt aus dem Speicher
|
| E-Mail-2FA erforderlich, um zu öffnen | Vorlage | für vertrauliche Dokumente aktivieren |
| Objektspeicher | S3-Bucket | privat, Verschlüsselung an, Versionierung an |
Schritt 3: Server und Netzwerk
- Nur der Reverse Proxy ist von außen erreichbar (Ports 80 und 443); PostgreSQL und Port 3000 der App nicht veröffentlichen.
- Der Server muss für Empfänger aus dem Internet erreichbar sein. Eine Web Application Firewall oder Geo-Filter auf der Firewall sind möglich, dürfen aber ausländische Vertragspartner nicht aussperren.
- Ausgehend braucht DocuSeal SMTP, den Zeitstempel-Server, gegebenenfalls Objektspeicher und die Webhook-Ziele.
- Host härten: aktuelle Updates, SSH nur mit Schlüssel, eigene VM für DocuSeal.
- Logs: DocuSeal schreibt nach stdout; mit
docker compose logseinsehen oder an ein zentrales Logsystem weiterleiten.
Schritt 4: DocuSeal-Backup einrichten
Ein vollständiges Backup besteht aus vier Teilen:
| Teil | Inhalt | Hinweis |
|---|---|---|
| Datenbank (PostgreSQL) | Vorlagen, Einreichungen, Ereignisse, Benutzer, verschlüsselte Einstellungen und Zertifikate | mit pg_dump
|
Datenordner ./docuseal |
attachments/ (Originale, signierte PDFs, Prüfprotokolle), gegebenenfalls docuseal.env und bei SQLite db.sqlite3 |
bei S3 liegen die Dateien im Bucket |
| Schlüssel | SECRET_KEY_BASE (und ENCRYPTION_SECRET, falls gesetzt) aus .env bzw. docuseal.env |
ohne ihn sind SMTP-Zugang und Signaturzertifikate in der Datenbank nicht entschlüsselbar |
| Konfiguration | compose.yaml, .env, Caddy-Daten |
für schnellen Wiederaufbau |
/usr/local/sbin/docuseal-backup.sh:
#!/bin/bash
set -euo pipefail
cd /opt/docuseal
STAGE=/var/backups/docuseal/stage
mkdir -p "$STAGE"
# Datenbank konsistent sichern
docker compose exec -T postgres pg_dump -U docuseal -Fc docuseal > "$STAGE/docuseal.dump"
# Dateien und Konfiguration
rsync -a --delete ./docuseal/ "$STAGE/docuseal/"
cp compose.yaml .env "$STAGE/"
# Verschlüsselt und versioniert außer Haus
export RESTIC_REPOSITORY=sftp:backup@nas.firma.lan:/backup/docuseal
export RESTIC_PASSWORD_FILE=/root/.restic-docuseal
restic backup "$STAGE" --tag docuseal
restic forget --keep-daily 14 --keep-weekly 8 --keep-monthly 24 --prune
- Täglich per Cron ausführen und den Erfolg überwachen.
- Bei SQLite statt PostgreSQL die Datenbank mit
sqlite3 docuseal/db.sqlite3 ".backup '/var/backups/docuseal/db.sqlite3'"sichern, nicht einfach kopieren. - Bei S3 Versionierung oder Objektsperre im Bucket aktivieren und den Bucket zusätzlich in ein zweites Ziel replizieren.
- Das restic-Passwort und den
SECRET_KEY_BASEzusätzlich außerhalb des Servers hinterlegen, z. B. im Passwortmanager der IT, siehe Vaultwarden.
Schritt 5: Wiederherstellen
- Neuen Host mit Docker vorbereiten, Snapshot zurückholen:
restic restore latest --target /tmp/restore compose.yaml,.envund den Ordnerdocuseal/nach/opt/docusealkopieren.- Nur die Datenbank starten:
docker compose up -d postgres - Dump einspielen:
docker compose exec -T postgres pg_restore -U docuseal -d docuseal --clean --if-exists < docuseal.dump - Alles starten:
docker compose up -d, anmelden, eine abgeschlossene Einreichung öffnen und ihr PDF herunterladen, E-Signatur auf das Zertifikat prüfen.
- Den Ablauf mindestens vierteljährlich auf einem isolierten Testsystem ohne SMTP durchspielen, damit keine Mails an echte Empfänger gehen.
Schritt 6: Updates und Überwachung
- DocuSeal erscheint etwa wöchentlich; viele Versionen enthalten Sicherheitskorrekturen, der Hersteller empfiehlt Selbsthostern ausdrücklich zeitnahe Updates. Feste Version in der
compose.yaml, Releases auf GitHub abonnieren, nach dem Backup aktualisieren. - Überwachen:
https://sign.firma.de/up(Status 200), Zertifikatslaufzeit des Proxys, Laufzeit des Signaturzertifikats, Speicherplatz, Backup-Erfolg, Zustellung der E-Mails (Bounces). - E-Mail-Zustellbarkeit: SPF, DKIM und DMARC der Absenderdomain prüfen; Signaturanfragen, die im Spam landen, sind der häufigste Supportfall.
Hinweise
- Kompromittierung: Server isolieren, neu aufsetzen,
SECRET_KEY_BASE, Datenbank-, SMTP- und API-Zugänge sowie das Signaturzertifikat erneuern. Ein neuerSECRET_KEY_BASEmacht verschlüsselte Einstellungen unlesbar – SMTP und Zertifikate danach neu eintragen. Prüfen, ob Dokumente abgeflossen sind, und Meldepflichten nach DSGVO beachten. - Bei Betrieb, Überwachung und Datensicherung von Serveranwendungen unterstützen Sie die Managed Services von m.a.x. it.
Siehe auch
- DocuSeal – Überblick und alle Artikel der Reihe
- DocuSeal: Installation mit Docker Compose
- Datensicherung
- DocuSeal: Datenschutz und Aufbewahrung im Unternehmen
Links und Quellen
Über m.a.x. it Die m.a.x. Informationstechnologie AG ist seit über 30 Jahren IT-Partner mittelständischer und großer Unternehmen in München und bietet maßgeschneiderte Lösungen und Services in den Bereichen Cloud, Cybersecurity, Netzwerk, Windows, Linux und Softwareentwicklung. Sie haben eine Frage zu diesem Artikel oder brauchen Unterstützung?
