AI Automation

Thuê VPS N8N giá rẻ cài sẵn - hướng dẫn chi tiết

N8N là gì và vì sao bạn nên tự host trên VPS?

N8N (n8n.io) là công cụ tự động hóa workflow mã nguồn mở, cho phép bạn kết nối hàng trăm ứng dụng và dịch vụ (Slack, Google Sheets, Telegram, GitHub, v.v.) mà không cần viết code phức tạp. Nếu bạn là developer muốn chạy automation cá nhân hoặc cho khách hàng, tự host n8n trên VPS là lựa chọn tối ưu: bạn kiểm soát dữ liệu, không bị giới hạn số lần chạy, và tùy chỉnh node tùy ý.

Thay vì dùng n8n cloud (tốn phí theo tháng), bạn có thể thuê VPS N8N giá rẻ cài sẵn ngay trên hạ tầng Việt Nam, chi phí chỉ từ vài trăm nghìn mỗi tháng. Bài viết này hướng dẫn bạn từ chọn cấu hình VPS đến triển khai n8n production-ready với Docker, Nginx reverse proxy, SSL Let's Encrypt và bảo mật cơ bản.

Yêu cầu trước khi bắt đầu

  • Một VPS chạy Ubuntu 24.04 LTS (khuyến nghị: 2GB RAM trở lên, 2 vCPU, NVMe 25GB). Bạn có thể thuê VPS với cấu hình tương tự từ thueVPS.
  • User sudo (non-root) đã được tạo và cấu hình SSH key.
  • Tên miền trỏ về IP VPS (ví dụ: n8n.example.com) để truy cập qua HTTPS.
  • Docker và Docker Compose (phiên bản mới nhất) đã cài sẵn, phần dưới có hướng dẫn.

Bước 1 - Cài đặt Docker và Docker Compose trên Ubuntu 24.04

N8N chạy ổn định nhất trong container Docker. Cài đặt Docker engine từ kho chính thức của Docker:

sudo apt update && sudo apt upgrade -y
sudo apt install ca-certificates curl
sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc
echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu $(. /etc/os-release && echo "$VERSION_CODENAME") stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt update
sudo apt install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin -y

Kiểm tra Docker đã chạy: sudo systemctl status docker → "active (running)". Thêm user hiện tại vào nhóm docker để không cần sudo mỗi lần: sudo usermod -aG docker $USER. Đăng xuất và đăng nhập lại hoặc chạy newgrp docker.

Kiểm tra Docker Compose v2: docker compose version → "Docker Compose version v2.xx".

Bước 2 - Triển khai n8n với Docker Compose

Tạo thư mục làm việc và file docker-compose.yml:

mkdir ~/n8n && cd ~/n8n
nano docker-compose.yml

Nội dung file cơ bản cho n8n production (dùng SQLite database mặc định, có thể nâng cấp lên PostgreSQL sau):

version: '3.8'
services:
  n8n:
    image: n8nio/n8n:latest
    container_name: n8n
    restart: unless-stopped
    ports:
      - "5678:5678"
    environment:
      - N8N_HOST=n8n.example.com
      - N8N_PORT=5678
      - N8N_PROTOCOL=https
      - WEBHOOK_URL=https://n8n.example.com
      - N8N_EDITOR_BASE_URL=https://n8n.example.com
      - GENERIC_TIMEZONE=Asia/Ho_Chi_Minh
    volumes:
      - ./data:/home/node/.n8n
    security_opt:
      - no-new-privileges:true

Giải thích: N8N_HOSTWEBHOOK_URL phải trùng domain bạn sẽ dùng. Volume mount thư mục ./data để giữ dữ liệu workflow khi container restart. Chạy container: docker compose up -d.

Kiểm tra: docker compose logs -f nên thấy "n8n ready on port 5678". Truy cập thử http://<IP-VPS>:5678 để xem giao diện đăng ký.

Bước 3 - Cấu hình Nginx reverse proxy + SSL Let's Encrypt

Để truy cập n8n qua HTTPS với domain, cài Nginx và Certbot:

