Hướng Dẫn Cài Đặt N8N Trên VPS Ubuntu Bằng Docker-Compose & Traefik

Cai dat N8N 1

Cài đặt N8N trên Ubuntu

N8N là công cụ tự động hóa quy trình mã nguồn mở mạnh mẽ, cho phép kết nối và tích hợp nhiều dịch vụ, ứng dụng khác nhau. Việc cài đặt n8n trên máy chủ Ubuntu không chỉ giúp bạn có toàn quyền kiểm soát hệ thống mà còn mang lại sự linh hoạt trong việc tùy chỉnh và bảo mật dữ liệu. Bài viết dưới đây sẽ hướng dẫn chi tiết từng bước cài đặt n8n trên Ubuntu, sử dụng Docker, Docker-Compose và Traefik để đảm bảo hệ thống luôn an toàn với giao thức HTTPS.

Mục Lục

  1. Giới thiệu về n8n và lợi ích khi tự host
  2. Yêu cầu hệ thống và chuẩn bị trước khi cài đặt
  3. Bước 1: Cài Đặt Docker trên Ubuntu
  4. Bước 2: Thiết Lập Quyền Cho Người Dùng Không Root
  5. Bước 3: Cài Đặt Docker-Compose Plugin
  6. Bước 4: Cấu Hình DNS cho n8n
  7. Bước 5: Tạo File Docker Compose cho n8n & Traefik
  8. Bước 6: Tạo File .env và chỉnh sửa các biến môi trường
  9. Bước 7: Tạo Docker Volumes để lưu trữ dữ liệu
  10. Bước 8: Khởi Chạy Docker Compose và kiểm tra hoạt động
  11. Kết luận

1.Giới Thiệu về n8n và Lợi Ích Khi Tự Host (cài trên máy chủ riêng)

n8n là một công cụ tự động hóa quy trình làm việc (workflow automation) mã nguồn mở được thiết kế để giúp các nhà phát triển và doanh nghiệp tích hợp các dịch vụ khác nhau một cách liền mạch. Một số lợi ích khi tự host n8n bao gồm:

  • Kiểm soát hoàn toàn dữ liệu: Dữ liệu của bạn được lưu trữ trên máy chủ riêng, không phụ thuộc vào bên thứ ba.
  • Tùy chỉnh linh hoạt: Bạn có thể điều chỉnh cấu hình theo nhu cầu riêng của doanh nghiệp và tích hợp với hệ thống nội bộ.
  • Bảo mật cao: Với việc tự quản lý hệ thống, bạn có thể đảm bảo rằng các biện pháp bảo mật được thực hiện chặt chẽ, nhất là khi sử dụng HTTPS qua Traefik.
  • Tiết kiệm chi phí: Nếu đã có sẵn hạ tầng máy chủ mạnh, tự host có thể là giải pháp kinh tế hơn so với việc thuê dịch vụ đám mây.

Ngoài ra, n8n có hai phiên bản phát hành:

  • Latest: 1.81.4 – Phiên bản ổn định cho môi trường sản xuất.
  • Next: 1.82.11 – Phiên bản beta, có thể chưa ổn định hoàn toàn.

Việc lựa chọn phiên bản phù hợp tùy thuộc vào yêu cầu và mức độ chấp nhận rủi ro của bạn.

2. Yêu Cầu Hệ Thống Và Chuẩn Bị Trước Khi Cài Đặt

Trước khi tiến hành cài đặt, bạn cần đảm bảo rằng máy chủ Ubuntu của bạn đáp ứng các yêu cầu sau:

  • Hệ điều hành: Ubuntu (phiên bản LTS được khuyến nghị như 20.04 hoặc 22.04).
  • Docker: Công cụ quản lý container giúp cài đặt, triển khai và chạy ứng dụng dễ dàng.
  • Docker-Compose: Plugin giúp quản lý nhiều container cùng lúc theo một file cấu hình.
  • Traefik: Reverse proxy hỗ trợ định tuyến và quản lý chứng chỉ SSL, đảm bảo giao tiếp HTTPS an toàn.
  • DNS: Bạn cần cấu hình bản ghi A trỏ tới IP của máy chủ để có thể truy cập n8n qua tên miền.

Đảm bảo máy chủ đã cập nhật đầy đủ các gói cài đặt và có quyền sudo.

HOSTVN cung cấp các VPS,máy chủ đáp ứng được các nhu cầu trên. Tham khảo tại ĐÂY

3. Bước 1: Cài Đặt Docker Trên Ubuntu

Đầu tiên, bạn cần gỡ bỏ các phiên bản Docker cũ (nếu có) và cài đặt phiên bản mới nhất:

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

Lệnh trên sẽ cài đặt Docker và các thành phần cần thiết để chạy container.

4. Bước 2: Thiết Lập Quyền Cho Người Dùng Không Root

Để tiện lợi cho việc sử dụng Docker mà không cần quyền root, bạn có thể thêm người dùng hiện tại vào nhóm Docker:

sudo usermod -aG docker ${USER} su - ${USER}

Lệnh này cho phép người dùng hiện hành có thể chạy Docker mà không cần sudo mỗi khi sử dụng.

