n8n Docker Compose 部署官方文檔詳細總結
1. 前提條件
- 具備服務器、容器、網絡和安全相關基礎知識。
- 推薦有 Linux 運維經驗。
- 已準備好一臺服務器(建議為云服務器或本地服務器)。
2. 安裝 Docker 和 Docker Compose
以 Ubuntu 為例,完整命令如下:
# 卸載舊版或不兼容的 Docker 相關包
for pkg in docker.io docker-doc docker-compose docker-compose-v2 podman-docker containerd runc; do sudo apt-get remove $pkg; done# 安裝依賴
sudo apt-get update
sudo apt-get install ca-certificates curl# 下載 Docker 倉庫 GPG 密鑰
sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc# 添加 Docker 倉庫
echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu $(. /etc/os-release && echo "${UBUNTU_CODENAME:-$VERSION_CODENAME}") stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null# 更新并安裝 Docker 及 Compose 插件
sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
驗證安裝:
docker --version
docker compose version
3. (可選)配置非 root 用戶訪問 Docker
將當前用戶加入 docker 用戶組:
sudo usermod -aG docker ${USER}
exec sg docker newgrp
如需為其他用戶授權:
sudo usermod -aG docker <USER_TO_RUN_DOCKER>
驗證組:
groups
4. DNS 設置
- 建議為 n8n 創建專用子域名(如 n8n.example.com),并將其 A 記錄指向服務器公網 IP。
5. 創建項目目錄與 .env 文件
mkdir n8n-compose
cd n8n-compose
創建 .env
文件,示例內容:
DOMAIN_NAME=example.com
SUBDOMAIN=n8n
GENERIC_TIMEZONE=Europe/Berlin
SSL_EMAIL=user@example.com
6. 創建本地文件目錄
mkdir local-files
7. 創建 Docker Compose 文件
新建 compose.yaml
,官方推薦內容如下:
services:traefik:image: "traefik"restart: alwayscommand:- "--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.letsencrypt.acme.tlschallenge=true"- "--certificatesresolvers.letsencrypt.acme.email=${SSL_EMAIL}"- "--certificatesresolvers.letsencrypt.acme.storage=/letsencrypt/acme.json"ports:- "80:80"- "443:443"volumes:- traefik_data:/letsencrypt- /var/run/docker.sock:/var/run/docker.sock:rolabels:- "traefik.enable=true"n8n:image: n8nio/n8n:latestrestart: alwaysenvironment:- GENERIC_TIMEZONE=${GENERIC_TIMEZONE}- N8N_BASIC_AUTH_ACTIVE=true- N8N_BASIC_AUTH_USER=admin- N8N_BASIC_AUTH_PASSWORD=admin- WEBHOOK_TUNNEL_URL=https://${SUBDOMAIN}.${DOMAIN_NAME}/labels:- "traefik.enable=true"- "traefik.http.routers.n8n.rule=Host(`${SUBDOMAIN}.${DOMAIN_NAME}`)"- "traefik.http.routers.n8n.entrypoints=websecure"- "traefik.http.routers.n8n.tls.certresolver=letsencrypt"volumes:- n8n_data:/home/node/.n8n- ./local-files:/filesdepends_on:- traefikvolumes:n8n_data:traefik_data:
8. 啟動與管理服務
啟動服務:
sudo docker compose up -d
停止服務:
sudo docker compose stop
9. 訪問 n8n
- 通過 https://n8n.example.com 訪問(根據 .env 配置)。
- 僅支持 HTTPS 訪問。
10. 常見問題與補充
- 官方推薦生產環境使用
latest
鏡像。 - 更多環境變量、數據庫、日志、安全等詳見官方文檔“Next steps”及相關鏈接。
- 建議無經驗用戶優先選擇 n8n Cloud 托管服務。
本文檔內容基于 n8n 官方 Docker Compose 部署文檔(https://docs.n8n.io/hosting/installation/server-setups/docker-compose),如需詳細操作說明和配置示例,請參考原文檔。