Documenso: Self-Hosted DocuSign Alternative for E-Signatures
Electronic signatures should not cost $25 per month per user. DocuSign, HelloSign, and their competitors charge steep premiums for what is fundamentally sending a PDF, letting someone draw on it, and recording that it happened. Documenso is an open-source e-signature platform you can self-host, giving you unlimited signatures with full control over your document data.
Photo by Taylor Vick on Unsplash

What Documenso Offers
Documenso provides the core e-signature workflow that covers most business needs:
- Document upload -- Upload PDFs and place signature fields, text fields, date fields, and checkboxes
- Multiple signers -- Route documents to multiple recipients in sequence or parallel
- Signing experience -- Recipients get an email link, open the document, and sign in their browser
- Audit trail -- Every action is logged with timestamps and IP addresses
- Templates -- Create reusable document templates with pre-placed fields
- API access -- REST API for programmatic document creation and signing
- Signing certificates -- Documents are digitally signed with a certificate for verification
- Team workspaces -- Collaborate on documents within organizations
The signing experience is clean: recipients click a link, review the document, type or draw their signature, and submit. No account creation required for signers. The completed document is emailed to all parties as a signed PDF with an embedded audit log.
Self-Hosting with Docker
Documenso runs on Next.js with PostgreSQL. The Docker Compose setup gets you running quickly.
Create a directory and compose file:
mkdir -p /opt/documenso && cd /opt/documenso
version: "3.8"
services:
documenso:
image: documenso/documenso:latest
container_name: documenso
restart: unless-stopped
depends_on:
- documenso-db
ports:
- "3000:3000"
environment:
PORT: "3000"
NEXTAUTH_URL: "https://sign.yourdomain.com"
NEXTAUTH_SECRET: "your-secret-at-least-32-characters"
NEXT_PRIVATE_ENCRYPTION_KEY: "your-encryption-key-at-least-32-chars"
NEXT_PRIVATE_ENCRYPTION_SECONDARY_KEY: "another-key-at-least-32-chars"
NEXT_PUBLIC_WEBAPP_URL: "https://sign.yourdomain.com"
NEXT_PRIVATE_DATABASE_URL: "postgres://documenso:documenso_pass@documenso-db:5432/documenso"
NEXT_PRIVATE_DIRECT_DATABASE_URL: "postgres://documenso:documenso_pass@documenso-db:5432/documenso"
# SMTP configuration
NEXT_PRIVATE_SMTP_HOST: "smtp.yourdomain.com"
NEXT_PRIVATE_SMTP_PORT: "587"
NEXT_PRIVATE_SMTP_USERNAME: "[email protected]"
NEXT_PRIVATE_SMTP_PASSWORD: "your-smtp-password"
NEXT_PRIVATE_SMTP_FROM_ADDRESS: "[email protected]"
NEXT_PRIVATE_SMTP_FROM_NAME: "Your Company Signatures"
documenso-db:
image: postgres:16-alpine
container_name: documenso-db
restart: unless-stopped
volumes:
- documenso-db-data:/var/lib/postgresql/data
environment:
POSTGRES_USER: documenso
POSTGRES_PASSWORD: documenso_pass
POSTGRES_DB: documenso
volumes:
documenso-db-data:
Start the stack:
docker compose up -d
Generate your secrets with:
openssl rand -base64 32 # Run three times for each secret
First Login
Navigate to your Documenso URL and create an account. The first account you create becomes the instance admin. From there you can manage users, teams, and instance-wide settings.
SMTP Configuration
Email is essential for Documenso -- the entire signing workflow relies on email delivery. When you send a document for signing, Documenso emails the recipient a link. When they sign, all parties receive the completed PDF by email.
Test your SMTP configuration by sending a test document to yourself first. Common issues:
- SPF/DKIM not configured -- Signing request emails land in spam. Set up proper DNS records for your sending domain.
- Wrong FROM address -- Some SMTP providers reject sends from addresses not verified on their platform.
- Port 587 vs 465 -- Port 587 uses STARTTLS (set secure to false), port 465 uses implicit TLS (set secure to true).
For reliable delivery, use a transactional email service like Amazon SES, Postmark, or Resend. These have higher deliverability than sending from your own mail server.
Like what you're reading? Subscribe to Self-Hosted Weekly — free weekly guides in your inbox.
Working with Templates
Templates are where Documenso saves you real time. If you regularly send the same type of document (NDAs, contracts, invoices), create a template once and reuse it.
To create a template:
- Upload your PDF
- Place fields -- signature, date, text input, checkbox
- Assign fields to roles (Signer 1, Signer 2, etc.)
- Save as template
When you use the template, you just fill in the recipient details and send. The fields are already placed and assigned. This is especially useful for:
- NDAs -- Same document, different counterparty each time
- Contractor agreements -- Standard terms with name/date fields
- Lease agreements -- Recurring documents with tenant details
- Consent forms -- Any standardized form requiring a signature
API Integration
Documenso exposes a REST API that lets you create and send documents programmatically. This is useful for integrating e-signatures into your existing workflows.
Generate an API key from your account settings, then:
# Upload a document and create a signing request
curl -X POST https://sign.yourdomain.com/api/v1/documents \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"title": "Service Agreement",
"recipients": [
{
"email": "[email protected]",
"name": "Client Name",
"role": "SIGNER"
}
]
}'
The API supports the full document lifecycle: upload, field placement, sending, and status checking. You can build automated signing workflows that trigger when events occur in your other systems.
Legal Validity of Self-Hosted E-Signatures
A common concern: are self-hosted e-signatures legally valid? In most jurisdictions, yes. The ESIGN Act (US) and eIDAS regulation (EU) define electronic signatures broadly. What matters is:
- Intent to sign -- The signer deliberately took action to sign
- Consent -- The signer agreed to conduct business electronically
- Association -- The signature is associated with the specific document
- Record retention -- The signed document is preserved and accessible
Documenso satisfies all four requirements. The audit trail records the signer's actions, timestamps, and IP address. The signed PDF includes an embedded certificate. This provides equivalent legal standing to DocuSign or HelloSign in standard business contexts.
Note: Certain document types (real estate deeds, wills, court filings) may require qualified electronic signatures or notarization depending on jurisdiction. For standard business contracts, Documenso is legally sufficient.
Comparison with Alternatives
Documenso vs DocuSign
DocuSign is the market leader with deep integrations into CRM and ERP platforms. It supports advanced features like bulk sending, payment collection, and identity verification. Pricing starts at $10/month for personal use and $25+/month for business. Documenso covers the core signing workflow but lacks enterprise features like Salesforce integration or in-person signing. For most small-to-medium business use cases, Documenso handles everything you need at zero per-user cost.
Documenso vs HelloSign (Dropbox Sign)
HelloSign has a clean interface and good Dropbox integration. Free tier allows 3 documents per month. Documenso's self-hosted version has no document limits. HelloSign wins on polish and third-party integrations; Documenso wins on cost and data ownership.
Documenso vs SignWell
SignWell targets small businesses with affordable pricing and a simple interface. It has good template support and API access. Documenso matches its feature set for self-hosters while keeping document data on your infrastructure.
Documenso vs OpenSign
OpenSign is another open-source e-signature option. It is newer and less mature than Documenso, with a smaller contributor community. Both are AGPL-licensed. Documenso has more features (templates, teams, API) and a more active development pace as of early 2026.
Resource Usage and Scaling
Documenso's resource requirements:
- RAM -- ~300-400 MB for the app, ~100 MB for PostgreSQL
- CPU -- Moderate during PDF rendering and signing, otherwise minimal
- Disk -- Depends on document volume. Each signed PDF is stored in the database or filesystem.
- Network -- Low, mostly email sending and PDF downloads
For a small business processing dozens of documents per month, a 2 GB VPS handles it comfortably. For higher volume, consider external object storage (S3-compatible) for document files instead of the local filesystem.
Backup Strategy
Documents in Documenso represent legally significant records. Back them up accordingly:
# Database backup (includes document metadata and audit trails)
docker exec documenso-db pg_dump -U documenso documenso > documenso-$(date +%Y%m%d).sql
# If using local file storage, also back up the uploads directory
docker cp documenso:/app/packages/signing-service/uploads ./documenso-uploads-backup/
Run database backups daily and test restores periodically. Losing a signed document's audit trail could create legal complications.
When Documenso Makes Sense
Self-host Documenso when:
- You send contracts, agreements, or forms that need signatures regularly
- You want to stop paying per-user fees for DocuSign or HelloSign
- You need to keep sensitive documents on your own infrastructure
- You want API access for automating signature workflows
Stick with a SaaS provider when:
- You need advanced identity verification (ID scanning, knowledge-based auth)
- You require deep CRM integration (Salesforce, HubSpot)
- You process thousands of documents monthly and need enterprise support
- Compliance requirements mandate a certified e-signature provider
For most small businesses and freelancers, Documenso provides everything you need to get documents signed without ongoing subscription costs.
