1 参考教程
https://www.bilibili.com/video/BV1kYm4BaEVz/?spm_id_from=333.337.search-card.all.click&vd_source=8b6b105b60d9062d8de6bb2eeb8db0f3
2 中文文档
https://docs.n8n.io/2-0-breaking-changes
3 默认打开废弃的节点 - 例如: 创建文件夹节点(ExecuteCommand)和本地文件触发节点(LocalFileTrigger)

4 Enforce setting file permissions 强制执行设置文件权限

5 Set default value for N8N_RESTRICT_FILE_ACCESS_TO为N8N_RESTIRCT_FILE_ACCESS_TO设置默认值

将工作流中对于文件夹的读取权限限定在N8N_RESTRICT_FILE_ACCESS_TO指定的文件夹内.
6 安装2.x版本
chmod -R 777 /home/lzc
root@lzc-server:~# docker run -d \
--name n8n \
--restart unless-stopped \
-p 5678:5678 \
-e GENERIC_TIMEZONE="Asia/Shanghai" \
-e TZ="Asia/Shanghai" \
-e N8N_ENFORCE_SETTINGS_FILE_PERMISSIONS=true \
-e NODES_EXCLUDE="[]" \
-e N8N_SKIP_AUTH_ON_OAUTH_CALLBACK=false \
-e N8N_RUNNERS_ENABLED=true \
-e N8N_SECURE_COOKIE=false \
-e N8N_RESTRICT_FILE_ACCESS_TO=/home/node/n8ndata \
-v n8n_data:/home/node/.n8n \
-v /home/lzc:/home/node/n8ndata \
n8nio/n8n:2.11.2
-
N8N_ENFORCE_SETTINGS_FILE_PERMISSIONS=true, 为N8N的配置文件设置访问权限0600, 如果是windows的环境需要设置成false
-
N8N_SECURE_COOKIE=false, 在浏览器中使用非localhost域名访问的时候, 默认要求使用https, 如果要解除这个限制则需要将N8N_SECURE_COOKIE设置为false
-
NODES_EXCLUDE="[]", 设置禁用的节点, []代表不禁用任何节点, 例如:创建文件夹节点(ExecuteCommand)和本地文件触发节点(LocalFileTrigger)
-
-v /home/lzc:/home/node/n8ndata n8n工作流可以操作的文件夹,
宿主机目录权限(关键)
-v /home/lzc:/home/node/n8ndata
含义:将宿主机的 /home/lzc 目录挂载到容器内的 /home/node/n8ndata,用于 n8n 工作流读写文件。潜在风险:
容器内 n8n 以 node 用户(UID 1000)运行,需要对该目录有读写权限。
宿主机上 /home/lzc 通常是用户 lzc 的家目录,权限一般为 755(只有所有者可写)。如果宿主机用户 lzc 的 UID 不是 1000,容器内 node 用户将无法写入。
解决方法:
修改宿主机目录权限:chmod 777 /home/lzc(不推荐,太宽松)
或者将目录所有者改为 UID 1000:sudo chown 1000:1000 /home/lzc(如果宿主机没有 UID 1000 用户,可创建)
或者使用 Docker 的 --user 参数以宿主机用户运行容器,但需匹配 UID。
7 n8n中/home/node/.n8n这个目录一般存放什么内容
/home/node/.n8n 是 n8n 在 Docker 容器内默认的用户数据目录(home 目录)。它包含了运行 n8n 所需的所有核心配置和持久化数据,因此你在用 Docker 运行 n8n 时,通常会把这个目录挂载到宿主机上,防止数据丢失 。
下面这个表格详细列出了该目录下主要存放的内容:
| 内容类型 | 具体说明 | 典型文件/目录 |
|---|---|---|
| 📁 数据库文件 | 存储你的工作流、执行历史、标签、用户凭证等核心业务数据。默认使用的是 SQLite 数据库。 | database.sqlite |
| ⚙️ 配置文件 | 包含 n8n 实例的加密密钥和基础设置。这个文件权限需要特别保护(如 0600)以确保安全 。 |
config |
| 🧩 自定义节点 | 如果你安装或开发了社区节点 ,它们会被放在这个目录下的 custom 文件夹中 。 |
custom/ |
| 📦 本地文件缓存 | 工作流中"读写文件"等节点操作产生的或需要用到的本地文件。 | (各种业务文件) |
简单来说,这个目录就是你的 n8n 实例在容器内的"家",保存了所有让它运转起来的关键数据。
结合你之前关心的文件权限问题,如果需要我介绍如何正确挂载这个目录来保证数据安全,随时可以再问我。
8 测试读取/home/node/n8ndata文件夹中的内容
8.1 宿主机上面的映射的地址是/home/lzc, 向这个文件夹内写入一个文件

8.2 创建工作流和读取文件节点


