How to Self-Host n8n with Docker: The Complete 2026 Guide
Sasha Ray
1st Jan, 2026

If you’re planning to automate workflows efficiently in 2026, one of the best decisions you can make is to Self-Host n8n with Docker. n8n has become a go-to automation and workflow orchestration platform for developers, SaaS owners, agencies, and tech teams. And thanks to Docker, running it on your own server is now easier, faster, and more secure than ever.
This in-depth 2026 guide will walk you through everything: installing Docker, running n8n, configuring environment variables, securing your setup, enabling backups, scaling, connecting databases, and long-term maintenance best practices. Whether you’re hosting on a VPS, cloud provider, or bare-metal server, this guide will help you launch a stable, production-ready n8n instance.
Why Self-Host n8n in 2026?
While n8n.cloud is great for quick setups, self-hosting offers major advantages:
Full data control & privacy
Unlimited workflows
Scalable infrastructure
Lower long-term operational cost
Ability to customize and integrate deeply
Freedom to use your own database and storage
And best of all — Docker makes everything portable, consistent, and easy to manage.
Prerequisites Before You Self-Host n8n with Docker
Before deploying, make sure your system is ready:
✔ Server Requirements
Minimum 2 GB RAM
At least 1 CPU
10 GB storage (more recommended for execution logs)
✔ Install Required Packages
Make sure your OS is updated:
sudo apt update && sudo apt upgrade -y
Install Docker:
curl -fsSL https://get.docker.com | sudo sh
Install Docker Compose:
sudo apt install docker-compose -y
After installation:
docker –version
docker-compose –version
If both commands return versions, you’re good to go.
Creating Your n8n Docker Project
Create a directory:
mkdir n8n-docker
cd n8n-docker
Now create your docker-compose.yml file.
The Best 2026 docker-compose.yml for n8n
Here is the most stable and updated configuration for production in 2026:
version: ‘3.8’
services:
n8n:
image: n8nio/n8n:latest
restart: always
ports:
“5678:5678”
environment:
N8N_HOST=your-domain.com
N8N_PORT=5678
N8N_PROTOCOL=https
GENERIC_TIMEZONE=Asia/Kolkata
DB_TYPE=postgresdb
DB_POSTGRESDB_HOST=postgres
DB_POSTGRESDB_PORT=5432
DB_POSTGRESDB_USER=n8n
DB_POSTGRESDB_PASSWORD=password123
DB_POSTGRESDB_DATABASE=n8n
NODE_ENV=production
volumes:
n8n_data:/home/node/.n8n
postgres:
image: postgres:15
restart: always
environment:
POSTGRES_USER=n8n
POSTGRES_PASSWORD=password123
POSTGRES_DB=n8n
volumes:
postgres_data:/var/lib/postgresql/data
volumes:
n8n_data:
postgres_data:
Start n8n with Docker
Run this command inside your directory:
docker-compose up -d
Now open your browser:
Congratulations! You officially Self-Host n8n with Docker successfully.
Configuring Important n8n Environment Variables (2026 Best Practices)
To make your setup scalable and production-safe, the following variables are recommended:
Security
N8N_BASIC_AUTH_ACTIVE=true
N8N_BASIC_AUTH_USER=admin
N8N_BASIC_AUTH_PASSWORD=yourStrongPassword
Workflow Execution History
EXECUTIONS_DATA_SAVE_ON_SUCCESS=none
EXECUTIONS_DATA_SAVE_ON_ERROR=all
Webhook URL Settings
WEBHOOK_URL=https://your-domain.com/
Setting Up SSL (HTTPS) for n8n
Use Nginx Proxy Manager or Caddy for automatic SSL.
✔ Option 1: Caddy (Best for 2026)
Create Caddyfile:
reverse_proxy localhost:5678
}
Caddy fetches SSL certificates automatically.
Connecting n8n to External Storage (Optional)
Amazon S3 / Minio (recommended for large automation setups)
EXECUTIONS_MODE=queue
EXECUTIONS_DATA_PRUNE=true
Setting Up Backups for n8n
Use Docker volumes for persistent storage:
Backup n8n:
docker run –rm -v n8n_data:/data -v $(pwd):/backup alpine tar czvf /backup/n8n_backup.tar.gz /data
Backup PostgreSQL:
docker exec -t postgres pg_dumpall -c -U n8n > postgres_backup.sql
Scaling n8n in 2026
For large workflows:
Enable queue mode:
EXECUTIONS_MODE=queue
Deploy Redis:
redis:
image: redis:7
Then add worker containers to scale horizontally.
Keeping Your n8n Updated in 2026
Update n8n safely:
docker-compose pull
docker-compose down
docker-compose up -d
Updates usually take 30 seconds.
Common Issues & Fixes
n8n not starting
Check logs:
docker logs n8n
Database connection issues
Ensure PostgreSQL container is running:
docker ps
SSL problems
Confirm DNS is pointing correctly
Restart proxy service
Best Practices for Self-Hosting n8n in 2026
Always run n8n behind a reverse proxy
Use PostgreSQL (never SQLite for production)
Enable basic auth
Use strong passwords
Set up regular backups
Keep server updated
Run n8n in queue mode for heavy workflows
Use domain instead of IP
If you’re planning to build professional-grade automation workflows, deploying n8n on your own server is one of the smartest moves you can make — and choosing to Self-Host n8n with Docker ensures a secure, scalable, and high-performance environment. With Docker, the setup becomes predictable and portable, allowing you to manage updates, configurations, and scaling with ease.
By following this complete 2026 guide, you now have everything you need to install, configure, optimize, and maintain your self-hosted n8n instance like a professional DevOps engineer. Whether you’re building automation for your business, SaaS platform, agency, or internal teams, this setup will easily support thousands of workflows and integrations reliably.

