通用目录结构
所有 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 内部打开)
要求
- 应用文件安装到
/usr/local/<app_id>/。 <app_id>.lang文件名必须与config.ini.id对应。- 图标文件路径必须与
config.ini.icon对应。 - systemd 服务单元 ID 必须与
config.ini中的system_id一致。 - deb 元数据中的二进制包名
Package必须与config.ini中的package一致。 - 服务必须能通过
<system_id>.service启动、停止和查询状态。