























你是否在使用 n8n 时遇到过这些问题:
今天给大家带来一个开箱即用的 n8n 2.0 中文汉化版部署方案,完美解决以上所有问题!

🇨🇳 完整中文汉化
deluxebear/n8n:2.0.0-chs 镜像N8N_DEFAULT_LOCALE=zh-CN🔓 解除组件限制
NODES_EXCLUDE=[] 启用所有节点📁 文件系统访问
/mnt 目录访问权限🗄️ PostgreSQL 数据库
🛡️ 安全配置

n8n/
├── docker-compose.yml # Docker 编排配置
└── start.sh # 一键启动脚本
这是完整的 Docker Compose 配置文件,包含了所有必要的配置:
version: '3.8'
services:
# PostgreSQL 数据库服务
postgres:
image: 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: deluxebear/n8n:2.0.0-chs
container_name: n8n
restart: unless-stopped
ports:
- "5678:5678"
depends_on:
postgres:
condition: service_healthy
environment:
# 时区设置
- TZ=Asia/Shanghai
- GENERIC_TIMEZONE=Asia/Shanghai
# 数据库配置(使用服务名连接)
- 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_SECURE_COOKIE=false
# 文件系统访问权限
- N8N_RESTRICT_FILE_ACCESS_TO=/mnt
- N8N_FILESYSTEM_ALLOW_LIST=/mnt
# 语言设置
- N8N_DEFAULT_LOCALE=zh-CN
# 日志级别
- 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:
# 核心数据目录映射(保存工作流、凭证等)
- /data/n8n/n8n-data:/home/node/.n8n
# 自定义文件目录映射
- /data/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
yaml
这是一键启动脚本,自动完成环境检测、目录创建和服务启动:
#!/bin/bash
# n8n + PostgreSQL 一键启动脚本
# 使用方法: chmod +x start.sh && ./start.sh
set -e
echo "=========================================="
echo " n8n + PostgreSQL Docker 部署脚本"
echo "=========================================="
echo ""
# 颜色定义
RED='\033[0;31m'
GREEN='\033[0;32m'
YELLOW='\033[1;33m'
NC='\033[0m' # No Color
# 检查 Docker 是否安装
if ! command -v docker &> /dev/null; then
echo -e "${RED}错误: Docker 未安装,请先安装 Docker${NC}"
exit 1
fi
# 自动检测 Docker Compose 版本并设置命令
DOCKER_COMPOSE_CMD=""
# 优先检测 V2 版本 (docker compose)
if docker compose version &> /dev/null; then
DOCKER_COMPOSE_CMD="docker compose"
COMPOSE_VERSION=$(docker compose version --short 2>/dev/null || echo "V2")
echo -e "${GREEN}✓ 检测到 Docker Compose V2: $COMPOSE_VERSION${NC}"
# 检测 V1 版本 (docker-compose)
elif command -v docker-compose &> /dev/null; then
DOCKER_COMPOSE_CMD="docker-compose"
COMPOSE_VERSION=$(docker-compose version --short 2>/dev/null || echo "V1")
echo -e "${GREEN}✓ 检测到 Docker Compose V1: $COMPOSE_VERSION${NC}"
else
echo -e "${RED}错误: Docker Compose 未安装${NC}"
echo -e "${YELLOW}请安装 Docker Compose:${NC}"
echo " V2 (推荐): https://docs.docker.com/compose/install/"
echo " V1: sudo curl -L \"https://github.com/docker/compose/releases/latest/download/docker-compose-\$(uname -s)-\$(uname -m)\" -o /usr/local/bin/docker-compose && sudo chmod +x /usr/local/bin/docker-compose"
exit 1
fi
echo ""
# 检查 docker-compose.yml 是否存在
if [ ! -f "docker-compose.yml" ]; then
echo -e "${RED}错误: docker-compose.yml 文件不存在${NC}"
exit 1
fi
echo -e "${YELLOW}步骤 1/5: 检查配置文件...${NC}"
# 检查是否修改了加密密钥
if grep -q "a1b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6" docker-compose.yml; then
echo -e "${YELLOW}警告: 检测到默认加密密钥,建议修改!${NC}"
read -p "是否自动生成新密钥?(y/n): " -n 1 -r
echo
if [[ $REPLY =~ ^[Yy]$ ]]; then
# 生成新密钥
NEW_KEY=$(openssl rand -hex 16 2>/dev/null || python3 -c "import secrets; print(secrets.token_hex(16))" 2>/dev/null || echo "")
if [ -n "$NEW_KEY" ]; then
echo -e "${GREEN}生成的新密钥: $NEW_KEY${NC}"
echo -e "${YELLOW}请手动将此密钥更新到 docker-compose.yml 中的 N8N_ENCRYPTION_KEY${NC}"
read -p "按回车键继续..."
else
echo -e "${RED}无法自动生成密钥,请手动生成${NC}"
fi
fi
fi
echo -e "${YELLOW}步骤 2/5: 创建数据目录...${NC}"
# 创建数据目录
DATA_DIR="/data"
if [[ "$OSTYPE" == "msys" || "$OSTYPE" == "win32" ]]; then
# Windows 环境
DATA_DIR="./data"
fi
mkdir -p "$DATA_DIR/n8n/n8n-data"
mkdir -p "$DATA_DIR/n8n/n8n-mnt"
mkdir -p "$DATA_DIR/postgres"
echo -e "${GREEN}✓ 数据目录创建完成${NC}"
echo -e "${YELLOW}步骤 3/5: 设置目录权限...${NC}"
# 设置权限(仅 Linux/Mac)
if [[ "$OSTYPE" != "msys" && "$OSTYPE" != "win32" ]]; then
if [ "$EUID" -eq 0 ]; then
chown -R 1000:1000 "$DATA_DIR/n8n"
chown -R 999:999 "$DATA_DIR/postgres"
echo -e "${GREEN}✓ 权限设置完成${NC}"
else
echo -e "${YELLOW}提示: 如果遇到权限问题,请使用 sudo 运行此脚本${NC}"
fi
else
echo -e "${YELLOW}Windows 环境,跳过权限设置${NC}"
fi
echo -e "${YELLOW}步骤 4/5: 启动服务...${NC}"
# 停止旧容器(如果存在)
$DOCKER_COMPOSE_CMD down 2>/dev/null || true
# 拉取最新镜像
echo "正在拉取镜像..."
$DOCKER_COMPOSE_CMD pull
# 启动服务
echo "正在启动服务..."
$DOCKER_COMPOSE_CMD up -d
echo -e "${GREEN}✓ 服务启动完成${NC}"
echo -e "${YELLOW}步骤 5/5: 等待服务就绪...${NC}"
# 等待服务启动
echo "等待 PostgreSQL 启动..."
for i in {1..30}; do
if docker exec n8n-postgres pg_isready -U postgres &> /dev/null; then
echo -e "${GREEN}✓ PostgreSQL 已就绪${NC}"
break
fi
echo -n "."
sleep 2
done
echo ""
echo "等待 n8n 启动..."
for i in {1..30}; do
if curl -s http://localhost:5678/healthz &> /dev/null; then
echo -e "${GREEN}✓ n8n 已就绪${NC}"
break
fi
echo -n "."
sleep 2
done
echo ""
echo "=========================================="
echo -e "${GREEN} 部署完成!${NC}"
echo "=========================================="
echo ""
echo "访问地址: http://localhost:5678"
echo ""
echo "默认登录信息:"
echo " 用户名: admin"
echo " 密码: 请查看 docker-compose.yml 中的 N8N_BASIC_AUTH_PASSWORD"
echo ""
echo "常用命令:"
echo " 查看日志: $DOCKER_COMPOSE_CMD logs -f"
echo " 停止服务: $DOCKER_COMPOSE_CMD down"
echo " 重启服务: $DOCKER_COMPOSE_CMD restart"
echo " 查看状态: $DOCKER_COMPOSE_CMD ps"
echo ""
echo -e "${YELLOW}提示: 首次启动可能需要1-2分钟初始化数据库${NC}"
echo ""
# 询问是否查看日志
read -p "是否查看实时日志?(y/n): " -n 1 -r
echo
if [[ $REPLY =~ ^[Yy]$ ]]; then
$DOCKER_COMPOSE_CMD logs -f
fi
bash
将 docker-compose.yml 和 start.sh 保存到同一目录。
打开 docker-compose.yml,修改以下配置:
# 1. 修改数据库密码
- POSTGRES_PASSWORD=your_strong_password
# 2. 修改加密密钥(重要!)
- N8N_ENCRYPTION_KEY=your_32_character_key
# 3. 修改登录密码
- N8N_BASIC_AUTH_PASSWORD=your_secure_password
yaml
💡 生成加密密钥命令:
openssl rand -hex 16
# 给脚本添加执行权限
chmod +x start.sh
# 运行启动脚本
./start.sh
bash
脚本会自动完成:
启动完成后,在浏览器访问:
http://localhost:5678
使用默认账号登录:
admindocker-compose.yml 中设置的密码# 使用中文汉化镜像
image: deluxebear/n8n:2.0.0-chs
# 设置中文语言
environment:
- N8N_DEFAULT_LOCALE=zh-CN
- TZ=Asia/Shanghai
- GENERIC_TIMEZONE=Asia/Shanghai
yaml
# 启用所有节点(包括 Execute Command)
- NODES_EXCLUDE=[]
# 文件系统访问权限
- N8N_RESTRICT_FILE_ACCESS_TO=/mnt
- N8N_FILESYSTEM_ALLOW_LIST=/mnt
yaml
关键点:
NODES_EXCLUDE=[] 表示不排除任何节点volumes:
# n8n 数据(工作流、凭证等)
- /data/n8n/n8n-data:/home/node/.n8n
# 自定义文件目录
- /data/n8n/n8n-mnt:/mnt
# PostgreSQL 数据
- /data/postgres:/var/lib/postgresql/data
yaml
docker compose ps
bash
docker compose logs -f
bash
docker compose restart
bash
docker compose down
bash
# 备份 n8n 数据
tar -czf n8n-backup-$(date +%Y%m%d).tar.gz /data/n8n
# 备份数据库
docker exec n8n-postgres pg_dump -U postgres n8n > n8n-db-backup-$(date +%Y%m%d).sql
bash
echo "Hello from n8n!"
ls -la /mnt
bash
/data/n8n/n8n-mnt 目录/mnt/your-file.txt修改默认密码
限制访问
定期备份
/data/n8n 目录谨慎使用 Execute Command
A: 等待 1-2 分钟,首次启动需要初始化数据库。检查日志:
docker compose logs -f n8n
bash
A: 确认 NODES_EXCLUDE=[] 配置正确,重启容器:
docker compose restart n8n
bash
A: 检查文件是否在 /data/n8n/n8n-mnt 目录,并确认权限:
sudo chown -R 1000:1000 /data/n8n
bash
A: 确认使用的是 deluxebear/n8n:2.0.0-chs 镜像,并设置了:
- N8N_DEFAULT_LOCALE=zh-CN
yaml
如果需要外部访问 Webhook:
environment:
- WEBHOOK_URL=https://your-domain.com/
yaml
# 自动清理旧的执行记录
- EXECUTIONS_DATA_PRUNE=true
- EXECUTIONS_DATA_MAX_AGE=168 # 保留 7 天
yaml
volumes:
- /data/n8n/n8n-custom:/home/node/.n8n/custom
yaml
这个 n8n 2.0 中文汉化版部署方案面对小白友好:
✅ 开箱即用:一键脚本,3 分钟部署完成
✅ 完整汉化:界面全中文,小白友好
✅ 功能完整:解除所有节点限制
✅ 数据安全:PostgreSQL 持久化存储
✅ 易于维护:Docker 容器化部署
无论你是自动化新手还是老手,这个方案都能让你快速上手 n8n,打造属于自己的自动化工作流!
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。