Skip to main content

General Directory Structure

All Deb application files are installed under the /usr/local/<app_id>/ directory:

/usr/local/<app_id>/
├── config.ini # 【Required】Core application configuration file
├── bin/
│ └── <binary_name> # 【Required】Backend executable
├── <app_id>.lang # 【Required】Multilingual configuration file
├── images/
│ └── icons/
│ └── <icon_file>.svg # 【Required】Application icon
├── init.d/
│ └── <system_id>.service # 【Required】Systemd service unit file
├── webui.bz2 # 【Required for WebUI applications】Frontend page archive
├── nginx/ # 【Required only for external open】
│ └── <app_id>.conf # Nginx configuration file
├── <app_id>.env # 【Optional】Environment variable configuration file
└── depends/ # 【Optional】Dependency file directory
├── bin/ # Executable files
├── lib/ # Dynamic libraries (.so)
├── etc/ # Configuration files
├── data/ # Runtime data (databases/cache/state)
└── logs/ # Logs

Mandatory Correspondences:

config.ini.id              == <app_id>
config.ini.package == Package in DEBIAN/control
config.ini.system_id == systemd service unit ID (without .service suffix)
config.ini.icon == "/images/icons/<icon_file>.svg"
config.ini.path == "/<app_id>/" (WebUI Internal Open)
Requirements
  1. Application files are installed to /usr/local/<app_id>/.
  2. The <app_id>.lang filename must correspond to config.ini.id.
  3. The icon file path must correspond to config.ini.icon.
  4. The systemd service unit ID must match system_id in config.ini.
  5. The binary package name Package in the deb metadata must match package in config.ini.
  6. The service must be able to be started, stopped, and queried for status via <system_id>.service.