更新与重置

更新于 2026-09-29在 GitHub 上编辑

更新前:备份 data

配置、用户、实例、备份与插件覆盖项位于 data/。生产市场插件位于 plugins/,因此更新前请同时备份数据和市场插件:

# 面板
tar czf panel-data-$(date +%F).tar.gz web/data/
tar czf panel-market-plugins-$(date +%F).tar.gz web/plugins/

# 节点(每台被控机都要做)
tar czf daemon-data-$(date +%F).tar.gz daemon/data/
tar czf daemon-market-plugins-$(date +%F).tar.gz daemon/plugins/

plugins/ 备份会同时包含内置插件;真正的市场安装目录可通过其中的 .market-install.json 标记识别。也可以不保留文件,更新后从市场重新安装。

见 数据与配置 了解每个目录具体存了什么。

用发行包更新

用新版本的构建产物覆盖旧文件,保留 data/ 与 logs/:

# 停掉两个进程后
# 解压新版本,替换 daemon/ 与 web/ 下的程序文件
# 保留 web/data、web/logs、daemon/data、daemon/logs
./start-daemon.sh
./start-web.sh

app.js、内置插件与 web/public/ 属于程序文件,应使用新版本。由于生产市场插件也直接位于 plugins/,请采用以下一种方式:把带 .market-install.json 的旧目录合并回新 plugins/,或在更新后从市场重新安装;不要无备份地整目录删除。

Caution
插件开关与插件配置的覆盖项存放在 data/plugin-overrides.json。更新插件包不会清除用户的开关选择。

用源码更新

git pull
./install-dependents.sh   # Windows 用 install-dependents.bat
./build.sh

然后按上一节替换发行目录中的程序文件并重启。开发模式下直接 npm run dev 即可,nodemon 会自动重载。

用 Docker 更新

docker pull ghcr.io/elementspanel/elementspanel-web:<release-tag>
docker pull ghcr.io/elementspanel/elementspanel-daemon:<release-tag>

# 用新镜像重建容器;数据卷(挂载的 data/)保持不变

data/ 卷不会保存生产市场插件。容器重建后应从市场重新安装;若自行挂载了整个 plugins/,还要确保新镜像自带的内置插件没有被旧卷遮蔽。

更新插件

插件有两条更新路径,都不需要重建面板:

  • 内置插件:随发行包一起更新;

  • 市场插件:在插件市场中重新安装/升级;含 Daemon 端的插件只会下发到所选节点。

后端插件代码发生变化时,仍然需要重启对应进程才能生效——浏览器端可以通过面板的刷新操作即时重载,但运行中的 Node 进程不会热替换已加载的模块。

重置

想恢复到全新状态,删除 data/ 目录即可:

rm -rf web/data/*
# 重启后面板会重新生成默认管理员,密码再次仅打印一次
Warning
删除 web/data/ 会删除面板用户、节点连接与面板设置,但不会删除远端节点的 daemon/data/InstanceData/。删除节点自己的 daemon/data/ 才会删除该节点的实例与备份;两者都应先备份。

只想重置面板设置、保留实例,可以只删 web/data/SystemConfig/(源码仓库为 panel/data/SystemConfig/)等具体配置目录,或直接在界面里改回默认值。重置后若不再有用户,首次启动会重新创建管理员 epanel(见 快速开始)。

回滚

保留旧版本压缩包、data/ 备份和当时使用的市场插件即可回滚:还原旧程序文件、数据与对应插件,再启动。跨大版本的配置字段或插件接口可能有增删,回滚后请检查面板、每个节点和插件状态。