Skip to content

n8n 环境搭建指南 - 从零开始的完整配置

上一篇文章我们了解了 n8n 的基本概念和优势,今天我们来实际动手搭建 n8n 的运行环境。n8n 提供了多种安装方式,我们会介绍最常用的几种,你可以根据自己的需求选择合适的方案。

安装方式对比

在开始之前,先了解一下不同安装方式的特点:

方式优点缺点适用场景
npm 全局安装简单快速,适合开发测试依赖 Node.js 环境个人学习、快速体验
Docker环境隔离,部署简单需要了解 Docker 基础生产环境、团队使用
Docker Compose包含数据库,功能完整配置相对复杂完整的生产部署
云服务免运维,开箱即用数据在第三方快速上手,不关心部署

方式一:npm 全局安装

这是最简单的安装方式,适合快速体验和学习。

前置要求

  • Node.js 16.9 或更高版本
  • npm 或 yarn

安装步骤

bash
# 全局安装 n8n
npm install n8n -g

# 启动 n8n
n8n start

安装完成后,打开浏览器访问 http://localhost:5678,就能看到 n8n 的界面了。

配置数据存储

默认情况下,n8n 使用 SQLite 数据库存储数据,文件位置在:

  • macOS/Linux: ~/.n8n
  • Windows: %USERPROFILE%\.n8n

如果需要自定义数据目录,可以设置环境变量:

bash
export N8N_USER_FOLDER=/path/to/your/n8n/data
n8n start

方式二:Docker 单容器部署

Docker 方式提供了更好的环境隔离,推荐用于生产环境。

快速启动

bash
# 拉取并运行 n8n
docker run -it --rm \
  --name n8n \
  -p 5678:5678 \
  n8nio/n8n

持久化数据

上面的命令在容器停止后数据会丢失,生产环境需要持久化存储:

bash
# 创建数据目录
mkdir ~/.n8n

# 运行容器并挂载数据卷
docker run -it --rm \
  --name n8n \
  -p 5678:5678 \
  -v ~/.n8n:/home/node/.n8n \
  n8nio/n8n

后台运行

bash
docker run -d \
  --name n8n \
  --restart unless-stopped \
  -p 5678:5678 \
  -v ~/.n8n:/home/node/.n8n \
  n8nio/n8n

方式三:Docker Compose 完整部署

这种方式包含了数据库和其他依赖服务,适合完整的生产环境。

创建 docker-compose.yml

yaml
version: '3.8'

services:
  postgres:
    image: postgres:13
    restart: unless-stopped
    environment:
      POSTGRES_USER: n8n
      POSTGRES_PASSWORD: n8n_password
      POSTGRES_DB: n8n
    volumes:
      - postgres_data:/var/lib/postgresql/data
    healthcheck:
      test: ['CMD-SHELL', 'pg_isready -h localhost -U n8n']
      interval: 5s
      timeout: 5s
      retries: 10

  n8n:
    image: n8nio/n8n
    restart: unless-stopped
    environment:
      DB_TYPE: postgresdb
      DB_POSTGRESDB_HOST: postgres
      DB_POSTGRESDB_PORT: 5432
      DB_POSTGRESDB_DATABASE: n8n
      DB_POSTGRESDB_USER: n8n
      DB_POSTGRESDB_PASSWORD: n8n_password
      N8N_BASIC_AUTH_ACTIVE: true
      N8N_BASIC_AUTH_USER: admin
      N8N_BASIC_AUTH_PASSWORD: your_password_here
    ports:
      - "5678:5678"
    volumes:
      - n8n_data:/home/node/.n8n
    depends_on:
      postgres:
        condition: service_healthy

volumes:
  postgres_data:
  n8n_data:

启动服务

bash
# 启动所有服务
docker-compose up -d

# 查看日志
docker-compose logs -f n8n

# 停止服务
docker-compose down

基础配置

设置管理员账户

首次访问 n8n 时,系统会引导你创建管理员账户。如果使用 Docker Compose,可以通过环境变量预设:

yaml
environment:
  N8N_BASIC_AUTH_ACTIVE: true
  N8N_BASIC_AUTH_USER: admin
  N8N_BASIC_AUTH_PASSWORD: your_secure_password

重要的环境变量

bash
# 基础认证
N8N_BASIC_AUTH_ACTIVE=true
N8N_BASIC_AUTH_USER=admin
N8N_BASIC_AUTH_PASSWORD=password

# 数据库配置
DB_TYPE=postgresdb
DB_POSTGRESDB_HOST=localhost
DB_POSTGRESDB_PORT=5432
DB_POSTGRESDB_DATABASE=n8n
DB_POSTGRESDB_USER=n8n
DB_POSTGRESDB_PASSWORD=password

# 网络配置
N8N_HOST=0.0.0.0
N8N_PORT=5678
N8N_PROTOCOL=http

# 安全配置
N8N_JWT_AUTH_ACTIVE=true
N8N_ENCRYPTION_KEY=your_encryption_key

验证安装

安装完成后,通过以下步骤验证:

  1. 访问界面:打开 http://localhost:5678
  2. 登录系统:使用设置的用户名密码登录
  3. 创建工作流:点击 "New Workflow" 按钮
  4. 添加节点:尝试添加一个 "Start" 节点

如果能正常操作,说明安装成功。

常见问题

端口冲突

如果 5678 端口被占用,可以修改端口:

bash
# npm 方式
N8N_PORT=8080 n8n start

# Docker 方式
docker run -p 8080:5678 n8nio/n8n

权限问题

Docker 运行时可能遇到权限问题:

bash
# 设置正确的用户权限
docker run --user $(id -u):$(id -g) \
  -v ~/.n8n:/home/node/.n8n \
  n8nio/n8n

内存不足

n8n 运行需要一定的内存,建议至少 512MB:

bash
# 限制 Docker 容器内存使用
docker run --memory=1g n8nio/n8n

下一步

环境搭建完成后,我们就可以开始创建第一个工作流了。下一篇文章,我们将通过一个简单的例子来了解 n8n 的基本操作和界面功能。

记住,选择合适的安装方式很重要:

  • 学习阶段:npm 全局安装最简单
  • 个人使用:Docker 单容器足够
  • 团队生产:Docker Compose 更稳定

现在你的 n8n 环境已经准备就绪,让我们开始探索这个强大的自动化工具吧!