数据与配置

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

面板与节点的配置、用户和实例状态主要放在各自的 data/ 目录下,实体默认是普通 JSON 文件,也可选用 Redis。市场插件在生产环境安装到 plugins/,日志在同级 logs/,完整迁移时也要一并处理。

面板:web/data/(源码仓库为 panel/data/)

路径 内容

SystemConfig/config.json

站点主配置(端口、路径前缀、语言、Redis、SSL、外观等),见下表。

AuthSettings/config.json

登录与权限策略:登录提示、loginCheckIp、totpDriftToleranceSteps、allowChangeCmd、canFileManager、allowJavaManager,以及 SSO/OIDC 相关字段。

MarketSettings/config.json

市场设置:presetPackAddr(实例包目录源)、allowUsePreset 与 pluginMarketAddr(插件市场地址)。

RemoteServiceConfig/<uuid>.json

每个已连接节点一条:ip、port、apiKey、connectOpts、remoteMappings、brand。

User/<uuid>.json

用户账号:密码哈希、权限级别、API Key、实例授权。

plugin-overrides.json

插件开关与配置覆盖,见下文。

market-installs/

面板记录已下发到哪些节点的市场插件安装信息;插件文件本身不在这里。

desktop_layouts/<user-uuid>.json

桌面模式的窗口布局(桌面模式)。

operation_logs/global.jsonl

操作审计日志。

Announcement/current.json

当前公告。

market_cache.json、current-version.txt

市场缓存与版本标记。运行日志位于同级 web/logs/(源码仓库为 panel/logs/)。

SystemConfig 常用字段

字段 默认 说明

httpPort

23333

面板监听端口。

httpIp

监听地址,留空为所有网卡。

dataPort

23334

保留的兼容字段;当前运行时没有单独监听该端口。

prefix

路径前缀,用于与其他服务共用端口(启用 HTTPS)。

reverseProxyMode / reverseProxyHeader

X-Real-IP

反向代理模式下从哪个头取客户端 IP。

crossDomain

CORS 跨域。

gzip / maxCompress / maxDownload / zipType

压缩与下载限制。

language

面板语言。

redisUrl

配置后实体存储改用 Redis;留空用文件。

ssl / sslPemPath / sslKeyPath

内置 HTTPS。

pageTitle / logoImageLight / logoImageDark / backgroundImage

站点标题、亮/暗色 Logo 与背景;logoImage 仍用于兼容旧配置。

节点:daemon/data/

路径 内容

Config/global.json

节点主配置,见下表。

InstanceConfig/<uuid>.json

每个实例的配置(启动命令、目录、内存、Docker 等);global0001.json 为新实例的全局模板。

InstanceData/<uuid>/

实例的工作目录,即服务端文件所在处。

TaskConfig/<uuid>_<n>.json

计划任务。

JavaData/

由面板 Java 管理功能下载/安装的 JDK。

backups/

实例备份(路径由 instanceBackupPath 决定)。

节点的辅助二进制与运行日志不在 data/:它们分别位于同级 daemon/lib/ 与 daemon/logs/。

Config/global.json 常用字段

字段 默认 说明

ip / port

24444

节点监听地址与端口。

key

自动生成

面板接入用的 API Key(连接其他机器)。

prefix

路径前缀。

language / followPanelLanguage

节点语言,是否跟随面板。

defaultInstancePath

新实例默认目录。

defaultJavaDataPath

Java 安装目录。

instanceBackupPath / instanceBackupFormat / instanceBackupCompressionLevel / instanceBackupMaxSize

备份路径、格式、压缩级别与大小上限。

allocatablePortRange / currentAllocatablePort / portAssignInterval

[10010, 65500]

自动分配实例端口。

uploadSpeedRate / downloadSpeedRate

上下行限速。

outputBufferSize

终端输出缓冲。

whiteListPanelIp / whiteListPanelIps

false / 本机地址

是否启用、以及允许接入的面板 IP 白名单。

ssl / sslPemPath / sslKeyPath

节点内置 HTTPS。

在哪里改配置

不要习惯性地直接改 JSON——面板提供了统一的配置入口:

插件页面里,每个插件都带有自己的设置表单。面板插件的设置由该插件在后端声明(字段、读取、校验写入),节点插件的设置也由节点声明、由面板渲染。语言切换时表单标签会随之更新。校验逻辑只有一份,位于声明方的 write() 中。

直接编辑 JSON 文件也是允许的,但大多数配置需要重启对应进程才会生效。

插件覆盖项 plugin-overrides.json

插件包的 plugin.json 提供默认值;用户的选择写入 data/plugin-overrides.json:

{
  "version": 1,
  "plugins": {
    "example": { "enabled": true, "config": { "interval": 30 } }
  }
}

规则:

  • 覆盖项里的 config 会整体替换插件自带的 config 对象;完全省略 config 才会沿用包内默认值,覆盖对象内部不会逐字段合并。

  • enabled 覆盖插件默认开关。

  • 禁用或更新插件不会修改插件包自身的清单文件。

  • 覆盖文件格式非法时会明确报错,而不是静默放行。

  • 管理接口的写入按进程内单一队列原子进行;手工编辑文件在重启后生效。

备份与迁移

  • 备份面板状态至少要备份 web/data/;备份节点状态至少要备份每台被控机的 daemon/data/(实例文件与备份都在里面)。

  • 若使用市场插件,还要备份或重新安装 web/plugins/ 与各节点 daemon/plugins/ 中带 .market-install.json 的目录;开发环境对应 data/plugins/。

  • 迁移到新机器时,程序文件、data/、所需市场插件与可选的 logs/ 一起搬过去;plugin-overrides.json 会保留用户的插件开关。

  • 启用 Redis 时,实体数据存到 Redis,配置文件仍在 data/,两者都要纳入备份。