
Trả lời nhanh: Cách cài n8n chuẩn trên VPS: Ubuntu + Docker Compose, một file cấu hình khai báo n8n kèm volume lưu dữ liệu, trỏ tên miền vào VPS và để Caddy (hoặc Cloudflare Tunnel) lo HTTPS. Bản khởi đầu dùng SQLite có sẵn là đủ; workflow dày lên thì chuyển Postgres. Ba việc bắt buộc trước khi giao việc thật cho nó: đặt mật khẩu đăng nhập, cấu hình đúng địa chỉ webhook, và backup tự động thư mục dữ liệu.
Phần lớn hướng dẫn cài n8n dừng ở "chạy được trên localhost", tức là chưa dùng được thật: webhook từ bên ngoài chưa gọi vào được, mất điện là mất cấu hình, ai biết IP cũng vào được giao diện. Bài này đi thẳng đến cấu hình chạy thật: có tên miền HTTPS, dữ liệu bền, có backup, toàn bộ bằng các khối copy-paste.
- Docker Compose là đường cài chuẩn: nâng cấp, di chuyển máy, backup đều gọn trong một thư mục
- Webhook cần HTTPS + tên miền: Caddy tự lo chứng chỉ, hoặc Cloudflare Tunnel nếu không muốn mở port
- SQLite mặc định đủ cho khởi đầu; chuyển Postgres khi workflow nhiều và chạy dày
- Backup = chép volume dữ liệu (đã gồm SQLite) + export workflow định kỳ; có lịch cập nhật phiên bản
Bước 1: Docker và thư mục dự án
Trên VPS Ubuntu mới (cách lấy máy xem cuối bài):
curl -fsSL https://get.docker.com | sh
mkdir -p ~/n8n && cd ~/n8nTạo file docker-compose.yml:
services:
n8n:
image: docker.n8n.io/n8nio/n8n
restart: unless-stopped
ports:
- "127.0.0.1:5678:5678"
environment:
- N8N_HOST=n8n.ten-mien-cua-ban.vn
- WEBHOOK_URL=https://n8n.ten-mien-cua-ban.vn/
- GENERIC_TIMEZONE=Asia/Ho_Chi_Minh
- TZ=Asia/Ho_Chi_Minh
volumes:
- n8n_data:/home/node/.n8n
volumes:
n8n_data:Chạy: docker compose up -d. Cổng 5678 cố ý chỉ mở cho localhost, thế giới bên ngoài sẽ đi qua lớp HTTPS ở bước sau, không ai vào thẳng IP:port được.
Bước 2: Tên miền và HTTPS - hai đường tùy hoàn cảnh
Đường A - Caddy (khuyên dùng khi VPS có IP công khai): trỏ bản ghi A của n8n.ten-mien.vn về IP VPS, cài Caddy và khai một khối:
sudo apt install -y caddy
# /etc/caddy/Caddyfile
n8n.ten-mien.vn {
reverse_proxy 127.0.0.1:5678
}
sudo systemctl reload caddyCaddy tự xin và tự gia hạn chứng chỉ, không phải đụng đến certbot.
Đường B - Cloudflare Tunnel (không cần mở port nào): hợp khi bạn muốn giấu hẳn IP. Cài cloudflared, tạo tunnel trỏ vào http://127.0.0.1:5678: HTTPS và tên miền do Cloudflare lo trọn.
Xong bước này, mở https://n8n.ten-mien.vn: lần đầu n8n bắt tạo tài khoản chủ, đặt email và mật khẩu mạnh ngay tại đây.
Bước 3: SQLite hay Postgres - và thời điểm chuyển
Mặc định n8n lưu mọi thứ vào SQLite trong volume, với vài chục workflow chạy nhịp bình thường, SQLite hoàn toàn ổn và ít thứ phải quản. Dấu hiệu đến lúc chuyển Postgres: workflow chạy dày (phút nhiều lần) kèm log execution lớn, giao diện bắt đầu ì khi mở lịch sử chạy, hoặc bạn cần nhiều tiến trình n8n song song. Cách chuyển: thêm service postgres vào compose, khai bốn biến DB_TYPE/DB_POSTGRESDB_* cho n8n, export workflow trước - import lại sau. Ổ NVMe của VPS lúc này phát huy rõ: cả SQLite lẫn Postgres đều fsync liên tục khi ghi execution log, ổ chậm là giao diện khựng theo.
Bước 4: Backup và cập nhật - phần quyết định bạn ngủ ngon
Backup hai lớp:
# lop 1: chep volume du lieu hang dem (cron 2h sang)
docker run --rm -v n8n_n8n_data:/data -v /root/backup:/backup alpine
tar czf /backup/n8n-$(date +%F).tar.gz /data
# lop 2: export workflow ra file JSON moi tuan
docker compose exec n8n n8n export:workflow --all --output=/home/node/.n8n/export-all.jsonGiữ 7-14 bản gần nhất, và nếu VPS có backup máy chủ định kỳ (như backup hàng tuần của TND) thì bạn có thêm lớp thứ ba miễn phí.
Cập nhật: n8n ra bản mới liên tục; nhịp khôn ngoan là mỗi 2-4 tuần, sau khi backup:
docker compose pull && docker compose up -dChecklist trước khi giao việc thật
- Đăng nhập bắt buộc + mật khẩu mạnh (đã ép ở lần chạy đầu), giao diện automation là chìa khóa vào mọi tài khoản bạn nối vào nó.
- WEBHOOK_URL đúng https://... sai biến này là mọi nút webhook sinh link nội bộ vô dụng.
- Test một webhook từ ngoài (curl từ máy khác) trước khi tin.
- Backup đã chạy thật ít nhất một lần và bạn đã thử mở file backup ra xem.
- Credentials các dịch vụ nối vào dùng quyền tối thiểu (Sheet chỉ cần sheet đó, không cần cả Drive).
Câu hỏi thường gặp
Cài n8n không dùng Docker được không?
Được (npm hoặc bản desktop) nhưng không khuyên cho máy chạy thật: Docker đóng gói phiên bản, dữ liệu, cập nhật và di chuyển máy gọn hơn hẳn. Bản desktop chỉ nên để học.
n8n tự host có tốn RAM không?
Bản thân n8n nhàn, cỡ vài trăm MB khi chạy bình thường. RAM ăn theo workflow: xử lý file lớn, chạy nhiều execution song song mới cần 4 GB trở lên. Khởi đầu 2 GB là đủ.
Lỡ hỏng VPS thì workflow có mất không?
Không, nếu làm đúng bước backup: volume chứa toàn bộ workflow + credentials (đã mã hóa) + lịch sử. Dựng máy mới, bung tar vào volume, up lại compose là chạy tiếp, kèm file export JSON làm lưới phụ.
Một VPS chạy được cả n8n lẫn Claude Code không?
Rất hợp lý và là combo phổ biến: n8n trực webhook 24/7, Claude Code cày trong tmux khi bạn giao việc. Gói 4-6 GB RAM gánh thoải mái cả hai; chúng chia sẻ ổ NVMe nên chọn ổ tốt lợi đôi đường.
Bài viết liên quan
- n8n là gì? Zapier tự host tiết kiệm 90%
- VPS chạy AI agent 24/7: cấu hình và lưu ý
- VPS ổ Enterprise U.2 NVMe RAID 10 tại TND
- AI viết code có thay được lập trình viên? Nhìn từ 2026
- Mattermost self-host trên VPS: Slack alternative cho team VN
- Tailscale với Proxmox: quản trị homelab và backup từ xa
- VPS hay hosting: khi nào bắt buộc phải chuyển lên VPS
- Sửa lỗi Tailscale is stopped và error 503 no backend
- Freelancer MMO Kiếm Tiền Online: Chọn Windows License Nào Cho PC/Laptop An Toàn



