SubDock is a native desktop application for running a packaged Sub-Store backend and opening its local management UI. It supports Linux, Windows, and macOS packaging.
- A local Backend runtime with packaged Node.js, frontend, and HTTP-META resources.
- A desktop dashboard for runtime status, management, logs, component updates, and settings.
- Tray controls, launch-at-login, and an optional start-hidden-to-tray preference.
- Per-user configuration, logs, backups, component state, and staging data.
This project uses FVM. Prepare the packaged resources for the target platform before running the desktop app.
Install the native development libraries (Debian/Ubuntu):
sudo apt-get install -y libgtk-3-dev libx11-dev libxi-dev libwebkit2gtk-4.1-devGTK, X11, and Xi development libraries are also required for flutter test,
which compiles the tray's native library.
tool/prepare_backend.sh
tool/prepare_frontend.sh
tool/prepare_runtime.sh linux-x64
tool/prepare_http_meta.sh linux-x64
fvm flutter run -d linuxUse the matching runtime target when preparing resources:
tool/prepare_runtime.sh windows-x64
tool/prepare_runtime.sh darwin-arm64
# or
tool/prepare_runtime.sh darwin-x64Also prepare the backend, frontend, and HTTP-META resources for that target before building or running it.
fvm flutter analyze
fvm flutter testThe preparation scripts download the published Backend, Frontend, Node.js, and
available Shoutrrr resources into .subdock/. Those resources are then copied
into the platform bundle during packaging. The preparation scripts accept
SUBDOCK_*_VERSION environment variables to pin release inputs.
CI builds Linux DEB/RPM/AppImage and Arch packages, Windows EXE packages, and macOS DMG packages. Bundle verification is part of each packaging workflow.
For contribution-specific architecture, safety invariants, and code-editing rules, see AGENTS.md.