
Cài đặt n8n trên VPS là gì? Là việc chạy công cụ tự động hoá n8n trên một máy chủ riêng của bạn (thường bằng Docker), gắn một tên miền có HTTPS, rồi dựng các quy trình (workflow) nối biểu mẫu, email, CRM, bảng tính và AI với nhau để thay phần việc lặp lại của công ty một người. Theo tài liệu n8n (đọc ngày 25/10/2026), cách cài chính thức dùng Docker Compose, cần một bản ghi DNS (A record) trỏ tên miền phụ về máy chủ, một tệp .env, và n8n chỉ phục vụ qua HTTPS; dữ liệu và khoá mã hoá nằm trong một volume. Bài này là hướng dẫn từng bước: chuẩn bị máy chủ, cài n8n bằng Docker, đặt sau nginx hoặc Traefik, các biến môi trường cần có, sao lưu và cập nhật, giấy phép (n8n không phải mã nguồn mở thuần tuý), năm quy trình đầu tiên cho solopreneur, và kinh nghiệm của OPCAIOS (chúng tôi chạy n8n trên máy chủ). Thời gian cài thực tế phụ thuộc kinh nghiệm của bạn; chúng tôi không hứa một con số cố định.

Máy chủ, Docker, tên miền, HTTPS, sao lưu; rồi mới tới quy trình. Sơ đồ: OPCAIOS.
Trước khi bắt đầu: bạn cần gì?
| Hạng mục | Ghi chú |
|---|---|
| VPS Linux | Xem VPS là gì?; chọn gói đủ RAM cho n8n và cơ sở dữ liệu |
| Tên miền | Tạo A record cho tên miền phụ (ví dụ n8n) trỏ về địa chỉ IP của VPS |
| Docker và Docker Compose | Kiểm tra bằng docker --version và docker compose version (xem Docker là gì?) |
| Email cho chứng chỉ | Dùng khi cấp chứng chỉ HTTPS (Let's Encrypt) |
| Kiến thức cơ bản về SSH | Để đăng nhập và chạy lệnh |
Tài liệu n8n không nêu cấu hình tối thiểu trong trang chúng tôi đọc; hãy xem mục Install options của n8n và để dư tài nguyên.
Bước 1: Chuẩn bị máy chủ
- Đăng nhập SSH, cập nhật hệ điều hành, cài Docker theo hướng dẫn cho bản Linux của bạn.
- Tạo người dùng không phải root cho Docker nếu có thể (
sudo usermod -aG docker ${USER}). - Mở cổng 80 và 443 trên tường lửa; không mở cổng 5678 ra Internet (xem phần bảo mật).
- Trỏ DNS: tạo A record cho tên miền phụ về IP máy chủ; đợi DNS lan truyền.
Bước 2: Cài n8n bằng Docker Compose
Cách chính thức theo tài liệu (Docker Compose với Traefik làm reverse proxy):
- Tạo thư mục dự án (
mkdir n8n-compose && cd n8n-compose). - Tạo tệp
.envvớiDOMAIN_NAME(tên miền gốc),SUBDOMAIN(ví dụn8n),GENERIC_TIMEZONE(múi giờ cho các nút lên lịch) vàSSL_EMAIL. - Tạo thư mục
local-files(n8n thấy nó ở/files). - Tạo
compose.yamlgồm hai dịch vụ:traefik(cấp chứng chỉ TLS, mở cổng 80 và 443, gắn Docker socket chỉ đọc) vàn8n(ảnhn8nio/n8n, cổng 5678 chỉ gắn vào localhost, nhãn Traefik theo${SUBDOMAIN}.${DOMAIN_NAME}); hai volumen8n_data(gắn vào/home/node/.n8n, chứa cơ sở dữ liệu SQLite và khoá mã hoá) vàtraefik_data(chứng chỉ). Hãy lấy tệp mẫu đầy đủ trên trang tài liệu của n8n thay vì tự gõ lại, vì cấu hình Traefik cần chính xác. - Khởi động:
docker compose up -d; dừng:docker compose stop. - Mở
https://<SUBDOMAIN>.<DOMAIN_NAME>và tạo tài khoản chủ sở hữu. Nếu không truy cập được, kiểm tra tường lửa và DNS.
Biến môi trường quan trọng (theo tài liệu)
| Biến | Ý nghĩa |
|---|---|
N8N_HOST |
Tên máy chủ n8n phục vụ |
N8N_PORT |
5678 |
N8N_PROTOCOL |
https |
N8N_WEBHOOK_URL |
Địa chỉ công khai để dựng URL webhook (từ n8n 2.30.0; bản cũ dùng WEBHOOK_URL, nay đã bị khai tử dần) |
GENERIC_TIMEZONE, TZ |
Múi giờ (đặt Asia/Ho_Chi_Minh nếu cần giờ Việt Nam) |
NODE_ENV |
production |
N8N_PROXY_HOPS |
1 khi chạy sau một reverse proxy |
Bước 3: Dùng nginx thay Traefik (cách OPCAIOS làm)
Nếu máy chủ của bạn đã có nginx (xem Nginx là gì?), bạn có thể chạy n8n chỉ lắng nghe localhost và để nginx làm HTTPS. Theo tài liệu n8n, khi đứng sau proxy bạn đặt N8N_WEBHOOK_URL=https://n8n.tenmiencuaban.com/ và N8N_PROXY_HOPS=1, đồng thời proxy cuối phải chuyển các tiêu đề X-Forwarded-For, X-Forwarded-Host, X-Forwarded-Proto. Giao diện n8n còn cần nâng cấp kết nối (WebSocket) qua proxy; đây là yêu cầu theo thực hành chung, hãy kiểm tra tài liệu mục reverse proxy của n8n và cấu hình Upgrade và Connection trong nginx. Nếu không đặt N8N_WEBHOOK_URL đúng, n8n dựng URL webhook sai (cổng 5678 thay vì 443) và dịch vụ bên ngoài không gọi được.
Bước 4: Webhook, thử và chạy thật
Theo tài liệu nút Webhook: có URL thử (hoạt động khi bạn bấm lắng nghe sự kiện thử, hiện dữ liệu trong trình soạn) và URL sản xuất (chỉ hoạt động khi quy trình đã bật; xem kết quả ở tab Executions). Hỗ trợ các phương thức GET, POST, PUT, PATCH, DELETE, HEAD; giới hạn payload mặc định 16 MB (đổi bằng N8N_PAYLOAD_SIZE_MAX); xác thực bằng Basic, tiêu đề, JWT; có danh sách IP cho phép. Hãy luôn bật xác thực hoặc kiểm tra chữ ký cho webhook nhận dữ liệu nhạy cảm (xem Webhook là gì? và API là gì?).
Bước 5: Sao lưu và cập nhật
Sao lưu n8n là việc bảo vệ hai thứ: dữ liệu quy trình và khoá mã hoá dùng để đọc thông tin xác thực đã lưu. Thứ tự ưu tiên là sao lưu trước, cập nhật sau, giám sát cuối cùng. Ví dụ, trước mỗi lần kéo ảnh mới, hãy chép volume n8n_data ra nơi ngoài máy chủ để có đường lui nếu bản mới lỗi.
- Sao lưu volume
n8n_data: nó chứa khoá mã hoá; mất khoá là mất khả năng đọc thông tin xác thực đã lưu. Thêm sao lưu cơ sở dữ liệu nếu dùng PostgreSQL riêng. Lưu bản sao ngoài máy chủ. - Xuất quy trình: xuất workflow ra tệp JSON và lưu trong Git (xem GitHub là gì?); không đưa thông tin xác thực vào tệp xuất.
- Cập nhật: tài liệu trang chúng tôi đọc không có lệnh cập nhật; cách thông thường với Docker Compose là kéo ảnh mới rồi khởi động lại (
docker compose pullvàdocker compose up -d), sau khi sao lưu và đọc ghi chú phát hành. Chúng tôi nêu đây là thực hành chung, không phải trích tài liệu. - Giám sát: thêm kiểm tra sức khoẻ và cảnh báo khi n8n ngừng; dùng quy trình báo lỗi (nút Error Trigger) gửi tin về Telegram.
Giấy phép: n8n có miễn phí cho kinh doanh không?
n8n dùng "Sustainable Use License": theo trang giấy phép, bạn được dùng và sửa cho mục đích kinh doanh nội bộ của mình hoặc phi thương mại; phân phối cho người khác chỉ được miễn phí và phi thương mại; không gỡ thông báo bản quyền; tệp có ".ee." thuộc giấy phép Enterprise riêng. Điều đó nghĩa là dùng n8n để tự động hoá công việc của chính bạn thì được, còn bán n8n như một dịch vụ hoặc gắn thương hiệu riêng cho người khác không nằm trong cấp phép; nếu bạn làm dịch vụ tự động hoá cho khách, hãy đọc kỹ giấy phép và hỏi n8n hoặc luật sư (đây là tóm tắt, không phải tư vấn pháp lý). Gói và giá của n8n xem n8n là gì?.
Năm quy trình đầu tiên cho solopreneur
| # | Quy trình | Nút gợi ý |
|---|---|---|
| 1 | Biểu mẫu liên hệ → CRM hoặc bảng tính → email chào | Webhook, bảng tính hoặc CRM, SMTP |
| 2 | Báo cáo buổi sáng (lead mới, việc cần làm, cảnh báo) gửi Telegram | Schedule Trigger, các nút dữ liệu, Telegram (xem Telegram bot là gì?) |
| 3 | Nhắc thanh toán và theo dõi hoá đơn | Schedule Trigger, bảng tính, email |
| 4 | Tổng hợp nội dung, soạn nháp bằng AI chờ duyệt | HTTP Request tới mô hình AI, lưu bản nháp (xem Phòng marketing 1 người) |
| 5 | Cảnh báo lỗi cho mọi quy trình khác | Error Trigger, Telegram |
Mỗi quy trình nên có điểm dừng để bạn duyệt trước khi gửi cho khách và nên ghi nhật ký. Ví dụ đầy đủ của quy trình số 1 xem Điền form Tally → AI tạo báo cáo → gửi email.
Lưu ý bảo mật
- Không mở cổng 5678 ra Internet; chỉ qua proxy HTTPS.
- Bật xác thực hai lớp và mật khẩu mạnh cho tài khoản chủ sở hữu.
- Dùng thông tin xác thực riêng cho từng dịch vụ, quyền tối thiểu.
- Webhook công khai cần xác thực hoặc kiểm tra chữ ký, giới hạn IP nếu được.
- Đừng chạy mã tuỳ ý từ người lạ trong nút Code.
- Cập nhật định kỳ và đọc ghi chú phát hành.
Kinh nghiệm của OPCAIOS
Chúng tôi chạy n8n bằng Docker trên máy chủ riêng, kèm một PostgreSQL riêng cho n8n, đứng sau nginx; kiểm tra ngày 25/10/2026 cho thấy trang kiểm tra sức khoẻ của dịch vụ trả mã 200 và ảnh Docker dùng thẻ latest. Chúng tôi cũng ghi nhận một bài học vận hành: một quy trình định tuyến liên tác tử từng chưa được nhập vào n8n nên điểm cuối của nó trả 404, nên tài liệu nội bộ ghi rõ "kiểm tra trước khi tin". Với một số việc (như bảng sản xuất nội dung), chúng tôi chọn tự xây trong website thay vì dùng n8n. Chúng tôi chưa đo thời gian tiết kiệm hay công bố số quy trình, và bài này không khẳng định một bộ quy trình chung hiệu quả cho mọi doanh nghiệp.
Câu hỏi thường gặp
Cài n8n trên VPS mất bao lâu?
Tuỳ kinh nghiệm: người quen Docker và DNS có thể cài trong một buổi; người mới nên dành thêm thời gian cho DNS, HTTPS và sao lưu. Chúng tôi không hứa một con số.
n8n cần cấu hình VPS thế nào?
Trang tài liệu n8n mà chúng tôi đọc (ngày 25/10/2026) không nêu cấu hình tối thiểu, nên bài này không đưa con số cụ thể. Cách chọn an toàn gồm ba bước. Đầu tiên, xem mục Install options của n8n để cập nhật thông tin mới nhất. Tiếp theo, chọn VPS Linux đủ RAM cho n8n, cơ sở dữ liệu và reverse proxy, và để dư tài nguyên thay vì chọn mức sát nhất. Cuối cùng, theo dõi mức dùng RAM và CPU khi số quy trình tăng, rồi nâng gói khi cần. Ví dụ, nếu cùng một VPS còn chạy PostgreSQL riêng và nginx, hãy tính cả hai dịch vụ đó vào nhu cầu RAM. OPCAIOS chạy n8n bằng Docker trên máy chủ riêng nhưng chưa công bố số đo tài nguyên.
n8n có miễn phí không?
n8n tự lưu trữ miễn phí cho mục đích kinh doanh nội bộ theo giấy phép Sustainable Use, theo tệp giấy phép trên GitHub của n8n (đọc ngày 25/10/2026), còn gói đám mây của n8n tính phí (xem n8n là gì?). Miễn phí phần mềm không có nghĩa là không tốn chi phí: bạn vẫn trả tiền thuê VPS, tên miền và thời gian vận hành. Ranh giới cấp phép cần nhớ gồm ba điểm. Thứ nhất, dùng n8n để tự động hoá công việc của chính công ty bạn là được. Thứ hai, bán n8n như một dịch vụ hoặc gắn thương hiệu riêng cho người khác không nằm trong cấp phép. Thứ ba, tệp có ".ee." thuộc giấy phép Enterprise riêng. Ví dụ, chủ cửa hàng tự chạy n8n để nối biểu mẫu với bảng tính thì nằm trong phạm vi; đây là tóm tắt, không phải tư vấn pháp lý.
Dùng Traefik hay nginx?
Cách chính thức theo tài liệu n8n dùng Traefik làm reverse proxy, còn nginx là lựa chọn hợp lý khi máy chủ đã có nginx, như cách OPCAIOS làm. Với nginx, phải đặt đúng ba thứ. Thứ nhất, biến N8N_WEBHOOK_URL trỏ về tên miền công khai, nếu không n8n dựng URL webhook sai với cổng 5678. Thứ hai, các tiêu đề X-Forwarded-For, X-Forwarded-Host và X-Forwarded-Proto cùng N8N_PROXY_HOPS=1. Thứ ba, Upgrade và Connection để WebSocket hoạt động. Ví dụ, một webhook từ cổng thanh toán sẽ gọi thất bại nếu URL hiển thị trong n8n vẫn là cổng 5678.
Có an toàn khi để n8n công khai không?
n8n chỉ an toàn khi công khai nếu chạy qua HTTPS, có xác thực, webhook kiểm tra chữ ký và được cập nhật định kỳ. Đầu tiên, không mở cổng 5678 ra Internet; chỉ mở cổng 80 và 443 rồi để nginx hoặc Traefik chuyển tiếp vào n8n. Tiếp theo, bật xác thực hai lớp cho tài khoản chủ sở hữu và dùng thông tin xác thực riêng, quyền tối thiểu cho từng dịch vụ. Sau đó, bật xác thực Basic, tiêu đề hoặc JWT cho các webhook nhận dữ liệu nhạy cảm, theo tài liệu nút Webhook của n8n (đọc ngày 25/10/2026). Cuối cùng, sao lưu volume n8n_data ra ngoài máy chủ vì nó chứa khoá mã hoá. Ví dụ, webhook nhận biểu mẫu liên hệ nên có kiểm tra chữ ký để người lạ không tạo lead giả. Muốn học cách dựng quy trình tự động an toàn, xem khoá đào tạo ứng dụng AI của OPCAIOS.
Nguồn: tài liệu n8n (cài Docker Compose, URL webhook, nút Webhook) và tệp giấy phép Sustainable Use License trên GitHub, đọc ngày 25/10/2026; chưa đọc cấu hình tối thiểu và lệnh cập nhật chính thức. Kinh nghiệm là của OPCAIOS theo kiểm tra trực tiếp.
Để lại bình luận
Email của bạn sẽ không hiển thị công khai. Bình luận sẽ hiển thị sau khi được duyệt.


