Cài Đặt N8N Trên Ubuntu VPS 2025 – Hướng Dẫn Chi Tiết Từ A-Z

Giới thiệu

N8N là một công cụ tự động hóa quy trình làm việc mạnh mẽ, cho phép người dùng kết nối và tự động hóa các ứng dụng và dịch vụ khác nhau mà không cần lập trình phức tạp. Việc cài đặt N8N trên một máy chủ VPS (Virtual Private Server) với hệ điều hành Ubuntu không chỉ mang lại sự linh hoạt và tiết kiệm chi phí mà còn giúp bạn dễ dàng quản lý và mở rộng các quy trình làm việc của mình.

Trong bài viết này, chúng ta sẽ cùng nhau khám phá cách cài đặt N8N trên Ubuntu VPS 2025 một cách chi tiết nhất, từ những yêu cầu kỹ thuật ban đầu cho đến các bước cấu hình cần thiết. Bạn có thể tự hỏi: “Tôi cần chuẩn bị gì để bắt đầu?” hay “Làm thế nào để bảo mật máy chủ của mình?”. Hãy cùng tìm hiểu!

DALL·E 2025 02 03 13.40.44 A minimalistic digital illustration of a server setup with the Ubuntu logo and n8n workflow icons representing self hosting. The background is a clea 1

Yêu cầu kiến thức trước khi tự cài đặt N8N

Trước khi tiến hành cài đặt N8N, bạn cần có một số kiến thức kỹ thuật cơ bản như:

  • Thiết lập và cấu hình máy chủ: Bạn cần biết cách cấu hình VPS cũng như các container.
  • Quản lý tài nguyên ứng dụng: Nắm rõ cách tối ưu hóa hiệu suất và mở rộng quy mô ứng dụng.
  • Bảo mật máy chủ: Biết cách bảo vệ máy chủ và các ứng dụng bên trong.
  • Cấu hình N8N: Hiểu rõ cách cài đặt và cấu hình N8N để hoạt động hiệu quả.

Yêu cầu kỹ thuật cho VPS

Khi lựa chọn VPS để chạy N8N, bạn không cần quá chú trọng vào CPU, nhưng RAM là yếu tố quan trọng. Cấu hình khuyến nghị như sau:

  • RAM tối thiểu: 4GB (để đảm bảo N8N hoạt động ổn định).
  • Hệ điều hành: Ubuntu 22.04 (phiên bản được khuyến nghị để triển khai N8N).

Sau khi đã có VPS và tên miền, bạn có thể tiến hành cài đặt N8N theo hướng dẫn chi tiết dưới đây.

1. Cài đặt Docker

Docker là công cụ cần thiết để chạy N8N. Dưới đây là hướng dẫn cài đặt Docker trên Ubuntu:

sudo apt-get remove docker docker-engine docker.io containerd runc
sudo apt-get update
sudo apt-get install ca-certificates curl gnupg lsb-release
sudo mkdir -p /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io

2. Cài đặt Docker-Compose

Tiếp theo, bạn cần cài đặt Docker-Compose, công cụ giúp quản lý các container Docker dễ dàng hơn. Thực hiện lệnh sau:

sudo apt-get install docker-compose-plugin

3. Cấu hình DNS

Thêm bản ghi A record để định tuyến tên miền phụ (subdomain) đến địa chỉ IP tương ứng:

  • Type: A
  • Name: n8n (hoặc tên miền phụ bạn muốn)
  • IP address: <IP_SERVER_CỦA_BẠN>

4. Tạo tệp Docker Compose

Tạo một tệp docker-compose.yml và dán nội dung sau vào tệp:

version: "3.7"
services:
  traefik:
    image: "traefik"
    restart: always
    command:
      - "--api=true"
      - "--api.insecure=true"
      - "--providers.docker=true"
      - "--providers.docker.exposedbydefault=false"
      - "--entrypoints.web.address=:80"
      - "--entrypoints.web.http.redirections.entryPoint.to=websecure"
      - "--entrypoints.web.http.redirections.entrypoint.scheme=https"
      - "--entrypoints.websecure.address=:443"
      - "--certificatesresolvers.mytlschallenge.acme.tlschallenge=true"
      - "--certificatesresolvers.mytlschallenge.acme.email=${SSL_EMAIL}"
      - "--certificatesresolvers.mytlschallenge.acme.storage=/letsencrypt/acme.json"
    ports:
      - "80:80"
      - "443:443"
    volumes:
      - traefik_data:/letsencrypt
      - /var/run/docker.sock:/var/run/docker.sock:ro
  n8n:
    image: docker.n8n.io/n8nio/n8n
    restart: always
    ports:
      - "127.0.0.1:5678:5678"
    labels:
      - "traefik.enable=true"
      - "traefik.http.routers.n8n.rule=Host(`${SUBDOMAIN}.${DOMAIN_NAME}`)"
      - "traefik.http.routers.n8n.tls=true"
      - "traefik.http.routers.n8n.entrypoints=web,websecure"
      - "traefik.http.routers.n8n.tls.certresolver=mytlschallenge"
    environment:
      - N8N_HOST=${SUBDOMAIN}.${DOMAIN_NAME}
      - N8N_PORT=5678
      - N8N_PROTOCOL=https
      - NODE_ENV=production
      - WEBHOOK_URL=https://${SUBDOMAIN}.${DOMAIN_NAME}/
      - GENERIC_TIMEZONE=${GENERIC_TIMEZONE}
    volumes:
      - n8n_data:/home/node/.n8n/local-files:/files
volumes:
  traefik_data:
    external: true
  n8n_data:
    external: true

5. Tạo tệp .env

Tạo một tệp .env và chỉnh sửa nội dung theo yêu cầu của bạn:

DOMAIN_NAME=az9s.com
SUBDOMAIN=n8n
GENERIC_TIMEZONE=Asia/Ho_Chi_Minh
N8N_DEFAULT_BINARY_DATA_MODE=filesystem
N8N_ENFORCE_SETTINGS_FILE_PERMISSIONS=true
EXECUTIONS_DATA_PRUNE=true
EXECUTIONS_DATA_MAX_AGE=168
EXECUTIONS_DATA_PRUNE_MAX_COUNT=50000
SSL_EMAIL=bitsness.ad@gmail.com

6. Tạo thư mục dữ liệu

Tạo Docker volume để lưu trữ dữ liệu của N8N:

sudo docker volume create n8n_data
sudo docker volume create traefik_data

7. Khởi động Docker Compose

Bây giờ bạn có thể khởi động N8N bằng lệnh sau:

sudo docker compose up -d

Để dừng container, chạy lệnh sau:

sudo docker compose stop

Để cập nhật container, dùng lệnh sau:

sudo docker compose pull

8. Hoàn tất

Bây giờ, N8N có thể được truy cập thông qua tên miền phụ và tên miền chính đã cấu hình. Ví dụ, bạn có thể truy cập tại: https://n8n.az9s.com.

Lưu ý rằng N8N chỉ có thể được truy cập qua HTTPS, không hỗ trợ HTTP.

Để lại một bình luận

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *