Hướng dẫn cài đặt n8n trên VPS chi tiết từ A-Z

Hướng dẫn cài đặt n8n trên VPS

Hướng dẫn cài đặt n8n trên VPS là chủ đề được rất nhiều người làm automation, marketing, vận hành hệ thống và doanh nghiệp nhỏ quan tâm khi muốn tiết kiệm chi phí nhưng vẫn kiểm soát hoàn toàn dữ liệu. Thay vì dùng n8n Cloud với chi phí cao hơn và giới hạn executions theo gói, nhiều người chọn self-host n8n trên VPS để chủ động hơn trong quá trình triển khai, mở rộng và tối ưu hệ thống.

Nếu bạn đang muốn cài n8n để chạy workflow tự động 24/7, bài viết này sẽ giúp bạn hiểu rõ từ kiến trúc hoạt động, cấu hình VPS phù hợp, cách cài bằng Docker, cấu hình domain, SSL, backup, cập nhật phiên bản cho đến cách xử lý các lỗi thường gặp khi vận hành thực tế.

Kiến trúc n8n hoạt động trên máy chủ như thế nào?

Trước khi cài đặt, bạn nên hiểu n8n hoạt động trên VPS ra sao để dễ xử lý khi gặp lỗi.

Mô hình cơ bản

Khi self-host, n8n thường hoạt động theo mô hình:

  • VPS/Cloud VPS làm hạ tầng chạy hệ thống
  • Docker hoặc Node.js để chạy dịch vụ n8n
  • Volume hoặc thư mục data để lưu workflow, credentials, executions
  • Nginx hoặc Caddy làm reverse proxy
  • SSL certificate để mã hóa kết nối HTTPS
  • Domain/Subdomain để truy cập giao diện và webhook ổn định

Luồng hoạt động phổ biến

Thông thường, hệ thống sẽ chạy theo chuỗi:

Người dùng truy cập domain → Nginx/Caddy nhận request → chuyển tiếp về n8n chạy ở cổng 5678 → n8n xử lý giao diện, workflow và webhook → dữ liệu được lưu lại trong thư mục hoặc volume.

Hiểu mô hình này sẽ giúp bạn dễ xử lý các lỗi như:

  • Timeout khi truy cập
  • Webhook không nhận request
  • SSL không hợp lệ
  • Sai domain hoặc biến môi trường
  • Lỗi quyền ghi dữ liệu

Hướng dẫn cài đặt n8n trên VPS

Cần chuẩn bị gì trước khi cài n8n trên VPS?

Muốn hệ thống chạy mượt và ít lỗi, bạn nên chuẩn bị đủ 4 phần sau.

VPS phù hợp

Với nhu cầu cơ bản, n8n không cần cấu hình quá cao. Tuy nhiên, nếu chạy nhiều workflow, webhook, cron hoặc tích hợp nhiều ứng dụng cùng lúc thì bạn nên chọn cấu hình rộng hơn để tránh chậm và restart.

Mức tối thiểu nên có:

  • 1 vCPU
  • 2 GB RAM
  • 20 GB SSD
  • Ubuntu 20.04 trở lên

Mức nên dùng để ổn định hơn:

  • 2 vCPU
  • 4 GB RAM
  • 40 GB NVMe
  • Ubuntu 22.04 LTS

Nếu bạn cần chạy automation liên tục, chọn Cloud VPS NVMe sẽ hợp lý hơn nhờ tốc độ đọc ghi tốt, phản hồi nhanh và dễ nâng cấp khi workflow tăng dần.

Domain hoặc subdomain

Bạn nên dùng một subdomain riêng như:

  • n8n.tenmiencuaban.com
  • automation.tenmiencuaban.com

Việc gắn domain giúp:

  • Truy cập chuyên nghiệp hơn
  • Cấu hình SSL dễ hơn
  • Webhook hoạt động ổn định
  • Dễ tích hợp với hệ thống khác

SSL certificate

Nếu chạy production mà không có SSL, dữ liệu truyền giữa người dùng và máy chủ sẽ không được mã hóa đầy đủ. Đây là điểm rất quan trọng vì n8n thường lưu và xử lý nhiều thông tin nhạy cảm như token, API key, credentials.

Giải pháp backup

Self-host giúp bạn chủ động dữ liệu, nhưng đồng thời cũng phải tự chịu trách nhiệm sao lưu. Chỉ cần một lần update lỗi hoặc thao tác nhầm, toàn bộ workflow có thể bị ảnh hưởng nếu không backup trước.

