n8n là gì và khi nào nên tự host thay vì dùng bản cloud

Bạn vừa biết đến n8n, thấy nó tự động hoá được việc gửi email, đồng bộ CRM, đăng bài mạng xã hội, nhưng phân vân không biết nên chạy bản tự host trên VPS của mình hay mua luôn bản cloud của họ. Câu trả lời không đơn giản, vì nó tuỳ thuộc vào số lượng workflow, tần suất chạy, dữ liệu bạn xử lý và ngân sách hàng tháng. Bài này sẽ giúp bạn hiểu rõ bản chất n8n, kiến trúc của nó, và đặt lên bàn cân hai lựa chọn để tự ra quyết định.
- n8n là nền tảng workflow automation mã nguồn mở (Sustainable Use License), chạy được trên mọi VPS Linux.
- Tự host cho bạn toàn quyền kiểm soát dữ liệu, không giới hạn execution, chỉ tốn tiền VPS (~189.000đ/tháng cho VPS 2GB RAM).
- n8n Cloud miễn lo hạ tầng, nhưng giới hạn 500-5000 execution/tháng tuỳ gói, giá từ $20/tháng.
- Nếu workflow của bạn xử lý dữ liệu nhạy cảm (khách hàng, tài chính) hoặc chạy >5000 exec/tháng → tự host là lựa chọn tối ưu hơn.
Yêu cầu trước khi bắt đầu
- Hiểu cơ bản về VPS, SSH, Docker Compose (nếu định tự host).
- Một VPS Linux có tối thiểu 1 vCPU / 2 GB RAM / 20 GB NVMe (mình khuyên 2 GB RAM là điểm xuất phát tối thiểu cho n8n + PostgreSQL). Xem bảng giá để chọn gói phù hợp.
- Domain trỏ về VPS (nếu muốn HTTPS qua reverse proxy).
N8n là gì và nó hoạt động ra sao?
N8n (phát âm là "n-eight-n") là một công cụ tự động hoá workflow mã nguồn mở, thay thế cho các nền tảng đóng như Zapier, Make (Integromat) hay Workato. Điểm khác biệt lớn nhất: bạn có thể tự chạy n8n trên hạ tầng của mình, hoàn toàn kiểm soát dữ liệu và số lượng tác vụ.
Một workflow trong n8n là một chuỗi các bước (node) nối tiếp nhau. Node đầu tiên thường là trigger (webhook, schedule, email đến...), các node sau là action (gửi email qua SMTP, thêm dòng vào Google Sheets, gọi API ChatGPT, cập nhật database...). N8n hỗ trợ hơn 400 integration có sẵn, và nếu thiếu, bạn có thể tự viết node bằng JavaScript hoặc gọi HTTP Request.
Kiến trúc của n8n
N8n gồm hai thành phần chính: n8n core (xử lý workflow) và database (lưu workflow, credential, execution log). Mặc định n8n dùng SQLite, nhưng trong production, đặc biệt khi có nhiều workflow chạy song song, cần chuyển sang PostgreSQL. Nếu chạy queue mode, bạn thêm Redis để điều phối worker.
Bản thân n8n là một ứng dụng Node.js, nên cách dễ nhất để chạy là qua Docker. File docker-compose.yml điển hình sẽ gồm service n8n + service postgres. Chỉ cần vài dòng lệnh là có một hệ thống automation chạy trong giờ hành chính trên VPS Linux.
Vì sao cần cân nhắc giữa tự host và cloud?
Cả hai phương án đều có lợi và hại rõ ràng. Quyết định sai có thể khiến bạn trả tiền oan cho cloud, hoặc mất thời gian quản trị một hệ thống không cần thiết. Bảng dưới đây tóm tắt các tiêu chí quan trọng nhất:
| Tiêu chí | N8n Cloud | Tự host trên VPS |
|---|---|---|
| Chi phí tối thiểu/tháng | $20 (gói Starter, 500 exec) | ~$8 (189.000đ VPS 2GB) |
| Giới hạn execution | Có, từ 500 đến 5000 | Không giới hạn (chỉ bị giới hạn bởi RAM/CPU VPS) |
| Kiểm soát dữ liệu | Dữ liệu đi qua server n8n (Mỹ/EU) | rất cao trên VPS của bạn |
| Bảo trì hạ tầng | Không cần lo | Tự update, backup, monitor |
| Cập nhật phiên bản | Tự động | Tự làm (docker compose pull + up) |
| Custom code / node tự viết | Có, nhưng giới hạn sandbox | Toàn quyền, không sandbox |
| Worker / queue mode | Không hỗ trợ | Có thể mở rộng với Redis |
Khi nào nên dùng n8n Cloud?
Dùng cloud khi bạn cần một giải pháp "chạy ngay không cần cài đặt" và chấp nhận trả thêm tiền cho sự tiện lợi. Cụ thể:
- Bạn chỉ có 1-3 workflow đơn giản, mỗi tháng chạy dưới 500 lần. Gói Starter $20/tháng là đủ, khỏi mất công setup VPS.
- Bạn không muốn động tay vào hệ thống: không SSH, không Docker, không muốn nhớ backup database. Cloud lo hết.
- Workflow của bạn không xử lý dữ liệu nhạy cảm: chỉ đồng bộ bài viết blog, tweet tự động, gửi email thông báo nội bộ.
Khi nào nên tự host n8n trên VPS?
Tự host là lựa chọn bắt buộc nếu bạn thuộc một trong các trường hợp sau:
- Workflow chạy >5000 execution/tháng: gói cloud Pro $50/tháng cho 5000 exec, vượt quá phải mua thêm credits. Với cùng số tiền, bạn có thể thuê một VPS Linux 4GB RAM (~350.000đ/tháng) chạy không giới hạn.
- Xử lý dữ liệu nhạy cảm: thông tin khách hàng, dữ liệu tài chính, credential nội bộ. Gửi qua server cloud là rủi ro compliance (GDPR, PDPA Việt Nam).
- Cần tích hợp với các service nội bộ: database sau firewall, API nội bộ, hệ thống không có public endpoint. Lúc này n8n phải chạy trong cùng mạng, chỉ tự host mới đáp ứng được.
- Cần queue mode với nhiều worker: nếu workflow của bạn là dạng batch lớn (xử lý 10.000 ảnh, gửi 5000 email marketing), bạn cần Redis + worker riêng. Cloud không hỗ trợ.
- Bạn đã có VPS chạy sẵn Docker: việc thêm một container n8n gần như tốn 0 công sức. Chi phí biên bằng 0.
Các bước tự host n8n trên VPS, tổng quan
Nếu bạn quyết định tự host, dưới đây là các bước cốt lõi. Mình không đi từng dòng lệnh ở đây (đã có bài hướng dẫn chi tiết riêng), chỉ nêu kiến trúc để bạn hình dung:
- Cài Docker và Docker Compose lên VPS (
apt install docker.io docker-compose-v2trên Ubuntu 24.04). - Tạo file
docker-compose.ymlvới hai service:n8n(imagen8nio/n8n) vàpostgres(imagepostgres:16). Mount volume cho dữ liệu. - Cấu hình biến môi trường:
DB_TYPE=postgresdb,DB_POSTGRESDB_DATABASE,N8N_ENCRYPTION_KEY(quan trọng, mất key là mất credential). - Thiết lập reverse proxy (Nginx hoặc Caddy) để chặn HTTPS, vì n8n mặc định chạy HTTP ở port 5678.
- Mở firewall: port 80, 443, và chỉ cho phép SSH từ IP tin cậy.
- Bật
docker compose up -d, kiểm tra log. Sau đósystemctl enable dockerđể Docker tự khởi động cùng VPS.
Quá trình này mất khoảng 15-30 phút, tuỳ tốc độ mạng. Một khi chạy, bạn có giao diện web tại https://n8n.domain.com để bắt đầu tạo workflow.
Xử lý lỗi thường gặp
Dù chọn cloud hay tự host, vẫn có những lỗi phổ biến cần biết trước:
- Lỗi 401 Unauthorized khi gọi webhook: webhook n8n có built-in authentication (basic auth hoặc header). Nếu gọi API từ bên ngoài mà không gửi credential, bạn sẽ bị từ chối. Giải pháp: tắt auth ở node webhook hoặc cấu hình đúng.
- Workflow chạy một lần rồi dừng: thường do memory leak hoặc lỗi node. Kiểm tra "Execution" tab, xem node nào fail. Thường là lỗi credential hết hạn hoặc API trả về format khác mong đợi.
- Lỗi "Encryption key not set": khi khởi động n8n lần đầu mà chưa set
N8N_ENCRYPTION_KEY. Nếu đã có database cũ rồi reset container mà không giữ key cũ, bạn mất toàn bộ credential. Luôn backup key ra file riêng.
Câu hỏi thường gặp
N8n có hoàn toàn miễn phí không?
N8n là mã nguồn mở, bạn có thể tự host miễn phí. Tuy nhiên, bản cloud và các tính năng cao cấp (SSO, audit log, user management) chỉ có ở gói Enterprise. Bản tự host dùng Sustainable Use License, có nghĩa là không được bán dịch vụ n8n cho bên thứ ba nếu doanh thu trên $5 triệu/năm. Với cá nhân và doanh nghiệp vừa, điều này không ảnh hưởng.
Có cần biết Docker mới tự host được không?
Có, bạn cần biết các lệnh cơ bản như docker compose up, docker compose logs, và cách mount volume. Nhưng nếu đã quen với thuê VPS Linux và dùng SSH, việc học Docker không mất quá một buổi tối. Nếu không muốn động đến Docker, có thể dùng bản standalone Node.js hoặc sử dụng VPS có cài sẵn n8n.
Tự host n8n có bị giới hạn tính năng so với cloud không?
Không. Bản tự host có đầy đủ mọi tính năng của bản cloud, bao gồm tất cả node tích hợp, webhook, schedule, và code node. Điểm thiếu riêng biệt là các tính năng team như user roles và audit log, chỉ có trong bản Enterprise (trả tiền riêng).
Nên chọn VPS cấu hình bao nhiêu cho n8n tự host?
Với 1-5 workflow chạy không liên tục, VPS 2GB RAM (như VNLite) là đủ. Nếu có workflow xử lý file lớn, gọi nhiều API cùng lúc, hoặc dùng queue mode, hãy nâng lên 4GB hoặc 8GB. RAM là yếu tố quyết định, n8n dùng Node.js, mỗi workflow execution tiêu tốn ~50-150MB tuỳ độ phức tạp.
Dữ liệu trên n8n cloud có được mã hoá không?
Có, n8n mã hoá credential ở rest và transit. Nhưng dữ liệu vẫn nằm trên server của họ (AWS/Azure). Nếu bạn cần đảm bảo dữ liệu không rời khỏi biên giới Việt Nam, tự host trên VPS đặt tại Việt Nam là giải pháp riêng biệt.
Nếu tự host, làm sao backup workflow?
Dùng lệnh docker compose exec n8n n8n export:workflow --all --output=/backup. Hoặc backup toàn bộ volume PostgreSQL. Quan trọng: luôn backup cả .n8n-encryption-key, mất key là mất credential, không cứu được.
Bài viết liên quan
- Cài n8n trên VPS Ubuntu 24.04 bằng Docker Compose từ A-Z
- n8n tự host hay n8n cloud: tính điểm hoà vốn
- Backup n8n đúng cách: encryption key, database và credential
- Chọn RAM cho n8n theo số workflow chạy song song


