安装
三种安装方式:发行包、源码构建、Docker。三者产物相同——一个 web/(面板)与一个 daemon/(节点)。
从发行包安装
GitHub Releases 上为每个版本提供不同平台的压缩包,统一使用 elementspanel_* 前缀命名,解压后顶层目录为 elementspanel/。
- Linux
-
下载
elementspanel_linux_release.tar.gz(或只含面板/只含节点的变体),解压后:tar -xzf elementspanel_linux_release.tar.gz cd elementspanel/ # 安装运行依赖(仅首次) ./install.sh ./start-daemon.sh # 守护进程 ./start-web.sh # 面板(另一个终端) - Windows
-
下载
elementspanel_windows_release.zip,解压后运行start.bat。压缩包内已附带 Node 20 运行时(node_app.exe),无需另装。
从源码构建
需要 Node.js 20.x。
git clone https://github.com/ElementsPanel/ElementsPanel.git
cd ElementsPanel
# 安装根工作区、common、daemon、panel、frontend 的依赖
./install-dependents.sh # Windows 用 install-dependents.bat
# 构建 daemon / panel / frontend,产物收集到 production-code/
./build.sh # Windows 用 build.bat
构建产物在 production-code/:
production-code/
├── daemon/ # 节点(含 plugins/)
├── web/ # 面板(app.js + plugins/)
│ └── public/ # 前端静态资源
└── ...
把 prod-scripts/linux/(或 prod-scripts/windows/)里的启动脚本拷进发行目录,再按上一节启动即可。build.sh 之后也可以直接用开发模式运行(见下)。
|
Note
|
GitHub Release 工作流还会把 lib-urls.txt 列出的压缩与伪终端辅助程序下载到 production-code/daemon/lib/。如果要把本地构建打成可部署发行包,也要补齐这些文件,并在 Unix 上赋予可执行权限。
|
Docker
官方镜像由 CI 构建并推送到 GitHub Container Registry:
-
ghcr.io/elementspanel/elementspanel-web:<release-tag>—— 面板,暴露23333。 -
ghcr.io/elementspanel/elementspanel-daemon:<release-tag>—— 默认 JDK 21 的节点镜像,暴露24444。 -
ghcr.io/elementspanel/elementspanel-daemon-jdk8:<release-tag>、-jdk11、-jdk17、-jdk21—— 固定 JDK 版本的节点镜像。
<release-tag> 使用 GitHub Packages 中与发行版对应的镜像标签,不要假定仓库一定发布了 latest。
面板容器:
docker run -d --name elementspanel-web \
-p 23333:23333 \
-v /opt/elementspanel/web/data:/opt/mcsmanager/web/data \
-v /opt/elementspanel/web/logs:/opt/mcsmanager/web/logs \
ghcr.io/elementspanel/elementspanel-web:<release-tag>
节点容器(要让面板在容器内创建 Docker 实例,需挂载 Docker socket 并让容器能力可用):
docker run -d --name elementspanel-daemon \
--network host \
-v /var/run/docker.sock:/var/run/docker.sock \
-v /opt/elementspanel/daemon/data:/opt/mcsmanager/daemon/data \
-v /opt/elementspanel/daemon/logs:/opt/mcsmanager/daemon/logs \
ghcr.io/elementspanel/elementspanel-daemon:<release-tag>
|
Tip
|
--network host 下无需也不能依赖 -p 端口映射。仓库内的 example.docker-compose.yml 可作为卷挂载与 Docker socket 的参考,但其中的镜像名仍沿用上游 githubyumao/mcsmanager-*,部署 ElementsPanel 时请换成上面的 GHCR 镜像。
|
|
Caution
|
市场插件在生产容器内直接写入 web/plugins/ / daemon/plugins/,不属于 data/ 卷。重建容器前请记录已安装插件并在新容器中重新安装;若自行持久化整个 plugins/,更新镜像时还必须同步刷新其中的内置插件。
|
开发模式
改代码或开发插件时,不要走构建流程,直接启动三端开发服务:
./install-dependents.sh # Windows 用 install-dependents.bat
npm run dev # 等价于 npm run all
该命令用 concurrently 并行启动 Daemon、Frontend、Panel 三个进程(均为 NODE_ENV=development):
-
前端 Vite 开发服务器默认在
5173,把/api、/socket.io、/upload_files代理到面板的23333。 -
面板与节点以
nodemon运行,修改src/、plugins/或../external会自动重启。 -
开发模式下会额外扫描
external/目录,这是插件开发的工作区。