Hướng dẫn cài đặt n8n trên VPS bằng Docker

Đây là cách phổ biến, dễ quản lý và phù hợp nhất với đa số người dùng hiện nay.

Bước 1: Cập nhật hệ thống và cài Docker

SSH vào VPS, sau đó cập nhật hệ thống và cài Docker. Cách này giúp bạn tách biệt môi trường n8n với hệ điều hành, dễ cập nhật và giảm xung đột.

sudo apt update && sudo apt upgrade -y

curl -fsSL https://get.docker.com -o get-docker.sh

sudo sh get-docker.sh

sudo usermod -aG docker $USER

sudo systemctl enable docker

sudo systemctl start docker

Sau khi cài xong, logout rồi SSH lại để quyền docker được áp dụng.

Bước 2: Tạo thư mục lưu dữ liệu n8n

Bạn cần tạo thư mục lưu trữ dữ liệu để workflow và credentials không bị mất khi container restart hoặc update.

mkdir -p ~/.n8n

sudo chown -R 1000:1000 ~/.n8n

Phần phân quyền này rất quan trọng. Nếu bỏ qua, bạn rất dễ gặp lỗi permission denied khi n8n ghi database.

Bước 3: Chạy n8n container

Cách chạy nhanh để test

docker run -d

 –name n8n

 –restart unless-stopped

 -p 5678:5678

 -v ~/.n8n:/home/node/.n8n

 n8nio/n8n

Cách này phù hợp để thử nhanh trong môi trường test hoặc lab.

Cách chạy đầy đủ để dùng chính thức

docker run -d

 –name n8n

 –restart unless-stopped

 -p 5678:5678

 -v ~/.n8n:/home/node/.n8n

 -e N8N_HOST=”n8n.yourdomain.com”

 -e N8N_PORT=5678

 -e N8N_PROTOCOL=https

 -e NODE_ENV=production

 -e WEBHOOK_URL=”https://n8n.yourdomain.com/”

 -e GENERIC_TIMEZONE=”Asia/Ho_Chi_Minh”

 -e TZ=”Asia/Ho_Chi_Minh”

 n8nio/n8n

Những biến môi trường này giúp n8n hiểu đúng domain, giao thức HTTPS và timezone để webhook, lịch chạy và URL hoạt động chính xác.

Bước 4: Kiểm tra n8n đã chạy chưa

Sau khi khởi động container, kiểm tra bằng các lệnh:

docker ps

docker logs n8n

curl http://localhost:5678

Nếu mọi thứ ổn, bạn có thể truy cập bằng IP VPS ở cổng 5678 để kiểm tra giao diện ban đầu.

Hướng dẫn cài đặt n8n trên VPS

Dùng Docker Compose cho production có tốt hơn không?

Câu trả lời là . Nếu bạn muốn quản lý dễ hơn, nên dùng Docker Compose.

Lợi ích của Docker Compose

  • Dễ chỉnh sửa biến môi trường
  • Dễ backup và nâng cấp
  • Dễ mở rộng thêm PostgreSQL, Redis hoặc reverse proxy
  • Dễ quản lý khi chạy nhiều service

Ví dụ file docker-compose.yml

version: ‘3.8’

services:

 n8n:

   image: n8nio/n8n

   container_name: n8n

   restart: unless-stopped

   ports:

     – “5678:5678”

   volumes:

     – n8n_data:/home/node/.n8n

   environment:

     – N8N_HOST=n8n.yourdomain.com

     – N8N_PORT=5678

     – N8N_PROTOCOL=https

     – NODE_ENV=production

     – WEBHOOK_URL=https://n8n.yourdomain.com/

     – GENERIC_TIMEZONE=Asia/Ho_Chi_Minh

     – TZ=Asia/Ho_Chi_Minh

volumes:

 n8n_data:

Khởi động:

docker compose up -d

Nếu xác định dùng lâu dài, đây là cách nên ưu tiên.

Cấu hình domain cho n8n trên VPS

Sau khi n8n chạy, bước tiếp theo là trỏ domain hoặc subdomain về VPS.

Tạo bản ghi DNS

Trong phần quản lý DNS, tạo:

  • Type: A
  • Name: n8n
  • Value: IP VPS
  • TTL: 300

