<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="de">
	<id>https://techcorner.max-it.de/index.php?action=history&amp;feed=atom&amp;title=DocuSeal%3A_Absichern%2C_Backup_und_Betrieb</id>
	<title>DocuSeal: Absichern, Backup und Betrieb - Versionsgeschichte</title>
	<link rel="self" type="application/atom+xml" href="https://techcorner.max-it.de/index.php?action=history&amp;feed=atom&amp;title=DocuSeal%3A_Absichern%2C_Backup_und_Betrieb"/>
	<link rel="alternate" type="text/html" href="https://techcorner.max-it.de/index.php?title=DocuSeal:_Absichern,_Backup_und_Betrieb&amp;action=history"/>
	<updated>2026-10-19T02:48:28Z</updated>
	<subtitle>Versionsgeschichte dieser Seite in maxTechCorner</subtitle>
	<generator>MediaWiki 1.43.9</generator>
	<entry>
		<id>https://techcorner.max-it.de/index.php?title=DocuSeal:_Absichern,_Backup_und_Betrieb&amp;diff=4816&amp;oldid=prev</id>
		<title>imported&gt;TechCorner-Redaktion: Neuer Artikel: 2FA-Pflicht, Sitzungen, Download-Links, Backup mit SECRET_KEY_BASE, Restore, Updates</title>
		<link rel="alternate" type="text/html" href="https://techcorner.max-it.de/index.php?title=DocuSeal:_Absichern,_Backup_und_Betrieb&amp;diff=4816&amp;oldid=prev"/>
		<updated>2026-10-17T00:00:00Z</updated>

		<summary type="html">&lt;p&gt;Neuer Artikel: 2FA-Pflicht, Sitzungen, Download-Links, Backup mit SECRET_KEY_BASE, Restore, Updates&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Neue Seite&lt;/b&gt;&lt;/p&gt;&lt;div&gt;{{Steckbrief&lt;br /&gt;
| gilt_fuer   = DocuSeal 3.3.x selbst gehostet mit Docker Compose und PostgreSQL (alternativ SQLite); Dateien lokal oder in S3-kompatiblem Speicher&lt;br /&gt;
| bereich     = Server-Software&lt;br /&gt;
| dauer       = Härtung ca. 1 Stunde; Backup-Einrichtung ca. 1 Stunde; Restore-Test ca. 30 Minuten&lt;br /&gt;
| rechte      = Root auf dem Docker-Host, Administrator in DocuSeal&lt;br /&gt;
| stand       = Oktober 2026&lt;br /&gt;
}}&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;DocuSeal absichern, sichern und betreiben&amp;#039;&amp;#039;&amp;#039; 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.&lt;br /&gt;
&lt;br /&gt;
[[Datei:DocuSeal-Betrieb.png|thumb|center|750px|DocuSeal absichern und sichern: 2FA mit Authenticator-App für alle Benutzer erzwingen, Sitzungsdauer begrenzen (SESSION_REMEMBER_DAYS, Standard 730 Tage), Download-Links mit Ablauf und Anmeldung, privater Speicher; Reverse Proxy mit HTTPS, nur Ports 80 und 443; Backup aus PostgreSQL-Dump, Datenordner mit attachments und docuseal.env, .env mit SECRET_KEY_BASE und Compose-Dateien, verschlüsselt außer Haus; ohne SECRET_KEY_BASE sind Zertifikate und SMTP-Einstellungen nicht lesbar; wöchentliche Updates mit Sicherheitskorrekturen; Überwachung von /up.]]&lt;br /&gt;
&lt;br /&gt;
== Schritt 1: Konten absichern ==&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Zwei-Faktor-Pflicht&amp;#039;&amp;#039;&amp;#039;: &amp;#039;&amp;#039;Einstellungen › Konto › 2FA mit Authenticator-App erzwingen&amp;#039;&amp;#039;. Jeder Benutzer muss danach unter &amp;#039;&amp;#039;Einstellungen › Profil&amp;#039;&amp;#039; eine Authenticator-App einrichten, bevor er weiterarbeiten kann. Siehe [[Zwei-Faktor-Authentifizierung]].&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Wenige Benutzer&amp;#039;&amp;#039;&amp;#039;: In der freien Version ist jeder Benutzer Administrator und sieht alle Vorlagen und Einreichungen – inklusive Personalunterlagen. Benutzerkreis klein halten, ausgeschiedene Mitarbeiter sofort unter &amp;#039;&amp;#039;Einstellungen › Benutzer&amp;#039;&amp;#039; entfernen.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Sitzungsdauer&amp;#039;&amp;#039;&amp;#039;: Ein angemeldeter Browser bleibt standardmäßig &amp;#039;&amp;#039;&amp;#039;730 Tage&amp;#039;&amp;#039;&amp;#039; angemeldet (&amp;lt;code&amp;gt;SESSION_REMEMBER_DAYS&amp;lt;/code&amp;gt;). Für den Unternehmenseinsatz auf z. B. 7 bis 14 Tage verkürzen.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;API- und MCP-Token&amp;#039;&amp;#039;&amp;#039; nur bei Bedarf erzeugen und regelmäßig erneuern, siehe [[DocuSeal: API, Webhooks und Automatisierung]].&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;SSO&amp;#039;&amp;#039;&amp;#039; mit SAML (z. B. [[Entra ID]]) gibt es nur in Pro.&lt;br /&gt;
&lt;br /&gt;
== Schritt 2: Dokumente und Links schützen ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Einstellung !! Wo !! Empfehlung&lt;br /&gt;
|-&lt;br /&gt;
| Authentifizierung für Dateidownload-Links erforderlich || &amp;#039;&amp;#039;Einstellungen › Konto&amp;#039;&amp;#039; || an – Links zu Dokumenten funktionieren nur mit Anmeldung oder API-Schlüssel&lt;br /&gt;
|-&lt;br /&gt;
| Ablaufbare Datei-Download-Links || &amp;#039;&amp;#039;Einstellungen › Konto&amp;#039;&amp;#039; || an&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;FILE_URLS_EXPIRE_MINUTES&amp;lt;/code&amp;gt; || Umgebung || Standard 40 Minuten lassen oder verkürzen&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;ACTIVE_STORAGE_PUBLIC&amp;lt;/code&amp;gt; || Umgebung || nicht setzen bzw. &amp;lt;code&amp;gt;false&amp;lt;/code&amp;gt; – Dateien werden über DocuSeal ausgeliefert, nicht direkt aus dem Speicher&lt;br /&gt;
|-&lt;br /&gt;
| E-Mail-2FA erforderlich, um zu öffnen || Vorlage || für vertrauliche Dokumente aktivieren&lt;br /&gt;
|-&lt;br /&gt;
| Objektspeicher || S3-Bucket || privat, Verschlüsselung an, Versionierung an&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Schritt 3: Server und Netzwerk ==&lt;br /&gt;
* Nur der Reverse Proxy ist von außen erreichbar (Ports 80 und 443); PostgreSQL und Port 3000 der App nicht veröffentlichen.&lt;br /&gt;
* 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.&lt;br /&gt;
* Ausgehend braucht DocuSeal SMTP, den Zeitstempel-Server, gegebenenfalls Objektspeicher und die Webhook-Ziele.&lt;br /&gt;
* Host härten: aktuelle Updates, SSH nur mit Schlüssel, eigene VM für DocuSeal.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Logs&amp;#039;&amp;#039;&amp;#039;: DocuSeal schreibt nach stdout; mit &amp;lt;code&amp;gt;docker compose logs&amp;lt;/code&amp;gt; einsehen oder an ein zentrales Logsystem weiterleiten.&lt;br /&gt;
&lt;br /&gt;
== Schritt 4: DocuSeal-Backup einrichten ==&lt;br /&gt;
Ein vollständiges Backup besteht aus vier Teilen:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Teil !! Inhalt !! Hinweis&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Datenbank&amp;#039;&amp;#039;&amp;#039; (PostgreSQL) || Vorlagen, Einreichungen, Ereignisse, Benutzer, verschlüsselte Einstellungen und Zertifikate || mit &amp;lt;code&amp;gt;pg_dump&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Datenordner&amp;#039;&amp;#039;&amp;#039; &amp;lt;code&amp;gt;./docuseal&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;attachments/&amp;lt;/code&amp;gt; (Originale, signierte PDFs, Prüfprotokolle), gegebenenfalls &amp;lt;code&amp;gt;docuseal.env&amp;lt;/code&amp;gt; und bei SQLite &amp;lt;code&amp;gt;db.sqlite3&amp;lt;/code&amp;gt; || bei S3 liegen die Dateien im Bucket&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Schlüssel&amp;#039;&amp;#039;&amp;#039; || &amp;lt;code&amp;gt;SECRET_KEY_BASE&amp;lt;/code&amp;gt; (und &amp;lt;code&amp;gt;ENCRYPTION_SECRET&amp;lt;/code&amp;gt;, falls gesetzt) aus &amp;lt;code&amp;gt;.env&amp;lt;/code&amp;gt; bzw. &amp;lt;code&amp;gt;docuseal.env&amp;lt;/code&amp;gt; || &amp;#039;&amp;#039;&amp;#039;ohne ihn sind SMTP-Zugang und Signaturzertifikate in der Datenbank nicht entschlüsselbar&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Konfiguration&amp;#039;&amp;#039;&amp;#039; || &amp;lt;code&amp;gt;compose.yaml&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;.env&amp;lt;/code&amp;gt;, Caddy-Daten || für schnellen Wiederaufbau&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;/usr/local/sbin/docuseal-backup.sh&amp;lt;/code&amp;gt;:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
set -euo pipefail&lt;br /&gt;
cd /opt/docuseal&lt;br /&gt;
STAGE=/var/backups/docuseal/stage&lt;br /&gt;
mkdir -p &amp;quot;$STAGE&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# Datenbank konsistent sichern&lt;br /&gt;
docker compose exec -T postgres pg_dump -U docuseal -Fc docuseal &amp;gt; &amp;quot;$STAGE/docuseal.dump&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# Dateien und Konfiguration&lt;br /&gt;
rsync -a --delete ./docuseal/ &amp;quot;$STAGE/docuseal/&amp;quot;&lt;br /&gt;
cp compose.yaml .env &amp;quot;$STAGE/&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# Verschlüsselt und versioniert außer Haus&lt;br /&gt;
export RESTIC_REPOSITORY=sftp:backup@nas.firma.lan:/backup/docuseal&lt;br /&gt;
export RESTIC_PASSWORD_FILE=/root/.restic-docuseal&lt;br /&gt;
restic backup &amp;quot;$STAGE&amp;quot; --tag docuseal&lt;br /&gt;
restic forget --keep-daily 14 --keep-weekly 8 --keep-monthly 24 --prune&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
* Täglich per Cron ausführen und den Erfolg überwachen.&lt;br /&gt;
* Bei &amp;#039;&amp;#039;&amp;#039;SQLite&amp;#039;&amp;#039;&amp;#039; statt PostgreSQL die Datenbank mit &amp;lt;code&amp;gt;sqlite3 docuseal/db.sqlite3 &amp;quot;.backup &amp;#039;/var/backups/docuseal/db.sqlite3&amp;#039;&amp;quot;&amp;lt;/code&amp;gt; sichern, nicht einfach kopieren.&lt;br /&gt;
* Bei &amp;#039;&amp;#039;&amp;#039;S3&amp;#039;&amp;#039;&amp;#039; Versionierung oder Objektsperre im Bucket aktivieren und den Bucket zusätzlich in ein zweites Ziel replizieren.&lt;br /&gt;
* Das restic-Passwort und den &amp;lt;code&amp;gt;SECRET_KEY_BASE&amp;lt;/code&amp;gt; zusätzlich außerhalb des Servers hinterlegen, z. B. im Passwortmanager der IT, siehe [[Vaultwarden]].&lt;br /&gt;
&lt;br /&gt;
== Schritt 5: Wiederherstellen ==&lt;br /&gt;
# Neuen Host mit Docker vorbereiten, Snapshot zurückholen: &amp;lt;code&amp;gt;restic restore latest --target /tmp/restore&amp;lt;/code&amp;gt;&lt;br /&gt;
# &amp;lt;code&amp;gt;compose.yaml&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;.env&amp;lt;/code&amp;gt; und den Ordner &amp;lt;code&amp;gt;docuseal/&amp;lt;/code&amp;gt; nach &amp;lt;code&amp;gt;/opt/docuseal&amp;lt;/code&amp;gt; kopieren.&lt;br /&gt;
# Nur die Datenbank starten: &amp;lt;code&amp;gt;docker compose up -d postgres&amp;lt;/code&amp;gt;&lt;br /&gt;
# Dump einspielen: &amp;lt;code&amp;gt;docker compose exec -T postgres pg_restore -U docuseal -d docuseal --clean --if-exists &amp;lt; docuseal.dump&amp;lt;/code&amp;gt;&lt;br /&gt;
# Alles starten: &amp;lt;code&amp;gt;docker compose up -d&amp;lt;/code&amp;gt;, anmelden, eine abgeschlossene Einreichung öffnen und ihr PDF herunterladen, &amp;#039;&amp;#039;E-Signatur&amp;#039;&amp;#039; auf das Zertifikat prüfen.&lt;br /&gt;
* Den Ablauf &amp;#039;&amp;#039;&amp;#039;mindestens vierteljährlich&amp;#039;&amp;#039;&amp;#039; auf einem isolierten Testsystem ohne SMTP durchspielen, damit keine Mails an echte Empfänger gehen.&lt;br /&gt;
&lt;br /&gt;
== Schritt 6: Updates und Überwachung ==&lt;br /&gt;
* DocuSeal erscheint etwa &amp;#039;&amp;#039;&amp;#039;wöchentlich&amp;#039;&amp;#039;&amp;#039;; viele Versionen enthalten Sicherheitskorrekturen, der Hersteller empfiehlt Selbsthostern ausdrücklich zeitnahe Updates. Feste Version in der &amp;lt;code&amp;gt;compose.yaml&amp;lt;/code&amp;gt;, Releases auf GitHub abonnieren, nach dem Backup aktualisieren.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Überwachen&amp;#039;&amp;#039;&amp;#039;: &amp;lt;code&amp;gt;https://sign.firma.de/up&amp;lt;/code&amp;gt; (Status 200), Zertifikatslaufzeit des Proxys, Laufzeit des Signaturzertifikats, Speicherplatz, Backup-Erfolg, Zustellung der E-Mails (Bounces).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;E-Mail-Zustellbarkeit&amp;#039;&amp;#039;&amp;#039;: SPF, DKIM und DMARC der Absenderdomain prüfen; Signaturanfragen, die im Spam landen, sind der häufigste Supportfall.&lt;br /&gt;
&lt;br /&gt;
== Hinweise ==&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Kompromittierung&amp;#039;&amp;#039;&amp;#039;: Server isolieren, neu aufsetzen, &amp;lt;code&amp;gt;SECRET_KEY_BASE&amp;lt;/code&amp;gt;, Datenbank-, SMTP- und API-Zugänge sowie das Signaturzertifikat erneuern. Ein neuer &amp;lt;code&amp;gt;SECRET_KEY_BASE&amp;lt;/code&amp;gt; macht verschlüsselte Einstellungen unlesbar – SMTP und Zertifikate danach neu eintragen. Prüfen, ob Dokumente abgeflossen sind, und Meldepflichten nach DSGVO beachten.&lt;br /&gt;
* Bei Betrieb, Überwachung und Datensicherung von Serveranwendungen unterstützen Sie die [https://www.max-it.de/it-services/managed-services/ Managed Services von m.a.x. it].&lt;br /&gt;
&lt;br /&gt;
== Siehe auch ==&lt;br /&gt;
* [[DocuSeal]] – Überblick und alle Artikel der Reihe&lt;br /&gt;
* [[DocuSeal: Installation mit Docker Compose]]&lt;br /&gt;
* [[Datensicherung]]&lt;br /&gt;
* [[DocuSeal: Datenschutz und Aufbewahrung im Unternehmen]]&lt;br /&gt;
&lt;br /&gt;
== Links und Quellen ==&lt;br /&gt;
* [https://github.com/docusealco/docuseal/releases DocuSeal Releases auf GitHub]&lt;br /&gt;
* [https://www.max-it.de/it-services/managed-services/ Managed Services von m.a.x. it]&lt;br /&gt;
&lt;br /&gt;
{{Uebermax}}&lt;br /&gt;
[[Kategorie:Server-Software]]&lt;br /&gt;
&lt;/div&gt;</summary>
		<author><name>imported&gt;TechCorner-Redaktion</name></author>
	</entry>
</feed>