Hướng dẫn cài n8n self-hosted trên VPS 2026: Docker + Postgres
Self-host n8n bằng Docker + Postgres + Redis trên VPS Việt Nam. Tránh giới hạn n8n.cloud, sở hữu hoàn toàn data workflow.
TL;DR
Cài n8n bằng docker-compose với Postgres + Redis. 60 giây từ SSH đến UI. Bonus: setup Caddy reverse proxy auto-SSL, secure mode + queue scaling.
Tại sao self-host n8n thay vì n8n.cloud?
n8n.cloud có ưu điểm: zero-setup, auto-backup, scale tự động. Nhưng có 3 vấn đề lớn cho dev pro:
- Giới hạn 5,000 workflow execution/tháng trên Starter plan
- Tốn $50+/tháng khi vượt
- Data workflow + API keys lưu trên cloud n8n Inc
- Custom node Python/JS không support
- Không kiểm soát version n8n
Self-host VPS: unlimited execution, data 100% của bạn, custom node tự viết, control version. Trade-off: tự lo backup + update.
Stack chuẩn 2026: Docker Compose + Postgres + Redis
Sử dụng docker-compose để chạy 3 services: n8n web/queue, Postgres 16 (database), Redis 7 (queue cache). Đây là kiến trúc production-grade:
docker-compose.yml
version: "3.8"
services:
postgres:
image: postgres:16
environment:
POSTGRES_USER: n8n
POSTGRES_PASSWORD: secret
POSTGRES_DB: n8n
volumes:
- postgres_data:/var/lib/postgresql/data
redis:
image: redis:7-alpine
n8n:
image: docker.n8n.io/n8nio/n8n
environment:
DB_TYPE: postgresdb
DB_POSTGRESDB_HOST: postgres
EXECUTIONS_MODE: queue
QUEUE_BULL_REDIS_HOST: redis
WEBHOOK_URL: https://yourdomain.com
ports:
- 5678:5678
depends_on:
- postgres
- redis
Lý do dùng Postgres thay SQLite (default): SQLite file lock khi workflow chạy concurrent → execution chậm. Postgres handle 100+ concurrent workflow không vấn đề.
Setup auto-SSL với Caddy
Caddy là reverse proxy hiện đại nhất 2026 - tự động issue Let's Encrypt SSL + auto-renew. Setup 2 dòng:
Caddyfile
yourdomain.com {
reverse_proxy n8n:5678
}
Khi container Caddy start, nó tự gọi Let's Encrypt issue SSL cho domain bạn trỏ về. Renew tự động trước 30 ngày hết hạn.
Bonus: Setup queue mode + worker scaling
Mặc định n8n chạy mọi workflow trong process chính. Khi traffic cao → queue mode + multiple worker container tăng throughput:
- Set EXECUTIONS_MODE: queue trong docker-compose
- Add n8n-worker service replicas: 3
- Redis làm broker giữa main + workers
- Result: handle 100+ workflow concurrent
Stack hoàn chỉnh: 1 main n8n + 3 worker + Postgres + Redis + Caddy = 5 container, RAM 4GB đủ cho 50 workflow đồng thời.
VPS đã cài sẵn n8n
Khỏi mất 30 phút setup - VPS n8n TND giao sẵn stack Docker + Postgres + Redis.