← Về trang chủ

Cài n8n trên VPS: Hướng dẫn từng bước cho doanh nghiệp

Bạn đã từng mất hàng giờ — m chủ nền tảng tự động hóa workflow mà không phụ thuộc vào bên thứ ba. Với cách triển khai bằng Docker Compose, bạn có thể đưa n8n lên server riêng chỉ trong vài phút, kiểm soát toàn bộ dữ liệu và tùy chỉnh theo nhu cầu vận hành

Tóm tắt nhanh: Hướng dẫn chi tiết cài n8n trên VPS bằng Docker Compose: chuẩn bị server, cài Docker, tạo docker-compose.yml, cấu hình PostgreSQL, reverse proxy và chạy workflow đầu tiên.

Cài n8n trên VPS: Hướng dẫn từng bước cho doanh nghiệp

Tại sao nên cài n8n trên VPS thay vì dùng đám mây?

Dùng n8n Cloud tiện lợi nhưng có giới hạn về số lần chạy workflow, dung lượng dữ liệu và quyền truy cập database. Khi bạn tự cài n8n trên VPS, bạn toàn quyền:

  • Không giới hạn execution — chạy workflow bao nhiêu tùy thích, không tính phí theo lượt
  • Dữ liệu trên server riêng — không qua bên thứ ba, đáp ứng yêu cầu bảo mật doanh nghiệp
  • Tích hợp PostgreSQL — dễ backup, phục hồi và nâng cấp sau này
  • Cài node tùy chỉnh — mở rộng bằng community nodes và plugin riêng

Nếu chưa rõ về nền tảng, đọc bài n8n là gì? để hiểu tổng quan trước khi triển khai.

Yêu cầu VPS để cài n8n

Trước khi bắt đầu, kiểm tra server của bạn đáp ứng:

  • Hệ điều hành: Ubuntu 22.04 hoặc 24.04 LTS (khuyến nghị)
  • RAM: Tối thiểu 2 GB, khuyến nghị 4 GB nếu chạy nhiều workflow có AI agent
  • CPU: 2 nhân trở lên
  • Dung lượng: Tối thiểu 20 GB SSD
  • Docker: Phiên bản mới nhất (24.x trở lên)

Nếu chưa có VPS, bạn có thể thuê từ DigitalOcean, Vultr hoặc các nhà cung cấp trong nước như VNG Cloud, Nhân Hòa.

Cài Docker và Docker Compose

Đa số VPS Ubuntu mới chưa có Docker sẵn. Chạy các lệnh sau qua SSH:

# Cập nhật package
sudo apt update && sudo apt upgrade -y

# Cài Docker
curl -fsSL https://get.docker.com -o get-docker.sh
sudo sh get-docker.sh

# Thêm user vào group docker
sudo usermod -aG docker root

# Kiểm tra
docker --version

Docker Compose phiên bản mới tích hợp sẵn trong Docker Engine. Kiểm tra bằng docker compose version.

Tạo docker-compose.yml cho n8n

Tạo thư mục làm việc và file cấu hình:

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

Nội dung file với PostgreSQL làm database:

version: '3.8'
services:
  postgres:
    image: postgres:16-alpine
    restart: always
    environment:
      POSTGRES_USER: n8n
      POSTGRES_PASSWORD: your_strong_password
      POSTGRES_DB: n8n
    volumes:
      - postgres_data:/var/lib/postgresql/data
    healthcheck:
      test: ['CMD', 'pg_isready', '-U', 'n8n']
      interval: 10s
      timeout: 5s
      retries: 5

  n8n:
    image: n8nio/n8n:latest
    restart: always
    ports:
      - '127.0.0.1:5678:5678'
    environment:
      N8N_HOST: n8n.example.com
      N8N_PROTOCOL: https
      N8N_PORT: 5678
      DB_TYPE: postgresdb
      DB_POSTGRESDB_HOST: postgres
      DB_POSTGRESDB_PORT: 5432
      DB_POSTGRESDB_USER: n8n
      DB_POSTGRESDB_PASSWORD: your_strong_password
      DB_POSTGRESDB_DATABASE: n8n
      GENERIC_TIMEZONE: Asia/Ho_Chi_Minh
      TZ: Asia/Ho_Chi_Minh
      N8N_ENFORCE_SETTINGS_FILE_PERMISSIONS: true
    volumes:
      - n8n_data:/home/node/.n8n
    depends_on:
      postgres:
        condition: service_healthy

