DocuSeal self-hosted: A DocuSign Alternative for eSignatures
What This Article Covers
- What DocuSeal is: an open-source eSignature platform as a DocuSign alternative.
- Docker setup and document workflow.
- Form builder, signature fields, recipient flow.
- API and webhooks for automation.
- Legal considerations: simple vs. advanced vs. qualified signatures.
Introduction
DocuSeal is the leading open-source alternative to DocuSign. Upload a document, place signature fields, send it to recipients, they sign in their browser, done. Self-hosted means your contracts and signatures stay on your server.
Important for Germany: DocuSeal creates simple electronic signatures (eES), which is sufficient for many business documents, but not all. It won’t work for consumer loans or fixed-term employment contracts that legally require written form. For advanced or qualified signatures (eIDAS), you need a qualified trust service provider.
Typical Use Cases
- Freelancer contracts: NDAs and service agreements signed quickly.
- Consent forms: GDPR consent, order confirmations.
- HR documents: Check which documents permit simple signatures.
- Internal approvals: AI-generated documents flowing through DocuSeal to signature.
- Automated contract delivery: Win a deal in your CRM, automatically send the contract for signature.
Installation: Docker
services:
docuseal:
image: docuseal/docuseal:latest
ports:
- "127.0.0.1:8083:3000"
environment:
- DATABASE_URL=postgresql://docuseal:geheim@db:5432/docuseal
- SECRET_KEY_BASE=langer-zufaelliger-key
- SMTP_ADDRESS=smtp.dein-server.de
- SMTP_PORT=587
- SMTP_USERNAME=rechnung@deine-domain.de
- SMTP_PASSWORD=...
- SMTP_FROM=signatur@deine-domain.de
volumes: [docuseal_data:/data]
depends_on: [db]
restart: always
db:
image: postgres:16
environment:
POSTGRES_USER: docuseal
POSTGRES_PASSWORD: geheim
POSTGRES_DB: docuseal
volumes: [pg_data:/var/lib/postgresql/data]
restart: always
volumes:
docuseal_data:
pg_data:
On first launch, the setup wizard guides you through creating an admin account, entering your company name, and configuring SMTP for signature emails.
Workflow
- Template: Upload a PDF, then place signature, date, and text fields via drag and drop.
- Send: Enter recipient email addresses and DocuSeal sends out signing links.
- Sign: Recipients open the link (no account needed), type their name or draw a signature.
- Complete: All parties receive the signed PDF plus the audit trail.
API for Automation
DocuSeal provides a REST API and webhooks:
import requests
DS = "https://signatur.deine-domain.de"
HEADERS = {"X-Auth-Token": "dein-api-key"}
# Send template
r = requests.post(f"{DS}/api/submissions", headers=HEADERS, json={
"template_id": 123,
"send_email": True,
"submitters": [
{"role": "Kunde", "email": "kunde@firma.de"},
{"role": "Wir", "email": "chef@deine-domain.de"},
]
})
# Webhook: on submission.completed -> archive + CRM update
n8n Integration
Twenty Webhook: Deal won
│
▼
Stirling-PDF: Generate contract PDF from template
│
▼
DocuSeal API: Create submission
│
▼
Webhook returns: submission.completed
│
├─→ Signed PDF → Nextcloud/Paperless archive
└─→ CRM update: Deal → "Contract signed"
Legal Notes (Germany/EU)
| Signature Type | DocuSeal | Use Case |
|---|---|---|
| Simple (eES) | ✅ | Internal documents, standard contracts, consent forms |
| Advanced (AES) | ⚠️ Partial | Stronger identity binding with extra steps |
| Qualified (QES) | ❌ | Statutory written form requirement (fixed-term employment, guarantees), requires trust service |
In practice: For most freelancer contracts, NDAs, and order confirmations, a simple signature is sufficient. For documents that legally require qualified signatures, use DocuSign, Skribble, FP-Sign, or consult a lawyer.
Security
- Audit trail: DocuSeal logs IP, timestamp, email verification, all critical for evidentiary value.
- HTTPS: Essential. Signature links must be trustworthy.
- Email authentication: SMTP with SPF and DKIM prevents signature emails from landing in spam.
- Data sovereignty: The main reason to self-host. Contracts stay with you.
Further Reading
- IRC-Coding.de: Programming tutorials on webhooks and PDF handling.
- Stirling-PDF: PDF editing before signature.
- Twenty CRM: Deal-to-contract automation.
- Invoice Ninja: Invoicing after contract execution.
- n8n: Workflow automation.
Key Takeaways:
- DocuSeal is open-source DocuSign: place signature fields on PDFs, send recipient links, maintain an audit trail.
- Self-hosted means contract data stays with you (GDPR compliant).
- Legally: creates simple eSignatures (eES), suitable for many documents, not for statutory written form requirements.
- API and webhooks enable seamless automation (CRM → send → archive).
- Killer combo: Stirling-PDF (generates) → DocuSeal (signs) → Paperless (archives).
FAQ
Is a DocuSeal signature legally valid?
DocuSeal or DocuSign?
How strong is the evidentiary value?
Multiple signers?
Reusable templates?
Free?
Sources and Further Reading
- DocuSeal: GitHub.
- DocuSeal Docs: Documentation.
- IRC-Coding.de: Programming tutorials.


