当前位置: 首页 > web >正文

n8n 从 Docker 到 Node.js 本地环境迁移指南

📌 目标

将运行在 Docker 容器中的 n8n 迁移到 Windows 本地 Node.js 环境,并保留原有的账户、数据、工作流信息。


一、前提条件

✅ 原有环境:

  • Docker Desktop 已安装,n8n 运行在容器中。

  • 数据目录映射为:C:\n8n\data

✅ 目标环境:

  • 本地已安装 Node.js(推荐版本 >=18.17 <=22)

  • 希望将 n8n 运行在 C:\node 目录下


二、迁移步骤

1. 卸载 Docker 版本(可选)

  • 如果后续不再使用 Docker,可停止并移除容器:

# 查看运行中的容器
docker ps# 停止并删除 n8n 容器
docker stop <container-id>
docker rm <container-id>

2. 安装 n8n(全局)

npm install -g n8n

说明:npm 命令依赖于 Node.js,因此需确保 Node 环境安装无误。

3. 指定 n8n 使用原有数据目录

  • 启动 n8n 时指定用户配置目录:

n8n --user-folder "C:\n8n\data"
  • 或使用 .env 文件(放在 C:\n8n\data 下):

N8N_USER_FOLDER=C:\n8n\data
N8N_RUNNERS_ENABLED=true

三、配置自动启动(可选)

✅ 方法一:使用 pm2

npm install -g pm2
pm2 start n8n --name n8n --env production -- --user-folder "C:\n8n\data"
pm2 save
pm2 startup  # 拷贝并执行提示的命令

✅ 方法二:使用 nssm 注册为 Windows 服务

  1. 下载并安装 nssm:https://nssm.cc/download

  2. 执行:

nssm install n8n
  1. 设置:

    • Path: C:\node\npm\n8n.cmd(或 where n8n 路径)

    • Startup directory: C:\n8n\data

    • 添加环境变量:N8N_RUNNERS_ENABLED=true

  2. 点击 Install,启动服务。


四、常见问题与处理方式

❓ 启动时重新进入注册页面

原因:数据目录未正确挂载或权限问题。

解决

  • 确保使用 --user-folder 指定了正确的数据目录

  • 确保 C:\n8n\data\.n8n\config 存在并有 users.json 等文件

❓ bash 无法执行(Docker)

OCI runtime exec failed: exec: "bash": executable file not found

解决:使用 sh 而非 bash

docker exec -it n8n-n8n-1 sh

❓ Node.js 版本不兼容

Your Node.js version 18.14.2 is currently not supported by n8n.

解决:使用 nvm 切换 Node 版本:

nvm install 18.17.1
nvm use 18.17.1

❓ npm root -g 显示路径不存在

说明:某些系统下 npm root -g 的路径需要管理员权限访问。 建议:手动切换为自定义目录:

npm config set prefix "C:\node\npm"

并将该路径添加到系统环境变量 PATH 中。


五、附:运行方式对比

运行方式说明是否推荐
Docker容器隔离,适合部署✅生产推荐
Node + n8n本地开发调试方便✅开发推荐
pm2管理 Node 进程、可开机启动✅推荐
nssm 服务以 Windows 服务方式运行稳定✅推荐

✅ 总结

迁移过程中,核心是保持 .n8n 数据目录不变,无论你是通过 Docker、Node 还是其它方式运行,n8n 都会使用该目录中的配置和数据库文件。因此,指定好 --user-folder 是关键所在。

http://www.xdnf.cn/news/14174.html

相关文章:

  • Linux Docker的环境配置与简单使用
  • 《高并发系统性能优化三板斧:缓存 + 异步 + 限流》
  • Spring Boot 自动配置原理深度解析与自定义 Starter 实战
  • 【Unity】MiniGame编辑器小游戏(一)俄罗斯方块【Tetris】
  • [学习] 牛顿迭代法:从数学原理到实战
  • Nginx、CDN、 DNS的关系解析
  • ​​信息系统项目管理师-信息系统工程 知识点总结与例题分析​​
  • 单项链表的操作及其实现
  • 重定向与缓冲区:C语言IO的奥秘(模拟封装glibc)
  • 工业PID算法在温控器的应用与参数说明
  • 《单调队列》题集
  • list is not in GROUPBY clause and contains nonaggregated column ‘*.*‘
  • Windows10电脑开始菜单快速查找应用程序
  • I/O模式之epoll,本文会讲到epoll的相关接口以及底层,还会涉及水平和边缘工作模式,以及通过epoll相关接口实现一个水平工作模式服务端
  • 【DRL】强化学习中的概念和术语
  • 用数学融智学人力资源模型的核心架构:建立可量化的理论框架
  • openMP的简单介绍以及c++执行实例
  • JS递归了解
  • k3s入门教程(三)部署控制面板
  • 第六章 进阶19 琦琦的追求
  • AI数字人:几分钟克隆,短视频制作新革命
  • leetcode-hot-100 (链表)
  • C语言结构体与联合体详解
  • Windows批处理脚本(.bat脚本、.bat语法)关闭回显@echo off、延迟变量扩展setlocal enabledelayedexpansion
  • 【教程】Windows安全中心扫描设置排除文件
  • Ubuntu Server 24.04|22.04|20.04|18.04 安装GUI DESKTOP xfce4
  • 文本表示的发展概述
  • SpringAI使用总结
  • [蓝桥杯 2023 国 B] AB 路线 (BFS)
  • 事务传播行为详解