Skip to content

n8n 进阶设置

以下假设 n8n 与 Runner 已通过 Compose 部署,工作目录仍为 /opt/n8n(可按实际路径修改)。

1. Webhook 使用自定义域名

docker-compose.ymln8n 服务 environment 中增加(将域名换成你的):

yaml
WEBHOOK_URL=https://n8n.example.com/

保存后重启 Compose(见各节「重启」命令)。

2. 调整 Runner 内建函数黑名单(type 未定义等)

在 Python Runner 中若出现 name 'type' is not defined,通常与 Runner 对 Python 内建函数的黑名单 N8N_RUNNERS_BUILTINS_DENY 有关:type() 可能被默认禁止。

编辑 n8n-task-runners.json

在保留其他键的前提下,显式设置 N8N_RUNNERS_BUILTINS_DENY。示例:在默认黑名单基础上去掉 type(值以你当前文件为准):

json
{
  "N8N_RUNNERS_STDLIB_ALLOW": "*",
  "N8N_RUNNERS_EXTERNAL_ALLOW": "DrissionPage,pillow",
  "N8N_RUNNERS_BUILTINS_DENY": "eval,exec,compile,open,input,breakpoint,getattr,object,vars,setattr,delattr,hasattr,dir,memoryview,build_class,globals,locals"
}

DANGER

将黑名单改为「允许全部内建」会显著提高 Code 节点风险;不建议在生产环境 使用。若必须放宽,请限制网络与执行环境,并定期审计工作流。

若文档约定用空字符串表示不禁止任何内建,可按 Runner 版本说明设为 ""(请勿与通配符语义混淆)。

重启容器

bash
docker compose down
docker compose up -d

3. 挂载宿主机目录供工作流读写

创建目录并授权

bash
mkdir -p /opt/files
chown -R 1000:1000 /opt/files

docker-compose.yml 中挂载

n8ntask-runners 两个服务的 volumes 中均增加(路径按需修改):

yaml
volumes:
  - n8n_data:/home/node/.n8n
  - /opt/files:/data/files
  • 左侧:宿主机目录
  • 右侧:容器内路径,下文与 N8N_RESTRICT_FILE_ACCESS_TO 一致

n8n 2.x 对文件访问有默认限制,若 Code 节点需访问该目录,在 n8n 服务 environment 中增加:

yaml
- N8N_RESTRICT_FILE_ACCESS_TO=/data/files

重启

bash
cd /opt/n8n
docker compose down
docker compose up -d