sudo apt install nginx certbot python3-certbot-nginx -y

Tạo file cấu hình Nginx cho n8n:

sudo nano /etc/nginx/sites-available/n8n

Nội dung:

server {
    listen 80;
    server_name n8n.example.com;
    location / {
        proxy_pass http://127.0.0.1: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;
    }
}

Kích hoạt site: sudo ln -s /etc/nginx/sites-available/n8n /etc/nginx/sites-enabled/. Kiểm tra cú pháp: sudo nginx -t. Nếu OK, reload Nginx: sudo systemctl reload nginx.

Cấp SSL tự động:

sudo certbot --nginx -d n8n.example.com --non-interactive --agree-tos -m [email protected]

Certbot tự động sửa file Nginx để redirect HTTP lên HTTPS. Truy cập https://n8n.example.com, bạn sẽ thấy giao diện n8n với khóa SSL xanh.

Bước 4 - Bảo mật cơ bản cho n8n

Ngoài ra, cấu hình tường lửa UFW chỉ cho phép cổng 80,443 và 22:

sudo ufw allow OpenSSH
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
sudo ufw enable

Kiểm tra: sudo ufw status verbose.

Cảnh báo: nếu bạn thuê VPS N8N giá rẻ cài sẵn từ thueVPS, các VPS này đã được cấu hình firewall và SSH key mặc định. Bạn chỉ cần cài Docker và chạy n8n.

Xử lý lỗi thường gặp

Lỗi port 5678 bị chiếm: Kiểm tra sudo ss -tlnp | grep 5678. Nếu có tiến trình khác, đổi port trong docker-compose.yml (VD: "15678:5678") và cập nhật Nginx proxy_pass.

Lỗi "Connection refused" khi truy cập qua HTTPS: Kiểm tra Nginx log: sudo tail -30 /var/log/nginx/error.log. Thường do proxy_pass sai (phải là http://127.0.0.1:5678, không phải localhost).

n8n container restart liên tục: Xem log: docker compose logs n8n. Nguyên nhân thường do quyền volume: sudo chown -R 1000:1000 ./data (uid của n8n trong container là 1000).

Câu hỏi thường gặp

Nên chọn cấu hình VPS thế nào cho n8n?

n8n cơ bản chạy tốt trên VPS 1GB RAM, nhưng nếu bạn có nhiều workflow phức tạp hoặc gọi API đồng thời, nên dùng 2GB RAM trở lên. Nếu bạn thuê VPS tại thueVPS, gói VPS 2GB RAM NVMe là điểm khởi đầu lý tưởng.

Có thể chạy n8n với PostgreSQL thay vì SQLite không?

Có. Bạn cần thêm service PostgreSQL vào docker-compose.yml, set biến môi trường DB_TYPE=postgresdb và các biến kết nối tương ứng. Hướng dẫn chi tiết có trong tài liệu chính thức của n8n.

Tôi muốn dùng n8n để gửi email marketing tự động, có nên không?

n8n hỗ trợ node SMTP nên bạn có thể gửi email. Tuy nhiên, nếu khối lượng lớn, bạn cần VPS SMTP chuyên dụng với IP sạch để tránh spam. n8n phù hợp cho automation nội bộ hoặc gửi email số lượng nhỏ.

Làm sao để nâng cấp n8n lên phiên bản mới?

Chạy docker compose pull && docker compose up -d trong thư mục ~/n8n. Dữ liệu workflow vẫn giữ nguyên trong volume ./data.

Có thể tích hợp n8n với Telegram Bot không?

n8n có node Telegram trigger và action sẵn. Bạn chỉ cần tạo bot qua BotFather, copy token và cấu hình webhook URL trỏ về VPS (https://n8n.example.com/webhook-telegram).

Bài viết liên quan

Lưu ý: Bài viết mang tính tham khảo, tổng hợp kiến thức chung. Mỗi hệ thống, hạ tầng và nhu cầu có đặc thù riêng, nên kiểm thử trong môi trường an toàn và tham vấn kỹ sư trước khi triển khai thực tế.