Sau khi DNS cập nhật, bạn có thể dùng subdomain để truy cập thay vì IP.

Vì sao domain quan trọng?

Domain không chỉ để đẹp hơn. Nó còn giúp:

  • Cài SSL dễ dàng
  • Webhook ổn định
  • Tránh lỗi redirect hoặc callback
  • Tăng độ tin cậy khi chia sẻ webhook cho hệ thống khác

Nếu bạn chưa có tên miền, nên đăng ký tại đơn vị có quản lý DNS ổn định, hỗ trợ nhanh và dễ trỏ record khi cần.

Hướng dẫn cài đặt n8n trên VPS

Cấu hình SSL cho n8n bằng Nginx hoặc Caddy

Cách 1: Dùng Nginx reverse proxy

Đây là cách phổ biến, phù hợp nếu bạn quen hệ thống Linux.

Cấu hình Nginx cơ bản

server {

   listen 80;

   server_name n8n.yourdomain.com;

   location / {

       proxy_pass http://localhost:5678;

       proxy_http_version 1.1;

       proxy_set_header Upgrade $http_upgrade;

       proxy_set_header Connection ‘upgrade’;

       proxy_set_header Host $host;

       proxy_set_header X-Real-IP $remote_addr;

       proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

       proxy_set_header X-Forwarded-Proto $scheme;

       proxy_cache_bypass $http_upgrade;

       proxy_read_timeout 86400;

       chunked_transfer_encoding off;

       proxy_buffering off;

   }

}

Sau đó kích hoạt site và lấy SSL bằng Certbot.

Khi nào nên chọn Nginx?

Nên dùng nếu bạn:

  • Muốn kiểm soát cấu hình chi tiết
  • Đang có nhiều website trên cùng VPS
  • Quen quản lý reverse proxy

Cách 2: Dùng Caddy

Caddy đơn giản hơn nhiều vì có thể tự lấy và gia hạn SSL gần như tự động.

Caddyfile cơ bản

n8n.yourdomain.com {

   reverse_proxy localhost:5678

}

Khi nào nên chọn Caddy?

Phù hợp nếu bạn:

  • Muốn cấu hình nhanh, ít lỗi
  • Không rành Nginx
  • Cần triển khai gọn nhẹ

Với người mới, Caddy thường là lựa chọn dễ tiếp cận hơn.

Cách test webhook sau khi cài xong

Sau khi cấu hình domain và SSL, hãy tạo một workflow có Webhook Trigger rồi kiểm tra URL dạng:

https://n8n.yourdomain.com/webhook/test-webhook

Nếu webhook không hoạt động, phần lớn nguyên nhân nằm ở:

  • Sai WEBHOOK_URL
  • DNS chưa trỏ đúng
  • SSL lỗi
  • Firewall đang chặn cổng
  • Reverse proxy cấu hình thiếu header

Đây là bước rất quan trọng vì nhiều người thấy giao diện vào được nhưng webhook vẫn lỗi.

Backup dữ liệu n8n như thế nào cho an toàn?

Dữ liệu n8n thường nằm trong thư mục ~/.n8n hoặc volume Docker tương ứng. Đây là phần cần được backup định kỳ.

Những gì cần sao lưu?

Thông thường sẽ gồm:

  • Database workflows
  • Credentials
  • Cấu hình
  • Encryption key
  • Dữ liệu execution nếu có lưu

Script backup cơ bản

#!/bin/bash

BACKUP_DIR=”/root/backups/n8n”

N8N_DATA=”$HOME/.n8n”

KEEP_DAYS=7

mkdir -p $BACKUP_DIR

BACKUP_FILE=”$BACKUP_DIR/n8n-backup-$(date +%Y%m%d-%H%M%S).tar.gz”

tar -czvf $BACKUP_FILE $N8N_DATA

find $BACKUP_DIR -name “*.tar.gz” -mtime +$KEEP_DAYS -delete

echo “Backup completed: $BACKUP_FILE”

Sau đó đặt cron chạy hằng ngày để tránh quên.

Vì sao backup là bắt buộc?

Rất nhiều sự cố thực tế không nằm ở bước cài đặt, mà nằm ở lúc:

  • Update phiên bản mới
  • Chỉnh nhầm biến môi trường
  • Xóa nhầm volume
  • VPS đầy ổ hoặc lỗi hệ thống

