N8N二开
下载版本源码
打开版本页面 https://github.com/n8n-io/n8n/releases 下载
同步版本
bash
$ gco github
# 删除除 .git 文件夹外的所有文件
# 复制最新版本代码
# 进入 istr-scripts 项目,执行清理
sh n8n/n8n-delete-single-file.sh
sh n8n/n8n-delete-folder.sh
sh n8n/n8n-delete-components.sh
sh n8n/n8n-global-clean.sh虽然做完了,但是还是有问题的,不能直接编译构建
编译构建
创建新版本分支,解决合并冲突
bash
$ gcm
$ gl
$ gco -b lyl_2_9_4
$ git merge github
# 解决冲突构建
bash
$ pnpm i
$ pnpm build #需要先构建,否则dev运行会报缺少包
$ pnpm start #运行构建产物
$ pnpm dev中文汉化
https://github.com/deluxebear/n8n
更新 packages/frontend/@n8n/i18n/src/locales/zh.json 这个文件
docker构建
bash
$ docker build -t lite-n8n/base:22 -f docker/images/n8n-base/Dockerfile .
$ pnpm build:n8n
$ docker build -t registry.cn-hangzhou.aliyuncs.com/istr_office/lite-n8n:1.0.1 -f docker/images/n8n/Dockerfile . && \
docker push registry.cn-hangzhou.aliyuncs.com/istr_office/lite-n8n:1.0.1CAUTION
Dockerfile 中的 msttcorefonts-installer 会从 SourceForge 下载微软字体,这在中国经常连接失败。
修改企业权限
修改配置
OAuth登录
admin@admin.com Admin123
docker部署
需注意时区问题
yaml
services:
# PostgreSQL 数据库服务
postgres:
image: registry.cn-hangzhou.aliyuncs.com/istr_office/postgres:15-alpine
container_name: n8n-postgres
restart: unless-stopped
environment:
- POSTGRES_DB=n8n
- POSTGRES_USER=postgres
- POSTGRES_PASSWORD=postgres
- TZ=Asia/Shanghai
- PGDATA=/var/lib/postgresql/data/pgdata
volumes:
- ./data/postgres:/var/lib/postgresql/data
ports:
- "5432:5432"
healthcheck:
test: ["CMD-SHELL", "pg_isready -U postgres"]
interval: 10s
timeout: 5s
retries: 5
networks:
- n8n-network
# n8n 工作流自动化服务
n8n:
image: registry.cn-hangzhou.aliyuncs.com/istr_office/lite-n8n:1.0.1
container_name: n8n
restart: unless-stopped
ports:
- "5678:5678"
depends_on:
postgres:
condition: service_healthy
environment:
# 时区设置
- TZ=Asia/Shanghai
- GENERIC_TIMEZONE=Asia/Shanghai
# 语言设置
- N8N_DEFAULT_LOCALE=zh
# 数据库配置(使用服务名连接)
- DB_TYPE=postgresdb
- DB_POSTGRESDB_HOST=postgres
- DB_POSTGRESDB_PORT=5432
- DB_POSTGRESDB_DATABASE=n8n
- DB_POSTGRESDB_USER=postgres
- DB_POSTGRESDB_PASSWORD=postgres
- DB_POSTGRESDB_SCHEMA=public
- DB_POSTGRESDB_SSL_ENABLED=false
# 启用所有节点(包括 ExecuteCommand 和 LocalFileTrigger)
- NODES_EXCLUDE=[]
- N8N_HOST=10.181.20.3
- N8N_SECURE_COOKIE=false
# 文件系统访问权限
- N8N_RESTRICT_FILE_ACCESS_TO=/mnt
- N8N_FILESYSTEM_ALLOW_LIST=/mnt
# 日志级别
- N8N_LOG_LEVEL=info
# 安全配置:加密密钥(32位随机字符串)
# 生成命令: openssl rand -hex 16
- N8N_ENCRYPTION_KEY=a1b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6
# 基础认证(推荐启用)
- N8N_BASIC_AUTH_ACTIVE=true
- N8N_BASIC_AUTH_USER=admin
- N8N_BASIC_AUTH_PASSWORD=your_secure_password_here
# Webhook URL 配置(如果需要外部访问,请修改为实际域名)
# - WEBHOOK_URL=https://your-domain.com/
# 执行数据保留设置(可选)
- EXECUTIONS_DATA_PRUNE=true
- EXECUTIONS_DATA_MAX_AGE=168
volumes:
# 核心数据目录映射(保存工作流、凭证等)
- ./n8n-data:/home/node/.n8n
# 自定义文件目录映射
- ./n8n-mnt:/mnt
# 可选:自定义节点目录
# - /data/n8n/n8n-custom:/home/node/.n8n/custom
healthcheck:
test: ["CMD-SHELL", "wget --no-verbose --tries=1 --spider http://localhost:5678/healthz || exit 1"]
interval: 30s
timeout: 10s
retries: 3
start_period: 40s
networks:
- n8n-network
networks:
n8n-network:
driver: bridge