volumes:
  postgres_data:
  n8n_data:

Thay your_strong_password bằng mật khẩu mạnh và n8n.example.com bằng domain thật của bạn. Tham khảo thêm bài n8n Self-Host để biết các tùy chọn cấu hình nâng cao.

Chạy n8n và kiểm tra

docker compose up -d

Lệnh này tải image, khởi tạo database và chạy n8n dưới nền. Xem log để biết trạng thái:

docker compose logs -f

Nếu thấy dòng “Server is ready”, n8n đã chạy thành công trên http://localhost:5678.

Cấu hình Nginx reverse proxy với SSL

Để truy cập n8n qua domain, cần reverse proxy và chứng chỉ SSL. Cài Nginx và Certbot:

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

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

server {
    listen 80;
    server_name n8n.example.com;
    return 301 https://;
}

server {
    listen 443 ssl http2;
    server_name n8n.example.com;

    ssl_certificate /etc/letsencrypt/live/n8n.example.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/n8n.example.com/privkey.pem;

    client_max_body_size 50m;

    location / {
        proxy_pass http://127.0.0.1:5678;
        proxy_http_version 1.1;
        proxy_set_header Upgrade ;
        proxy_set_header Connection 'upgrade';
        proxy_set_header Host ;
        proxy_set_header X-Forwarded-For ;
        proxy_set_header X-Forwarded-Proto ;
    }
}

Cấp SSL bằng Certbot:

sudo certbot --nginx -d n8n.example.com

Sau bước này, bạn đã có thể truy cập n8n qua https://n8n.example.com.

Bảo mật sau khi cài n8n trên VPS

Khi đã chạy online, thực hiện ngay các bước sau:

  • Bật authentication: Thêm N8N_ENCRYPTION_KEY và N8N_AUTH_ENABLED=true vào environment
  • Không mở port 5678 ra internet: Chỉ proxy qua Nginx như cấu hình ở trên
  • Cập nhật thường xuyên: docker compose pull && docker compose up -d
  • Sao lưu định kỳ: Database PostgreSQL và thư mục n8n_data — chủ đề kho tri thức doanh nghiệp với n8n có hướng dẫn quản lý dữ liệu workflow

Chạy workflow đầu tiên

Sau khi cài xong, đăng nhập vào n8n, vào tab Workflows > New, thêm node Schedule Trigger, nối với node Webhook, bật workflow và kiểm tra. Quy trình này chỉ mất 5 phút để thấy n8n hoạt động trên VPS của bạn.

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

Cài n8n trên VPS có cần kiến thức Linux không?

Có, bạn cần biết các thao tác cơ bản trên Ubuntu như SSH, nano, cd. Toàn bộ hướng dẫn trong bài này chỉ yêu cầu gõ lệnh theo từng bước — nếu đã làm quen với VPS Linux, bạn hoàn toàn tự cài được trong 30 phút.

VPS bao nhiêu RAM là đủ cho n8n?

Tối thiểu 2 GB RAM cho n8n chạy ổn định với 5–10 workflow. Nếu bạn chạy workflow có AI agent, xử lý file hoặc nhiều node HTTP request, nên dùng 4 GB. Nếu cần tham số chi tiết hơn, tham khảo bài viết về n8n self-host trên cùng site.

Có thể cài n8n trên VPS không dùng Docker không?

Được, bạn có thể cài Node.js trực tiếp và chạy n8n bằng npm. Tuy nhiên Docker giúp quản lý phiên bản, cách ly môi trường và dễ nâng cấp hơn. Docker Compose là cách triển khai được khuyến nghị chính thức từ n8n.

Cài n8n trên VPS mất bao lâu?

Trung bình 20–30 phút nếu bạn đã có VPS và domain sẵn. Lần đầu lâu hơn do tải Docker image và chờ cấp SSL. Các lần cập nhật sau chỉ mất vài phút.

Cập nhật lần cuối: 14/10/2026 · Biên soạn: Đội ngũ kỹ thuật Wise Tech

0917-32-36-37