Bạn đã từng mất hàng giờ — m chủ nền tảng tự động hóa workflow mà không phụ thuộc vào bên thứ ba. Với cách triển khai bằng Docker Compose, bạn có thể đưa n8n lên server riêng chỉ trong vài phút, kiểm soát toàn bộ dữ liệu và tùy chỉnh theo nhu cầu vận hành
Tóm tắt nhanh: Hướng dẫn chi tiết cài n8n trên VPS bằng Docker Compose: chuẩn bị server, cài Docker, tạo docker-compose.yml, cấu hình PostgreSQL, reverse proxy và chạy workflow đầu tiên.
Cài n8n trên VPS: Hướng dẫn từng bước cho doanh nghiệp
Tại sao nên cài n8n trên VPS thay vì dùng đám mây?
Dùng n8n Cloud tiện lợi nhưng có giới hạn về số lần chạy workflow, dung lượng dữ liệu và quyền truy cập database. Khi bạn tự cài n8n trên VPS, bạn toàn quyền:
- Không giới hạn execution — chạy workflow bao nhiêu tùy thích, không tính phí theo lượt
- Dữ liệu trên server riêng — không qua bên thứ ba, đáp ứng yêu cầu bảo mật doanh nghiệp
- Tích hợp PostgreSQL — dễ backup, phục hồi và nâng cấp sau này
- Cài node tùy chỉnh — mở rộng bằng community nodes và plugin riêng
Nếu chưa rõ về nền tảng, đọc bài n8n là gì? để hiểu tổng quan trước khi triển khai.
Yêu cầu VPS để cài n8n
Trước khi bắt đầu, kiểm tra server của bạn đáp ứng:
- Hệ điều hành: Ubuntu 22.04 hoặc 24.04 LTS (khuyến nghị)
- RAM: Tối thiểu 2 GB, khuyến nghị 4 GB nếu chạy nhiều workflow có AI agent
- CPU: 2 nhân trở lên
- Dung lượng: Tối thiểu 20 GB SSD
- Docker: Phiên bản mới nhất (24.x trở lên)
Nếu chưa có VPS, bạn có thể thuê từ DigitalOcean, Vultr hoặc các nhà cung cấp trong nước như VNG Cloud, Nhân Hòa.
Cài Docker và Docker Compose
Đa số VPS Ubuntu mới chưa có Docker sẵn. Chạy các lệnh sau qua SSH:
# Cập nhật package
sudo apt update && sudo apt upgrade -y
# Cài Docker
curl -fsSL https://get.docker.com -o get-docker.sh
sudo sh get-docker.sh
# Thêm user vào group docker
sudo usermod -aG docker root
# Kiểm tra
docker --version
Docker Compose phiên bản mới tích hợp sẵn trong Docker Engine. Kiểm tra bằng docker compose version.
Tạo docker-compose.yml cho n8n
Tạo thư mục làm việc và file cấu hình:
mkdir ~/n8n && cd ~/n8n
nano docker-compose.yml
Nội dung file với PostgreSQL làm database:
version: '3.8'
services:
postgres:
image: postgres:16-alpine
restart: always
environment:
POSTGRES_USER: n8n
POSTGRES_PASSWORD: your_strong_password
POSTGRES_DB: n8n
volumes:
- postgres_data:/var/lib/postgresql/data
healthcheck:
test: ['CMD', 'pg_isready', '-U', 'n8n']
interval: 10s
timeout: 5s
retries: 5
n8n:
image: n8nio/n8n:latest
restart: always
ports:
- '127.0.0.1:5678:5678'
environment:
N8N_HOST: n8n.example.com
N8N_PROTOCOL: https
N8N_PORT: 5678
DB_TYPE: postgresdb
DB_POSTGRESDB_HOST: postgres
DB_POSTGRESDB_PORT: 5432
DB_POSTGRESDB_USER: n8n
DB_POSTGRESDB_PASSWORD: your_strong_password
DB_POSTGRESDB_DATABASE: n8n
GENERIC_TIMEZONE: Asia/Ho_Chi_Minh
TZ: Asia/Ho_Chi_Minh
N8N_ENFORCE_SETTINGS_FILE_PERMISSIONS: true
volumes:
- n8n_data:/home/node/.n8n
depends_on:
postgres:
condition: service_healthy
volumes:
postgres_data:
n8n_data:
Thay your_strong_password bằng mật khẩu mạnh và n8n.example.com bằng domain thật của bạn. Tham khảo thêm bài n8n Self-Host để biết các tùy chọn cấu hình nâng cao.
Chạy n8n và kiểm tra
docker compose up -d
Lệnh này tải image, khởi tạo database và chạy n8n dưới nền. Xem log để biết trạng thái:
docker compose logs -f
Nếu thấy dòng “Server is ready”, n8n đã chạy thành công trên http://localhost:5678.
Cấu hình Nginx reverse proxy với SSL
Để truy cập n8n qua domain, cần reverse proxy và chứng chỉ SSL. Cài Nginx và Certbot:
sudo apt install nginx certbot python3-certbot-nginx -y
Tạo file cấu hình Nginx:
server {
listen 80;
server_name n8n.example.com;
return 301 https://;
}
server {
listen 443 ssl http2;
server_name n8n.example.com;
ssl_certificate /etc/letsencrypt/live/n8n.example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/n8n.example.com/privkey.pem;
client_max_body_size 50m;
location / {
proxy_pass http://127.0.0.1:5678;
proxy_http_version 1.1;
proxy_set_header Upgrade ;
proxy_set_header Connection 'upgrade';
proxy_set_header Host ;
proxy_set_header X-Forwarded-For ;
proxy_set_header X-Forwarded-Proto ;
}
}
Cấp SSL bằng Certbot:
sudo certbot --nginx -d n8n.example.com
Sau bước này, bạn đã có thể truy cập n8n qua https://n8n.example.com.
Bảo mật sau khi cài n8n trên VPS
Khi đã chạy online, thực hiện ngay các bước sau:
- Bật authentication: Thêm
N8N_ENCRYPTION_KEYvàN8N_AUTH_ENABLED=truevào environment - Không mở port 5678 ra internet: Chỉ proxy qua Nginx như cấu hình ở trên
- Cập nhật thường xuyên:
docker compose pull && docker compose up -d - Sao lưu định kỳ: Database PostgreSQL và thư mục
n8n_data— chủ đề kho tri thức doanh nghiệp với n8n có hướng dẫn quản lý dữ liệu workflow
Chạy workflow đầu tiên
Sau khi cài xong, đăng nhập vào n8n, vào tab Workflows > New, thêm node Schedule Trigger, nối với node Webhook, bật workflow và kiểm tra. Quy trình này chỉ mất 5 phút để thấy n8n hoạt động trên VPS của bạn.
Câu hỏi thường gặp
Cài n8n trên VPS có cần kiến thức Linux không?
Có, bạn cần biết các thao tác cơ bản trên Ubuntu như SSH, nano, cd. Toàn bộ hướng dẫn trong bài này chỉ yêu cầu gõ lệnh theo từng bước — nếu đã làm quen với VPS Linux, bạn hoàn toàn tự cài được trong 30 phút.
VPS bao nhiêu RAM là đủ cho n8n?
Tối thiểu 2 GB RAM cho n8n chạy ổn định với 5–10 workflow. Nếu bạn chạy workflow có AI agent, xử lý file hoặc nhiều node HTTP request, nên dùng 4 GB. Nếu cần tham số chi tiết hơn, tham khảo bài viết về n8n self-host trên cùng site.
Có thể cài n8n trên VPS không dùng Docker không?
Được, bạn có thể cài Node.js trực tiếp và chạy n8n bằng npm. Tuy nhiên Docker giúp quản lý phiên bản, cách ly môi trường và dễ nâng cấp hơn. Docker Compose là cách triển khai được khuyến nghị chính thức từ n8n.
Cài n8n trên VPS mất bao lâu?
Trung bình 20–30 phút nếu bạn đã có VPS và domain sẵn. Lần đầu lâu hơn do tải Docker image và chờ cấp SSL. Các lần cập nhật sau chỉ mất vài phút.
Cập nhật lần cuối: 14/10/2026 · Biên soạn: Đội ngũ kỹ thuật Wise Tech