Compose 部署配置

部署 n8n 的核心是 docker-compose.yml 文件。本章将提供配置文件的内容以及详细的参数说明。

2.1 参数配置详解

以下表格详细解释了 docker-compose.yml 文件中使用的关键参数及其配置内容。

参数 配置内容 详细说明
image n8nio/n8nblowsnow/n8n-chinese 指定要使用的 Docker 镜像。前者是官方版,后者是中文版。
container_name n8n 为你的容器指定一个固定的名称,方便管理。
restart always 确保在 Docker 或服务器重启时,n8n 容器会自动重新启动。
ports - "5678:5678" 将服务器(主机)的 5678 端口映射到容器的 5678 端口。
environment (环境变量) 用于配置 n8n 实例的各种参数。
GENERIC_TIMEZONE Asia/Shanghai (环境变量) 设置时区为上海,确保计划任务和时间正确。
NODE_ENV production (环境变量) 使用生产模式运行 n8n,以获得更好的性能。
N8N_SECURE_COOKIE false (环境变量) 解决在局域网内使用 http://[IP或主机名] 访问时的 “secure cookie” 报错问题。
N8N_HOST ooooofish (环境变量) 告诉 n8n 它的访问主机名是什么。已根据你的服务器 hostname 结果预填。
WEBHOOK_URL http://ooooofish:5678/ (环境变量) 告诉 n8n 其 Webhook 的公共访问地址。已根据你的主机名预填。
N8N_DEFAULT_LOCALE zh-CN (环境变量) (仅中文版需要) 设置默认语言为简体中文。
volumes - /home/yuuu/app/n8n:/home/node/.n8n 将你服务器上的 /home/yuuu/app/n8n 目录挂载到容器内,用于永久保存所有数据。

2.2 官方版 docker-compose.yml

如果你想安装官方英文原版,请使用这个配置。

services:
  n8n:
    image: n8nio/n8n
    container_name: n8n
    restart: always
    ports:
      - "5678:5678"
    environment:
      - GENERIC_TIMEZONE=Asia/Shanghai
      - NODE_ENV=production
      - N8N_SECURE_COOKIE=false
      - N8N_HOST=ooooofish
      - WEBHOOK_URL=http://ooooofish:5678/
      - N8N_PORT=5678
      - N8N_PROTOCOL=http
    volumes:
      - /home/yuuu/app/n8n:/home/node/.n8n

2.3 中文版 docker-compose.yml

如果你想安装 blowsnow/n8n-chinese 项目提供的中文汉化版,请使用这个配置。

services:
  n8n:
    image: blowsnow/n8n-chinese
    container_name: n8n
    restart: always
    ports:
      - "5678:5678"
    environment:
      - GENERIC_TIMEZONE=Asia/Shanghai
      - NODE_ENV=production
      - N8N_DEFAULT_LOCALE=zh-CN
      - N8N_SECURE_COOKIE=false
      - N8N_HOST=ooooofish
      - WEBHOOK_URL=http://ooooofish:5678/
      - N8N_PORT=5678
      - N8N_PROTOCOL=http
    volumes:
      - /home/yuuu/app/n8n:/home/node/.n8n

部署与管理命令

本章包含执行部署的详细步骤,以及管理 n8n 实例的常用 Docker Compose 命令。

3.1 执行部署步骤

请在你的服务器上依次执行以下命令。

  1. 创建部署目录
    docker-compose.yml 文件创建一个专门的目录,并进入该目录。

    mkdir ~/n8n-deploy
    cd ~/n8n-deploy
    
    
  2. 创建数据目录并授权
    你需要手动创建在 volumes 中指定的目录 /home/yuuu/app/n8n,并确保 Docker 有权读写它。

    sudo mkdir -p /home/yuuu/app/n8n
    sudo chown $(id -u):$(id -g) /home/yuuu/app/n8n
    
    
  3. 创建 docker-compose.yml 文件
    使用 vim~/n8n-deploy 目录中创建文件。

    vim docker-compose.yml
    
    

    打开 vim 后:

    1. i 键进入“插入模式”。

    2. 选择你需要的版本(官方版或中文版),复制其 yaml 内容并粘贴进去。

    3. Esc 键退出“插入模式”。

    4. 输入 :wq 然后按回车(Enter)键,保存并退出。

  4. 启动 n8n
    执行以下命令,Docker Compose 将在后台启动 n8n 容器。

    docker-compose up -d
    
    

3.2 实例管理命令

所有管理命令都必须在 ~/n8n-deploy 目录(即 docker-compose.yml 文件所在的目录)下执行。

  • 启动 n8n
    (此命令也会在后台创建并启动容器)

    docker-compose up -d
    
    
  • 停止 n8n
    (此命令只停止容器,不删除它)

    docker-compose stop
    
    
  • 重启 n8n
    (此命令用于重新启动已停止或正在运行的容器)

    docker-compose restart
    
    
  • 查看实时日志
    (用于排查启动失败等问题,按 Ctrl + C 退出)

    docker-compose logs -f
    
    
  • 删除 n8n 容器
    (此命令会停止并删除容器,但 /home/yuuu/app/n8n 中的数据会保留)

    docker-compose down
    
    
  • 更新 n8n 版本
    (拉取最新镜像并重新创建容器)

    docker-compose pull
    docker-compose up -d
    
    
  • 完全删除 n8n(清除所有数据)
    警告:此操作不可逆,将永久删除你的所有 n8n 数据和工作流。

    1. 停止并删除 n8n 容器:

      docker-compose down
      
      
    2. 手动删除你指定的本地数据目录:

      sudo rm -rf /home/yuuu/app/n8n
      
      
    3. (可选) 删除 n8n 镜像:

      docker rmi blowsnow/n8n-chinese
      # 或者
      docker rmi n8nio/n8n
      
      
Logo

中国智能体开发者社区,聚焦智能体与大模型开发,提供前沿资讯、实用工具链、开源项目及行业案例。通过技术沙龙、开发者大赛等活动,促进经验交流与协作,助力开发者快速构建创新智能应用。

更多推荐