由于我的Mac笔记本比较老了,都是10年前的macbook pro了,空间和系统版本都比较低,装最新版本的Docker。已经装不上了。(后续也通过了安装低版本的Docker解决,但确实空间也不足)正好也有一台nas,所以开始尝试部署。


🔹 一、准备共享目录

  1. 在极空间桌面上,点开 个人空间(或者团队空间,也行)。

  2. 新建一个文件夹,比如命名为:

Docker/n8n-data

  1. 这个文件夹就是以后 n8n 的配置文件、工作流数据存放地(保证不会因为容器删除而丢失数据)。


🔹 二、打开 Docker 应用

  1. 在桌面上点击 Docker 图标(蓝色小鲸鱼)

  2. 左边菜单里找到 Compose 项目(或者叫容器/项目管理,不同版本可能名字稍有不同)。

  3. 点击 新增项目


🔹 三、填写 Docker Compose 配置

在此之前,先找到极空间 NAS 的内网 IP

  1. 打开 系统设置(极空间桌面上的 ⚙️ 图标)。

  2. 找到 网络网络设置

  3. 在这里能看到当前 NAS 连接的 IP 地址,比如 192.168.31.88

在新建项目时,系统会让你粘贴一段 docker-compose.yml 内容:

✅ 方案 A:用命名卷(最稳,不用写宿主机绝对路径)


services: n8n: image: ghcr.io/n8n-io/n8n:latest container_name: n8n ports: - "5678:5678" environment: - TZ=Asia/Shanghai - GENERIC_TIMEZONE=Asia/Shanghai - N8N_SECURE_COOKIE=false - N8N_PROTOCOL=http - N8N_HOST=0.0.0.0 - N8N_PORT=5678 - WEBHOOK_URL=http://192.168.31.xxx:5678/ - N8N_EDITOR_BASE_URL=http://192.168.31.xxxx:5678/ volumes: - n8n_data:/home/node/.n8n restart: unless-stopped volumes: n8n_data: {}

直接换镜像源(推荐)

docker-compose.yml 里,不用 docker.io,改成官方同步的其他仓库,例如:

👉 这样就不会去访问 registry-1.docker.io,而是从 GitHub 拉镜像,一般在国内更稳。

✅ 方案 B:用宿主机目录绑定(确保是英文路径且已存在)


services: n8n: image: ghcr.io/n8n-io/n8n:latest container_name: n8n ports: - "5678:5678" environment: - TZ=Asia/Shanghai - GENERIC_TIMEZONE=Asia/Shanghai - N8N_SECURE_COOKIE=false - N8N_PROTOCOL=http - N8N_HOST=0.0.0.0 - N8N_PORT=5678 - WEBHOOK_URL=http://192.168.31.xxx:5678/ - N8N_EDITOR_BASE_URL=http://192.168.31.xxxx:5678/ volumes: - /share/Docker/n8n-data:/home/node/.n8n # ← 有短横线、路径需真实存在 restart: unless-stopped

👉 这里 /share/Docker/n8n-data 就是你刚才在个人空间建的文件夹路径。 (注意:极空间 Docker 面板可能会提供“浏览目录”按钮,直接点选你刚才建的文件夹更安全)

我的是 /超人的Nas服务器/Docker/n8n-data

但是包含中文,需要点【查询路径】复制


🔹 四、部署与启动

  1. 保存 → 部署

  2. 等容器拉取镜像完成后,状态显示为 运行中


🔹 五、访问与初始化

失败case

  1. 在浏览器里输入登录你的极空间

  1. 进入docker,找到已经成功配置的n8n,点击更多,详情

最开始点击远程访问

  1. 进入 n8n 的初始化界面,注册账号,设置好密码。

  1. 到这一步,以为就可以开始创建自动化工作流了 🚀。

但是最后创建的时候,出现connection lost

🔧 成功解决办法

✅ 方法 1(推荐):配置 HTTPS(前面代码里已经添加配置了)

给 n8n 前面加反向代理(Nginx Proxy Manager / Caddy / Nginx),申请一个证书,让外部用 https:// 访问。 然后在 docker-compose.yml 里加环境变量:

environment: - N8N_PROTOCOL=https - N8N_EDITOR_BASE_URL=https://你的域名/ - WEBHOOK_URL=https://你的域名/


✅ 方法 2(测试/内网用):关闭 Secure Cookie

docker-compose.ymlenvironment: 里加一行:

- N8N_SECURE_COOKIE=false

保存 → 重新部署容器,就能用 http://192.168.31.xxx:5678 直接访问了。


🔹 六、可选优化

  • 如果你想 外网访问:可以在极空间自带的反向代理或内网穿透里配置 n8n,加上 HTTPS。

  • 如果你想 备份:记得定期把 /share/Docker/n8n-data 文件夹备份到网盘/外部硬盘。

  • 如果你要跑多个服务:建议每个服务都建单独的文件夹,比如 /share/Docker/xxx-data


总结:

总结一下,能在nas上跑起来的关键点有几个:


✅ 1. 换了镜像源

  • 之前一直拉 docker.io/n8nio/n8n 很慢/超时。

  • 这次改成 ghcr.io/n8n-io/n8n:latest,是 GitHub Container Registry,国内访问更稳。


✅ 2. 容器名和端口避免冲突

  • 如果已经有n8n 的容器占用着 5678。

  • 可以改成了 container_name: n8n-2,避免了容器名冲突。

  • 同时确保 外部 5678 → 内部 5678,端口干净不冲突。


✅ 3. 环境变量配置正确 & 生效

这是最核心的:

  • N8N_SECURE_COOKIE=false → 关闭了安全 Cookie 检查,允许在 HTTP 内网地址下直接登录。

  • N8N_PROTOCOL=http + N8N_HOST=0.0.0.0 + N8N_PORT=5678 → 强制 n8n 监听在 http,绑定到所有地址。

  • WEBHOOK_URLN8N_EDITOR_BASE_URL → 明确告诉 n8n“我的访问地址就是 http://192.168.31.217:5678/”,避免前端和后端认知不一致。


🔑 一句话总结

你做对的就是:用稳定镜像、换掉冲突容器、加齐一整套 HTTP 环境变量,并且重建容器而不是重启。 这四步让 n8n 前端和后端对齐在 http://192.168.31.xxx:5678,Secure Cookie 校验自然就过了。

后续补充外网访问

1、启用花生壳

极空间里也带了花生壳,可以直接用这个来远程访问,如果你家宽没有公网 IP(大概率是内网地址) → 仅靠极空间的花生壳 DDNS 不够,需要用 花生壳的内网穿透服务(付费版才有,现在是免费1个G流量,就访问个n8n应该够了),并且2周会员试用

现在直接访问 https://11fh3cb723xxx.vicp.fun 能打开极空间的管理界面

但是还访问不了n8n,不是简单的https://11fh3cb723xxx.vicp.fun:5678 需要添加映射

2、找到自己内网IP

3、在花生壳上添加映射

4、访问n8n

这个时候再访问https://11fh3cb723xxx.vicp.fun 就能访问到部署的n8n了

Logo

火山引擎开发者社区是火山引擎打造的AI技术生态平台,聚焦Agent与大模型开发,提供豆包系列模型(图像/视频/视觉)、智能分析与会话工具,并配套评测集、动手实验室及行业案例库。社区通过技术沙龙、挑战赛等活动促进开发者成长,新用户可领50万Tokens权益,助力构建智能应用。

更多推荐