n8n 容器化部署指南

n8n 是一个开源的工作流程自动化工具,可以通过容器化方式方便地部署。以下是几种常见的容器化部署方法:

1. 使用 Docker 直接运行

docker run -d \
  --name n8n \
  -p 5678:5678 \
  -v ~/.n8n:/home/node/.n8n \
  -e N8N_BASIC_AUTH_ACTIVE=true \
  -e N8N_BASIC_AUTH_USER=<用户名> \
  -e N8N_BASIC_AUTH_PASSWORD=<密码> \
  n8nio/n8n

2. 使用 Docker Compose

创建一个 docker-compose.yml 文件:

version: '3'

services:
  n8n:
    image: n8nio/n8n
    restart: always
    ports:
      - "5678:5678"
    volumes:
      - ~/.n8n:/home/node/.n8n
    environment:
      - N8N_BASIC_AUTH_ACTIVE=true
      - N8N_BASIC_AUTH_USER=<用户名>
      - N8N_BASIC_AUTH_PASSWORD=<密码>
      # 其他可选环境变量
      # - N8N_WEBHOOK_URL=https://your-domain.com/
      # - N8N_HOST=your-domain.com

然后运行:

docker-compose up -d

3. Kubernetes 部署

创建 deployment 和 service 的 YAML 文件:

apiVersion: apps/v1
kind: Deployment
metadata:
  name: n8n
spec:
  replicas: 1
  selector:
    matchLabels:
      app: n8n
  template:
    metadata:
      labels:
        app: n8n
    spec:
      containers:
      - name: n8n
        image: n8nio/n8n
        ports:
        - containerPort: 5678
        env:
        - name: N8N_BASIC_AUTH_ACTIVE
          value: "true"
        - name: N8N_BASIC_AUTH_USER
          value: "<用户名>"
        - name: N8N_BASIC_AUTH_PASSWORD
          value: "<密码>"
        volumeMounts:
        - name: n8n-data
          mountPath: /home/node/.n8n
      volumes:
      - name: n8n-data
        persistentVolumeClaim:
          claimName: n8n-pvc

---
apiVersion: v1
kind: Service
metadata:
  name: n8n-service
spec:
  selector:
    app: n8n
  ports:
    - protocol: TCP
      port: 80
      targetPort: 5678

配置选项

常见环境变量配置:

  • N8N_BASIC_AUTH_ACTIVE: 启用基本认证
  • N8N_BASIC_AUTH_USER: 用户名
  • N8N_BASIC_AUTH_PASSWORD: 密码
  • N8N_WEBHOOK_URL: Webhook 基础 URL
  • N8N_HOST: 主机名
  • N8N_PORT: 端口号 (默认 5678)
  • N8N_PROTOCOL: 协议 (http 或 https)
  • NODE_ENV: 环境 (production 或 development)

持久化存储

确保将 /home/node/.n8n 目录挂载到宿主机或持久卷,以保存工作流配置和数据。

更新容器

要更新 n8n 容器:

docker pull n8nio/n8n
docker-compose down
docker-compose up -d

以上方法可以帮助您快速部署容器化的 n8n 实例。根据您的具体需求,可能需要调整配置参数。

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