Cài đặt N8N bằng docker

Chào các bạn, khi tìm đến bài này thì mình cũng không cần giới thiệu thêm về n8n nữa. Chúng ta vào thẳng vấn đề luôn. Cách cài đặt N8N bằng docker như thế nào. Cũng nhanh thôi, tầm 5 – 10 phút là xong

1. Yêu cầu:

Hôm nay bài này sẽ hướng dẫn trên vps mới hoàn toàn nhé. Yêu cầu như sau:

  • Hệ điều hành: Debian 12 hoặc Ubuntu 22.04 hoặc Ubuntu 24.04
  • RAM: Tối thiểu 1GB (đề xuất 2GB trở lên)
  • CPU: Tối thiểu 1 core (đề xuất 2 core trở lên)
  • Disk: Càng nhiều càng tốt, thực tế nó tốn disk không nhiều đâu

2. Cài đặt

# Cài đặt docker và docker composer

Các bạn đăng nhập vào SSH chạy lệnh sau:

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
sudo apt-get install docker-compose-plugin

# Tạo file cấu hình docker composer

Các bạn chạy tiếp lệnh sau (Áp dụng trường hợp chúng ta muốn lưu trữ ở /home nhé):

mkdir /home/n8n
cd /home/n8n
nano docker-compose.yml

Sau đó điền nội dung sau đây vào

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

# Tạo file cấu hình tên miền

Ở đây chúng ta sẽ dùng file .env để cấu hình tên miền.

nano .env

Nội dung file:

# Ten mien chinh
DOMAIN_NAME=example.com

# subdomain 
SUBDOMAIN=n8n

# Ap dung cho truong hop ban xai ten mien nay: https://n8n.example.com

# Mui gio
GENERIC_TIMEZONE=Asia/Ho_Chi_Minh

# The email dang ky SSL
SSL_EMAIL=[email protected]

3. Khởi chạy n8n

Cấu hình vậy là xong rồi. Cuối cùng chạy lệnh sau để khởi động n8n

sudo docker compose up -d

Sau khi khởi chạy thành công, các bạn truy cập trực tiếp vào tên miền của mình để thiết lập tài khoản admin và bắt đầu sử dụng nhé.

Chúc các bạn thực hiện thành công!

4.2/5 - (11 bình chọn)
Chia sẻ tới bạn bè và gia đình
BNIX.VN
BNIX.VN

Đơn vị chuyên cung cấp dịch vụ Web, Cloud Hosting giá rẻ, VPS, Tên Miền,.. chất lượng cao tại thị trường Việt Nam.