Hướng dẫn Cài đặt n8n trên Docker Compose | Tài liệu n8n

Nếu bạn đã cài đặt Docker và Docker-Compose, bạn có thể bắt đầu từ bước 4.

Bạn có thể tìm thấy các cấu hình Docker Compose cho các kiến trúc khác nhau trong kho lưu trữ n8n-hosting.

Điều kiện tiên quyết về kiến thức tự lưu trữ

Việc tự lưu trữ n8n yêu cầu kiến thức kỹ thuật, bao gồm:

  • Thiết lập và cấu hình máy chủ và container
  • Quản lý tài nguyên ứng dụng và khả năng mở rộng
  • Bảo mật máy chủ và ứng dụng
  • Cấu hình n8n

n8n khuyến nghị tự lưu trữ cho người dùng thành thạo. Sai sót có thể dẫn đến mất dữ liệu, các vấn đề về bảo mật và thời gian ngừng hoạt động. Nếu bạn không có kinh nghiệm quản lý máy chủ, n8n khuyên bạn nên dùng n8n Cloud.

Các phiên bản mới nhất và tiếp theo

n8n phát hành một phiên bản phụ mới hầu hết các tuần. Phiên bản latest dành cho việc sử dụng sản xuất. next là bản phát hành gần đây nhất. Bạn nên coi next như một phiên bản beta: nó có thể không ổn định. Để báo cáo sự cố, hãy sử dụng diễn đàn.

latest hiện tại: 1.76.1
next hiện tại: 1.77.0

1. Cài đặt Docker#

Điều này có thể khác nhau tùy thuộc vào bản phân phối Linux được sử dụng. Bạn có thể tìm thấy hướng dẫn chi tiết trong tài liệu Docker. Ví dụ sau đây dành cho 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. Tùy chọn: Quyền truy cập của người dùng không phải root#

Chạy khi đăng nhập với tư cách người dùng cũng được phép chạy docker:

XEM THÊM:  Tái diễn tình trạng giả mạo TikTok nhắn tin tuyển nhân viên để lừa đảo
sudo usermod -aG docker ${USER}
 su - ${USER}
 

3. Cài đặt Docker-Compose#

Điều này có thể khác nhau tùy thuộc vào bản phân phối Linux được sử dụng. Bạn có thể tìm thấy hướng dẫn chi tiết trong tài liệu Docker.

Ví dụ dưới đây dành cho Ubuntu:

sudo apt-get install docker-compose-plugin
 

4. Thiết lập DNS#

Thêm bản ghi A để định tuyến tên miền con cho phù hợp:

Type: A
 Name: n8n (hoặc tên miền con mong muốn)
 Địa chỉ IP: <IP_OF_YOUR_SERVER>
 

5. Tạo tệp Docker Compose#

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

 1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
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
 

Nếu bạn dự định đọc/ghi các tệp cục bộ bằng n8n (ví dụ: bằng cách sử dụng nút Đọc/Ghi tệp từ đĩa, bạn sẽ cần định cấu hình thư mục dữ liệu cho các tệp đó tại đây. Nếu bạn đang chạy n8n với tư cách người dùng root, hãy thêm phần này bên dưới volumes cho dịch vụ n8n:

XEM THÊM:  Hướng dẫn Cài đặt n8n trên Azure | Tài liệu n8n

Nếu bạn đang chạy n8n với tư cách người dùng không phải root, hãy thêm phần này bên dưới volumes cho dịch vụ n8n:

- /home/<YOUR USERNAME>/n8n-local-files:/files
 

Giờ đây, bạn sẽ có thể ghi các tệp vào thư mục /files trong n8n và chúng sẽ xuất hiện trên máy chủ của bạn lần lượt trong /local-files hoặc /home/<YOUR USERNAME>/n8n-local-files.

6. Tạo tệp .env#

Tạo tệp .env và thay đổi cho phù hợp.

 1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
# Tên miền cấp cao nhất để phục vụ từ đó
 DOMAIN_NAME=example.com
 
 # Tên miền con để phục vụ từ đó
 SUBDOMAIN=n8n
 
 # DOMAIN_NAME và SUBDOMAIN kết hợp quyết định vị trí có thể truy cập n8n
 # ví dụ trên sẽ cho kết quả: https://n8n.example.com
 
 # Múi giờ tùy chọn để đặt múi giờ nào được Cron-Node sử dụng theo mặc định
 # Nếu không đặt, giờ New York sẽ được sử dụng
 GENERIC_TIMEZONE=Europe/Berlin
 
 # Địa chỉ email để sử dụng cho việc tạo chứng chỉ SSL
 [email protected]
 

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

Tạo ổ đĩa Docker được xác định là n8n_data. n8n sẽ lưu tệp cơ sở dữ liệu từ SQLite và khóa mã hóa trong ổ đĩa này.

sudo docker volume create n8n_data
 

Tạo ổ đĩa cho dữ liệu Traefik, được xác định là traefik_data.

sudo docker volume create traefik_data
 

8. Bắt đầu Docker Compose#

Giờ đây, n8n có thể được bắt đầu thông qua:

sudo docker compose up -d
 

Để dừng container:

9. Hoàn tất#

Giờ đây, n8n sẽ có thể truy cập được bằng cách sử dụng tổ hợp tên miền con + tên miền được xác định ở trên.
Ví dụ trên sẽ cho kết quả: https://n8n.example.com

n8n sẽ chỉ có thể truy cập được bằng cách sử dụng https chứ không phải bằng cách sử dụng http.

Các bước tiếp theo#

XEM THÊM:  Khám Phá DeepSeek V3: Mô Hình Nguồn Mở Mạnh Mẽ Trong Ngành Công Nghệ AI

Bạn có thấy hữu ích không? Hãy cho chúng tôi +1 nhé

Đăng ký nhận bản tin từ Website TXL

Tìm kiếm tức thì các thông tin tại website: tranxuanloc.com

Mẹo tìm kiếm: "Từ khóa cần tìm kiếm" site:tranxuanloc.com để tìm được kết quả chính xác trên công cụ tìm kiếm của google

Trần Xuân Lộc Blog cung cấp dịch vụ

TOP ĐỐI TÁC CUNG CẤP DỊCH VỤ DU LỊCH TRỰC TUYẾN HÀNG ĐẦU

(Đặt phòng, đặt tour, đặt xe, đặt vé máy bay...Nhấn vào link logo để đặt dịch vụ với nhiều ưu đãi hấp dẫn)

Cảnh báo: Hiện nay có rất nhiều đơn vị SỬ DỤNG LẠI các THÔNG TIN NỘI DUNG ĐÀO TẠO của KHÓA HỌC SALE OTA TỪ OTAVN mà không đảm bảo chất lượng và hỗ trợ về sau. Các bạn muốn đăng ký học SALE OTA uy tín hãy liên hệ trực tiếp với OTA Việt Nam. OTAVN có xây dựng các hình thức đào tạo trực tiếp offline cho doanh nghiệp, đào tạo 1-1 từ xa và tự học online. Chúng tôi có 2 tên miền là: otavietnam.com và tranxuanloc.com (founder) có chia sẻ và đăng tải các thông tin liên quan về OTA/ Sale OTA/ Digital Marketing/ Thiết kế website... Với khách hàng/ đối tác đã sử dụng dịch vụ của OTAVN sẽ được HỖ TRỢ MIỄN PHÍ các vấn đề phát sinh, tư vấn giải đáp sau khi đã hoàn thành khóa học hoặc sau khi đã sử dụng dịch vụ trọn đời. Hotline:0934552325 (iMessage/ Zalo/ Whatsapp) - Email: [email protected]