5. Bước 3: Cài Đặt Docker-Compose Plugin

Trên Ubuntu, bạn cài đặt Docker-Compose Plugin bằng lệnh sau:

sudo apt-get install docker-compose-plugin

Nếu máy chủ đã có Docker và Docker-Compose, bạn có thể bỏ qua bước này và chuyển sang bước tiếp theo.

6. Bước 4: Cấu Hình DNS Cho n8n

Để truy cập n8n qua tên miền dễ dàng, bạn cần cấu hình bản ghi DNS cho máy chủ. Thực hiện như sau:

  • Loại bản ghi: A
  • Tên: n8n (hoặc tên bạn mong muốn)
  • Địa chỉ IP: IP của máy chủ của bạn

Việc này đảm bảo khi truy cập https://n8n.example.com (nếu DOMAIN_NAME là example.com và SUBDOMAIN là n8n), trình duyệt sẽ định tuyến về máy chủ cài đặt n8n.

7. Bước 5: Tạo File Docker Compose Cho n8n & Traefik

Tạo file docker-compose.yml trong một thư mục mới trên máy chủ và dán nội dung dưới đây:

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
      - traefik.http.middlewares.n8n.headers.SSLRedirect=true
      - traefik.http.middlewares.n8n.headers.STSSeconds=315360000
      - traefik.http.middlewares.n8n.headers.browserXSSFilter=true
      - traefik.http.middlewares.n8n.headers.contentTypeNosniff=true
      - traefik.http.middlewares.n8n.headers.forceSTSHeader=true
      - traefik.http.middlewares.n8n.headers.SSLHost=${DOMAIN_NAME}
      - traefik.http.middlewares.n8n.headers.STSIncludeSubdomains=true
      - traefik.http.middlewares.n8n.headers.STSPreload=true
      - traefik.http.routers.n8n.middlewares=n8n@docker
    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

volumes:
  traefik_data:
    external: true
  n8n_data:
    external: true

Lưu ý:

Nếu bạn định thực hiện việc đọc/ghi file cục bộ với n8n (ví dụ, sử dụng node Read/Write Files from Disk), bạn cần cấu hình một thư mục dữ liệu cho những file đó tại đây. Nếu bạn đang chạy n8n với quyền root, hãy thêm dòng sau vào phần volumes của file docker-compose.yml :

- /local-files:/files

Giải thích một số dòng cấu hình quan trọng:

  • Traefik: Đóng vai trò reverse proxy, xử lý chuyển hướng HTTP → HTTPS và quản lý chứng chỉ SSL tự động thông qua Let’s Encrypt.
  • n8n: Cấu hình để chạy n8n với các biến môi trường được đặt trong file .env, đồng thời kết nối thông qua Traefik để đảm bảo bảo mật SSL.

8. Bước 6: Tạo File .env và Chỉnh Sửa Các Biến Môi Trường

Trong cùng thư mục với docker-compose.yml, tạo file .env với nội dung và chỉnh sửa các biến phù hợp:

# The top level domain to serve from
DOMAIN_NAME=example.com

# The subdomain to serve from
SUBDOMAIN=n8n

# DOMAIN_NAME and SUBDOMAIN combined decide where n8n will be reachable from
# above example would result in: https://n8n.example.com

# Optional timezone to set which gets used by Cron-Node by default
# If not set New York time will be used
GENERIC_TIMEZONE=Europe/Berlin

# The email address to use for the SSL certificate creation
SSL_EMAIL=user@example.com

Lưu ý:

  • Thay đổi example.com thành tên miền thật của bạn.
  • Sửa SSL_EMAIL thành email của bạn để nhận thông báo và quản lý chứng chỉ SSL.
  • Cập nhật GENERIC_TIMEZONE nếu bạn muốn sử dụng múi giờ khác cho Cron-Node.

9. Bước 7: Tạo Docker Volumes Để Lưu Trữ Dữ Liệu

Tạo volume để lưu trữ dữ liệu cho n8n và Traefik. Điều này đảm bảo dữ liệu (như database của SQLite và khóa mã hóa) được bảo toàn:

sudo docker volume create n8n_data
sudo docker volume create traefik_data

Các volume này sẽ lưu trữ dữ liệu như database của SQLite và các khóa mã hóa của Traefik.


10. Bước 8: Khởi Chạy Docker Compose và Kiểm Tra Hoạt Động

Sau khi đã hoàn tất các bước cấu hình, khởi chạy hệ thống bằng Docker Compose:

sudo docker compose up -d

Lệnh trên sẽ khởi động các container theo định nghĩa trong file docker-compose.yml ở chế độ nền (detached mode).

Để kiểm tra trạng thái của các container, sử dụng lệnh:

sudo docker compose ps

Nếu bạn cần xem log để xử lý sự cố, sử dụng lệnh:

sudo docker logs <container_id>

Thay <container_id> bằng ID của container n8n hoặc Traefik mà bạn muốn kiểm tra.

Sau khi khởi chạy, mở trình duyệt và truy cập https://${SUBDOMAIN}.${DOMAIN_NAME}. Lưu ý rằng n8n chỉ khả dụng qua giao thức HTTPS do Traefik quản lý chứng chỉ SSL.

N8N5

Giao diện sau khi truy cập vào tên miền

11. Kết Luận

Bài viết trên đã cung cấp hướng dẫn chi tiết về cách cài đặt n8n trên máy chủ Ubuntu bằng Docker-Compose kết hợp với Traefik để đảm bảo bảo mật và định tuyến SSL. Nhờ vào Docker và Traefik, việc quản lý container trở nên dễ dàng hơn rất nhiều, đồng thời tự động gia hạn chứng chỉ SSL qua Let’s Encrypt giúp giảm thiểu rủi ro bảo mật.

Việc tự host n8n mang lại nhiều lợi ích như kiểm soát dữ liệu, tùy chỉnh cấu hình linh hoạt và tiết kiệm chi phí nếu đã có sẵn hạ tầng mạnh. Tuy nhiên, việc này đòi hỏi bạn cần có kiến thức chuyên sâu về quản trị hệ thống.

Ngoài ra, việc theo dõi diễn đàn của n8n để cập nhật các bản phát hành mới là rất cần thiết. Hiện tại, phiên bản ổn định dành cho môi trường sản xuất là 1.81.4 và phiên bản beta (Next) là 1.82.11. Bạn nên cân nhắc kỹ lưỡng giữa tính ổn định và tính năng mới khi quyết định nâng cấp.

Một Số Lưu Ý Quan Trọng:

  • Bảo mật:
    Hãy đảm bảo rằng máy chủ của bạn được bảo vệ bằng firewall và các biện pháp bảo mật khác. Traefik sẽ giúp chuyển hướng và mã hóa dữ liệu, nhưng việc bảo vệ máy chủ luôn là trách nhiệm của bạn.

  • Sao lưu dữ liệu:
    Dù đã sử dụng Docker volumes để lưu trữ dữ liệu, bạn cũng nên có chính sách sao lưu định kỳ để tránh mất mát dữ liệu quan trọng.

  • Cập nhật hệ thống:
    Luôn cập nhật phiên bản mới của n8n và các thành phần hệ thống khác để vá các lỗi bảo mật và cải thiện hiệu suất. Đừng quên theo dõi diễn đàn của n8n và tài liệu Docker, Traefik để cập nhật thông tin mới nhất.

  • Tài nguyên hệ thống:
    Kiểm tra và đảm bảo máy chủ của bạn có đủ tài nguyên (CPU, RAM, lưu trữ) để chạy các container một cách mượt mà, đặc biệt khi n8n tích hợp với nhiều dịch vụ và xử lý các workflow phức tạp.

Tổng Kết

Việc cài đặt n8n trên máy chủ Ubuntu thông qua Docker-Compose kết hợp với Traefik là một giải pháp hiệu quả cho những ai mong muốn có một hệ thống tự động hóa quy trình mạnh mẽ và an toàn. Bằng cách làm theo hướng dẫn chi tiết trong bài viết, bạn không chỉ nắm được quy trình cài đặt mà còn hiểu rõ cách cấu hình DNS, quản lý chứng chỉ SSL và duy trì hoạt động của hệ thống thông qua Docker volumes và Docker-Compose.

Nếu bạn gặp bất kỳ khó khăn hay thắc mắc nào trong quá trình cài đặt, hãy tham khảo thêm tài liệu của Docker, Traefik và n8n hoặc tham gia các cộng đồng trực tuyến để trao đổi kinh nghiệm.

HOSTVN tự hào là nhà cung cấp dịch vụ Cloud Computing lâu đời và uy tín hàng đầu tại Việt Nam với hệ thống thiết bị phần cứng chuyên dụng, chính hãng được đầu tư bài bản, hứa hẹn kiến tạo cho doanh nghiệp bạn một hạ tầng mạnh mẽ, ổn định và an toàn, làm nền tảng vững chắc để phát triển website trong thời đại 5G đầy tiềm năng.

Bạn cũng có thể tham khảo thêm các dịch vụ Web HostingCloud VPSServerEmail Business do chúng tôi cung cấp hoặc xem các bài viết chia sẻ khác của chúng tôi tại đây

Liên hệ với chúng tôi qua:

  • Website: https://hostvn.net
  • Điện thoại: 024 4455 3333 (Hà Nội) – 028 4455 3333 (HCM) – Nhánh 1
  • Tổng đài miễn cước: 1800 888 939
  • Email: kinhdoanh@hostvn.net

Ebook Wordpress

Đăng ký nhận Ebooks toàn tập hướng dẫn sử dụng WordPress cơ bản


Góc chia sẻWebsite

Tác động của 5G đến thiết kế web và trải nghiệm người dùng

2025-2-28 9:19:24

Góc chia sẻSEO / SEM

Backlink "A-Z": 4 cách phân loại cho SEO Website

2025-3-12 11:48:10

0 trả lời ATác giả MQuản lý
    Chưa có phản hồi nào
Trung tâm cá nhân
Giỏ hàng
Phiếu mua hàng
Đăng nhập ngay
Tin nhắn Danh sách tin nhắn
Tìm kiếm
Tối