n8n Docker Compose部署

发布于:2025-07-01 ⋅ 阅读:(21) ⋅ 点赞:(0)

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: always
    command:
      - "--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:ro
    labels:
      - "traefik.enable=true"

  n8n:
    image: n8nio/n8n:latest
    restart: always
    environment:
      - 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:/files
    depends_on:
      - traefik

volumes:
  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),如需详细操作说明和配置示例,请参考原文档。


网站公告

今日签到

点亮在社区的每一天
去签到