Overview
Documenso provides Docker Compose configurations to simplify local development. The Docker setup includes all necessary services: PostgreSQL database, Inbucket mail server, and MinIO S3 storage.Docker Compose Configuration
The development Docker Compose file is located atdocker/development/compose.yml and defines three services:
Services
Database (PostgreSQL 15)
- Container name:
database - Port: 54320 (mapped to 5432 inside container)
- Credentials:
- User:
documenso - Password:
password - Database:
documenso
- User:
- Volume:
documenso_database(persisted data) - Health check: Runs
pg_isreadyevery 10 seconds
Inbucket (Mail Server)
- Container name:
mailserver - Purpose: Captures all outgoing emails for testing
- Ports:
- 9000: Web UI (view emails)
- 2500: SMTP server
- 1100: POP3 server
MinIO (S3-Compatible Storage)
- Container name:
minio - Purpose: Local S3-compatible object storage
- Ports:
- 9001: Web console
- 9002: API endpoint
- Credentials:
- User:
documenso - Password:
password
- User:
- Bucket:
documenso(automatically created) - Volume:
minio(persisted data)
Quick Start
The fastest way to start all Docker services:Start all services and set up the database
- Installs dependencies (
npm ci) - Starts Docker Compose services
- Runs database migrations
- Seeds the database with test data
Managing Docker Services
Start Services
Stop Services
View Service Status
Accessing Services
Once Docker services are running:Web Interfaces
| Service | URL | Purpose |
|---|---|---|
| Inbucket Mail | http://localhost:9000 | View all outgoing emails |
| MinIO Console | http://localhost:9001 | Manage S3 buckets and files |
Connection Strings
Database
MinIO S3
SMTP (Inbucket)
Environment Variables for Docker Services
When using the Docker Compose setup, configure these variables in your.env file:
Using Inbucket for Email Testing
Inbucket captures all outgoing emails during development:Access the web interface
Navigate to http://localhost:9000 in your browser
View emails
All emails sent by the application will appear in the Inbucket inbox. Click on any email to view its contents, including HTML and plain text versions.
Using MinIO for S3 Storage
MinIO provides S3-compatible object storage for document files:Access the console
Navigate to http://localhost:9001 and log in:
- Username:
documenso - Password:
password
Production Docker Setup
For self-hosting Documenso in production, use the production Docker Compose configuration:Production Compose File
Located atdocker/production/compose.yml, this setup includes:
- PostgreSQL database with persistent storage
- Documenso application container (from DockerHub or GitHub Container Registry)
Pulling the Docker Image
Documenso provides official Docker images:Running with Docker Compose
For detailed production deployment instructions, see the Docker README.
Building Custom Docker Images
To build your own Docker image:IPv6 Support
If deploying to an IPv6-only cluster, use a custom start command:Local Docker Run
Kubernetes or Docker Compose
Troubleshooting
Services Not Starting
Check service logs:Database Connection Refused
-
Ensure the database container is healthy:
Look for “healthy” status in the database container.
-
Check the health check logs:
-
Verify the database is accepting connections:
