Programs
Unified Launcher
The single entry point that bootstraps every KillTheHost service and serves the control panel on http://localhost:5000.
Overview
The launcher is a Python script that orchestrates docker compose under the hood. When you run ./launch.sh (or launch.bat on Windows), it:
- Verifies that the docker daemon is reachable.
- Pulls service images (first run only) and applies any pending database migrations.
- Starts each program in dependency order:
DB-3NGIN3→MAIL-SRVR→PHP-MNGR→STAX-MNGR. - Serves the control panel at
http://localhost:5000. - Optionally opens a Cloudflare tunnel and synchronizes Namecheap DNS records if those integrations are enabled.
Service lifecycle
The launcher is long-running and acts as a supervisor. Send SIGTERM (Ctrl+C) to trigger a graceful shutdown — each program drains pending work and then exits.
CLI flags
| Flag | Description |
|---|---|
--stop | Stops every KillTheHost service and exits. |
--restart | Stop and then start everything again, useful after upgrades. |
--pull | Pulls the latest service images without starting them. |
--prune | Removes unused KillTheHost docker images and volumes. |
--port <n> | Override KTH_PORT for this run only. |
--debug | Equivalent to KTH_LOG_LEVEL=debug. |
$./launch.sh --restart --debug$./launch.sh --port 5173Control panel
The control panel is the browser-based UI served by the launcher. It is the recommended way to interact with KillTheHost — nothing needs to be edited by hand.
Panel tabs
- Dashboard — health of each program, current tunnel status, DNS sync status, recent log lines.
- Projects — manage PHP projects via PHP-MNGR.
- Databases — create and browse instances across five engines via DB-3NGIN3.
- Mail — mailbox management and DKIM/SPF/DMARC status via MAIL-SRVR.
- Stacks — import, start, stop and monitor docker compose stacks via STAX-MNGR.
- Integrations — configure Cloudflare and Namecheap credentials.
- Settings — panel port, log level, update schedule.
Logs & health
All services stream into the launcher’s console. Per-service logs are also written to disk:
data/logs/├─ launcher.log├─ db-3ngin3.log├─ php-mngr.log├─ mail-srvr.log├─ stax-mngr.log└─ cloudflared.logThe panel exposes a one-click Download logs button that packages these files into a single zip — paste the archive when you file a GitHub issue.