Backup tốt giúp bạn rollback nhanh và giảm rủi ro gián đoạn workflow.

Hướng dẫn cài đặt n8n trên VPS

Vì sao nên chọn Dhost khi cần triển khai n8n trên VPS?

Nếu bạn đang tìm một giải pháp vừa đủ mạnh để self-host n8n, vừa có hỗ trợ nhanh khi gặp lỗi kỹ thuật, Dhost là lựa chọn đáng cân nhắc.

Hiện Dhost đang cung cấp nhiều nhóm dịch vụ phù hợp cho bài toán triển khai automation như Cloud VPS NVMe, Cloud VPS N8N, dịch vụ SSL, tên miền, email, cùng các nhóm hosting tối ưu cho nhiều nhu cầu vận hành website và ứng dụng. Dhost cung cấp các dòng Cloud VPS có quyền root đầy đủ, khả năng nâng cấp tài nguyên linh hoạt và hạ tầng hướng tới tốc độ, uptime cao, chống DDoS và hỗ trợ kỹ thuật liên tục.

Điểm đáng giá khi chọn một đơn vị như Dhost không chỉ là chỗ thuê VPS, mà là sự đồng bộ:

  • Có thể bắt đầu từ VPS phù hợp nhu cầu thực tế
  • Dễ mua và quản lý domain/subdomain
  • Triển khai SSL thuận tiện
  • Kết nối thêm email doanh nghiệp khi cần
  • Dễ mở rộng sang website, landing page hoặc hệ thống quản trị sau này

Với người mới, yếu tố hỗ trợ kỹ thuật nhanh và hạ tầng ổn định thường quan trọng không kém giá.

Hướng dẫn cài đặt n8n trên VPS không quá khó nếu bạn đi đúng thứ tự: chọn VPS phù hợp, cài n8n bằng Docker, cấu hình domain, thêm SSL, kiểm tra webhook, thiết lập backup và chuẩn bị sẵn phương án xử lý lỗi phổ biến. Nếu bạn chỉ cần môi trường thử nghiệm, một VPS cơ bản là đủ để bắt đầu. Nhưng nếu xác định dùng n8n lâu dài cho automation doanh nghiệp, bạn nên đầu tư từ đầu vào hạ tầng ổn định, domain chuẩn, SSL đầy đủ và backup định kỳ để tránh gián đoạn về sau.

Nếu bạn đang cần một giải pháp phù hợp để triển khai n8n, Dhost hiện có các nhóm dịch vụ như Cloud VPS NVMe, Cloud VPS N8N, hosting, SSL, tên miềnemail, rất phù hợp cho bài toán tự host, mở rộng hệ thống và vận hành lâu dài.

Bài viết liên quan

VPS Windows là gì
VPS Windows là gì? Ưu điểm, hạn chế và cách chọn đúng
VPS Windows là gì? Đây là câu hỏi được nhiều cá nhân, doanh nghiệp, lập trình viên và chủ website quan tâm khi cần một...
email công ty bị vào spam
Nguyên nhân email công ty bị vào spam và cách khắc phục
Email công ty bị vào spam là tình trạng rất nhiều doanh nghiệp gặp phải khi sử dụng email theo tên miền riêng để gửi...
VPS cho website bán hàng
VPS cho website bán hàng: Giải pháp giúp web nhanh, đơn về ổn định
VPS cho website bán hàng là lựa chọn phù hợp khi website của bạn bắt đầu có nhiều sản phẩm, nhiều lượt truy cập hoặc...
email hosting là gì
Email hosting là gì? Giải pháp email chuyên nghiệp cho công ty
Email hosting là gì? Đây là câu hỏi được nhiều doanh nghiệp, chủ shop online, startup và cá nhân kinh doanh quan tâm khi muốn...
VPS cho WordPress
VPS cho WordPress: Giải pháp tăng tốc và bảo mật website
VPS cho WordPress là giải pháp được nhiều cá nhân, doanh nghiệp, chủ shop online và đơn vị làm SEO quan tâm khi website bắt...
tạo email công ty
Tạo Email công ty: Giải pháp giao tiếp chuyên nghiệp và bảo mật hơn
Tạo email công ty là bước quan trọng nếu doanh nghiệp muốn xây dựng hình ảnh chuyên nghiệp khi giao tiếp với khách hàng, đối...
Gọi điện cho tôi Gửi tin nhắn Chat Zalo