Skip to main content

通用目录结构

所有 Deb 应用的文件安装到 /usr/local/<app_id>/ 目录下:

/usr/local/<app_id>/
├── config.ini # 【必填】应用核心配置文件
├── bin/
│ └── <binary_name> # 【必填】后端可执行文件
├── <app_id>.lang # 【必填】多语言配置文件
├── images/
│ └── icons/
│ └── <icon_file>.svg # 【必填】应用图标
├── init.d/
│ └── <system_id>.service # 【必填】Systemd 服务单元文件
├── webui.bz2 # 【WebUI 应用必填】前端页面压缩包
├── nginx/ # 【仅外部打开需要】
│ └── <app_id>.conf # Nginx 配置文件
├── <app_id>.env # 【可选】环境变量配置文件
└── depends/ # 【可选】依赖文件目录
├── bin/ # 可执行文件
├── lib/ # 动态库 (.so)
├── etc/ # 配置文件
├── data/ # 运行数据(数据库/缓存/状态)
└── logs/ # 日志

强制对应关系:

config.ini.id              == <app_id>
config.ini.package == DEBIAN/control 中的 Package
config.ini.system_id == systemd 服务单元 ID(不含 .service 后缀)
config.ini.icon == "/images/icons/<icon_file>.svg"
config.ini.path == "/<app_id>/"(WebUI 内部打开)
要求
  1. 应用文件安装到 /usr/local/<app_id>/
  2. <app_id>.lang 文件名必须与 config.ini.id 对应。
  3. 图标文件路径必须与 config.ini.icon 对应。
  4. systemd 服务单元 ID 必须与 config.ini 中的 system_id 一致。
  5. deb 元数据中的二进制包名 Package 必须与 config.ini 中的 package 一致。
  6. 服务必须能通过 <system_id>.service 启动、停止和查询状态。