1. Yêu cầu tiền đề

Máy chủ: Ubuntu 22.04 / Debian 11 / CentOS 8+

Tối thiểu: 2 vCPU, 2 GB RAM, 20 GB ổ NVMe

Quyền root hoặc user có quyền sudo

Docker & Docker Compose: Docker CE ≥ 20.10, Docker Compose ≥ 1.29

2. Cài đặt Docker & Docker Compose

Cập nhật hệ thống:

sudo apt update && sudo apt upgrade -y

Cài Docker CE:

sudo apt install -y \
    ca-certificates \
    curl \
    gnupg \
    lsb-release

curl -fsSL https://download.docker.com/linux/ubuntu/gpg \
  | sudo gpg –dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg

echo \
  “deb [arch=$(dpkg –print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] \
    https://download.docker.com/linux/ubuntu \
    $(lsb_release -cs) stable” \
  | sudo tee /etc/apt/sources.list.d/docker.list >/dev/null

sudo apt update
sudo apt install -y docker-ce docker-ce-cli containerd.io

Cài Docker Compose:

sudo curl -L “https://github.com/docker/compose/releases/download/v2.14.2/docker-compose-$(uname -s)-$(uname -m)” \
  -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose

Kiểm tra:

docker –version

docker-compose –version

3. Tạo thư mục & file cấu hình

Tạo thư mục và file docker-compose.yml:

sudo mkdir -p /opt/n8n
cd /opt/n8n

sudo tee docker-compose.yml > /dev/null << ‘EOF’
version: ‘3.7’

services:
  n8n:
    image: n8nio/n8n:latest
    restart: always
    ports:
      – “5678:5678”
    environment:
      – N8N_HOST=your.domain.com
      – N8N_PORT=5678
      – N8N_PROTOCOL=https
      – VUE_APP_URL_BASE_API=https://your.domain.com
      – N8N_BASIC_AUTH_ACTIVE=true
      – N8N_BASIC_AUTH_USER=admin
      – N8N_BASIC_AUTH_PASSWORD=StrongPassword123!
      – NODE_ENV=production
      – DB_SQLITE_VACUUM_ON_STARTUP=true
      – DB_TYPE=sqlite
      – DB_SQLITE_DATABASE=/home/node/.n8n/database.sqlite
    volumes:
      – ~/.n8n:/home/node/.n8n
EOF

4. Khởi động dịch vụ

Khởi động container:

sudo docker-compose up -d

Kiểm tra trạng thái:

sudo docker-compose ps

5. Cài đặt SSL với Let’s Encrypt (Qua Nginx Proxy)

Cài Nginx & Certbot:

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

Tạo file config Nginx:

sudo tee /etc/nginx/sites-available/n8n.conf > /dev/null << ‘EOF’
server {
  listen 80;
  server_name your.domain.com;

  location / {
    proxy_pass http://localhost:5678;
    proxy_set_header Host $host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header X-Forwarded-Proto $scheme;
  }
}
EOF
sudo ln -s /etc/nginx/sites-available/n8n.conf /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl reload nginx

Lấy chứng chỉ SSL:

sudo certbot –nginx -d your.domain.com –non-interactive –agree-tos -m you@domain.com

6. Kiểm thử và bảo trì

Truy cập: https://your.domain.com và đăng nhập Basic Auth.

Sao lưu thư mục ~/.n8n định kỳ.

Cập nhật phiên bản n8n:

cd /opt/n8n
sudo docker-compose pull n8n
sudo docker-compose up -d