如何在极空间(Nas) Docker 部署 n8n 的详细图文步骤版
你做对的就是:用稳定镜像、换掉冲突容器、加齐一整套 HTTP 环境变量,并且重建容器而不是重启。这四步让 n8n 前端和后端对齐在,Secure Cookie 校验自然就过了。
由于我的Mac笔记本比较老了,都是10年前的macbook pro了,空间和系统版本都比较低,装最新版本的Docker。已经装不上了。(后续也通过了安装低版本的Docker解决,但确实空间也不足)正好也有一台nas,所以开始尝试部署。

🔹 一、准备共享目录
-
在极空间桌面上,点开 个人空间(或者团队空间,也行)。
-
新建一个文件夹,比如命名为:
Docker/n8n-data
-
这个文件夹就是以后 n8n 的配置文件、工作流数据存放地(保证不会因为容器删除而丢失数据)。

🔹 二、打开 Docker 应用
-
在桌面上点击 Docker 图标(蓝色小鲸鱼)。
-
左边菜单里找到 Compose 项目(或者叫容器/项目管理,不同版本可能名字稍有不同)。
-
点击 新增项目。

🔹 三、填写 Docker Compose 配置
在此之前,先找到极空间 NAS 的内网 IP
-
打开 系统设置(极空间桌面上的 ⚙️ 图标)。
-
找到 网络 或 网络设置。
-
在这里能看到当前 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
但是包含中文,需要点【查询路径】复制

🔹 四、部署与启动
-
点 保存 → 部署。
-
等容器拉取镜像完成后,状态显示为 运行中。


🔹 五、访问与初始化
失败case
-
在浏览器里输入登录你的极空间
-
进入docker,找到已经成功配置的n8n,点击更多,详情

最开始点击远程访问

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

-
到这一步,以为就可以开始创建自动化工作流了 🚀。
但是最后创建的时候,出现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.yml 的 environment: 里加一行:
- 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_URL和N8N_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了

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