How do you self-host n8n on a VPS?
Quick Answer: Self-host n8n by provisioning a VPS (minimum 2 vCPU, 4 GB RAM — Hetzner CX22 at EUR 5.50/month is a strong option), installing Docker, creating a docker-compose.yml with PostgreSQL, setting up a reverse proxy with SSL (Caddy is simplest), and configuring automated backups. Production deployments should use PostgreSQL (not SQLite) and include daily pg_dump backups.
Why Self-Host n8n
Self-hosting n8n eliminates per-execution pricing, gives teams full control over data residency, and allows connecting to internal services behind your firewall. The community edition is free with unlimited workflows and executions. The trade-off is that you are responsible for infrastructure, updates, and backups.
Step 1: Choose a VPS Provider
n8n runs well on any Linux VPS. Common choices:
| Provider | Minimum Plan | Monthly Cost | Notes |
|---|---|---|---|
| Hetzner | CX22 (2 vCPU, 4 GB) | EUR 5.50 | Best price/performance in EU |
| DigitalOcean | Basic (2 vCPU, 4 GB) | $24 | Good documentation |
| AWS Lightsail | Medium (2 vCPU, 4 GB) | $20 | AWS ecosystem integration |
| Contabo | VPS S (4 vCPU, 8 GB) | EUR 6.99 | Budget option, larger specs |
Step 2: Minimum Server Specifications
- CPU: 2 vCPU (4 vCPU recommended for 20+ active workflows)
- RAM: 4 GB (8 GB recommended for heavy workloads)
- Storage: 20 GB SSD minimum
- OS: Ubuntu 22.04 LTS or Debian 12
Step 3: Install Docker and Docker Compose
# Update system packages
sudo apt update && sudo apt upgrade -y
# Install Docker
curl -fsSL https://get.docker.com | sh
sudo usermod -aG docker $USER
# Install Docker Compose plugin
sudo apt install docker-compose-plugin -y
# Verify installation
docker --version
docker compose version
Step 4: Create Docker Compose Configuration
Create a directory for n8n and the configuration file:
mkdir -p /opt/n8n && cd /opt/n8n
Create docker-compose.yml:
version: "3.8"
services:
n8n-db:
image: postgres:16-alpine
restart: always
environment:
POSTGRES_DB: n8n
POSTGRES_USER: n8n
POSTGRES_PASSWORD: ${DB_PASSWORD}
volumes:
- db_data:/var/lib/postgresql/data
healthcheck:
test: ["CMD-SHELL", "pg_isready -U n8n"]
interval: 10s
timeout: 5s
retries: 5
n8n:
image: n8nio/n8n:latest
restart: always
ports:
- "5678:5678"
environment:
- DB_TYPE=postgresdb
- DB_POSTGRESDB_HOST=n8n-db
- DB_POSTGRESDB_DATABASE=n8n
- DB_POSTGRESDB_USER=n8n
- DB_POSTGRESDB_PASSWORD=${DB_PASSWORD}
- N8N_HOST=${N8N_HOST}
- N8N_PROTOCOL=https
- WEBHOOK_URL=https://${N8N_HOST}/
- N8N_ENCRYPTION_KEY=${ENCRYPTION_KEY}
- GENERIC_TIMEZONE=UTC
volumes:
- n8n_data:/home/node/.n8n
depends_on:
n8n-db:
condition: service_healthy
volumes:
db_data:
n8n_data:
Step 5: Configure PostgreSQL
Create a .env file:
N8N_HOST=n8n.yourdomain.com
DB_PASSWORD=$(openssl rand -base64 24)
ENCRYPTION_KEY=$(openssl rand -hex 16)
PostgreSQL is required for production deployments. SQLite (the default) does not handle concurrent executions reliably and lacks proper backup tooling.
Step 6: Set Up a Reverse Proxy with SSL
Install Caddy for automatic HTTPS:
sudo apt install -y caddy
Add to /etc/caddy/Caddyfile:
n8n.yourdomain.com {
reverse_proxy localhost:5678
}
Caddy automatically provisions and renews Let's Encrypt certificates.
Step 7: Start n8n
cd /opt/n8n
docker compose up -d
Verify n8n is running:
docker compose logs -f n8n
Navigate to https://n8n.yourdomain.com to complete the initial setup.
Step 8: Configure Automated Backups
Create a backup script at /opt/n8n/backup.sh:
#!/bin/bash
DATE=$(date +%Y-%m-%d)
BACKUP_DIR=/opt/n8n/backups
mkdir -p $BACKUP_DIR
docker exec n8n-db-1 pg_dump -U n8n n8n | gzip > $BACKUP_DIR/n8n_$DATE.sql.gz
find $BACKUP_DIR -name "*.sql.gz" -mtime +30 -delete
Add to crontab to run daily at 2am:
chmod +x /opt/n8n/backup.sh
echo "0 2 * * * /opt/n8n/backup.sh" | crontab -
Production Checklist
- PostgreSQL with a strong, generated password
- Encryption key generated and backed up securely
- HTTPS via reverse proxy (Caddy or Nginx)
- Firewall allows only ports 22, 80, 443
- Automated daily database backups
- Backup restoration tested at least once
- Docker image pinned to a specific version for stability
- Unattended security updates enabled
Editor's Note: We use Hetzner CX22 (EUR 5.50/month, 2 vCPU, 4 GB RAM) for most client n8n deployments. One client has been running on this configuration for 14 months, processing approximately 2,300 executions per day across 18 active workflows, with zero unplanned downtime. The critical lesson we learned early: automated PostgreSQL backups are non-negotiable. We lost a client's 3 months of execution history before standardizing the backup script above. The database was recoverable from Docker volumes, but the incident prompted us to implement daily pg_dump backups with 30-day retention and weekly off-site sync to a separate storage service. Total monthly infrastructure cost for a production n8n instance: EUR 5.50-11.00 depending on specs.
Related Questions
Related Tools
Activepieces
No-code workflow automation with self-hosting and AI-powered features
Workflow AutomationAutomatisch
Open-source Zapier alternative
Workflow AutomationBardeen
AI-powered browser automation via Chrome extension
Workflow AutomationCamunda
Open-source workflow and process automation platform using BPMN.
Workflow AutomationRelated Rankings
Best AI-Powered Automation Tools in 2026
AI-powered automation tools integrate artificial intelligence features — natural language workflow creation, intelligent data mapping, predictive actions, and LLM-based content generation — into their automation platforms. As of March 2026, most major automation platforms have added AI capabilities, but the depth and practical utility of these features varies significantly. This ranking evaluates 8 automation tools on the practical value of their AI features, not marketing claims. The evaluation focuses on whether AI features reduce manual configuration, accelerate workflow creation, and improve outcomes versus doing the same work without AI. Tools that use AI as a core differentiator (not just a checkbox feature) score higher.
Best Automation Tools for Startups in 2026
Startups need automation tools that provide immediate value at minimal cost, with room to scale as the team grows. The best startup automation tools offer generous free tiers, fast time-to-value (first working automation within hours, not days), and a clear scaling path from 5-person team to 50-person company. This ranking evaluates 8 automation platforms specifically for startup relevance as of March 2026. The evaluation prioritizes free tier generosity, speed from signup to first working automation, scalability as the team and workflow count grow, integration breadth covering the typical startup tech stack (Slack, Google Workspace, HubSpot, Stripe, GitHub, Notion), and total cost at early-stage volumes (under 50,000 tasks per month).
Dive Deeper
Make vs Power Automate in 2026: Visual Flexibility vs Microsoft Ecosystem
A detailed comparison of Make and Power Automate covering visual builders, integration ecosystems, pricing models, AI features, enterprise compliance, and real deployment data from parallel testing.
Zapier vs IFTTT in 2026: Professional Automation vs Consumer Simplicity
A detailed comparison of Zapier and IFTTT covering target audiences, integration ecosystems, workflow complexity, pricing, smart home capabilities, and AI features with real deployment data.
n8n vs Windmill in 2026: Visual Open-Source vs Code-First Automation
A detailed comparison of n8n and Windmill covering architecture, integration approaches, pricing, developer experience, execution performance, and real deployment data from parallel testing.