Skip to main content

Configurable desktop launcher for Docker-based applications

Project description

docker-app-launcher

Configurable desktop launcher for Docker-based applications. One persistent window. It opens, shows progress, and never closes itself — no dialog chains.

CI PyPI Python License: MIT

🇩🇪 Deutsche Version

Quick Start

pip install docker-app-launcher

Python API (3 lines)

from docker_app_launcher import LauncherConfig, launch

launch(LauncherConfig(
    app_name="My App",
    container_name="my-app",
    default_port=8080,
))

CLI

docker-app-launcher --config launcher.json   # open the window
docker-app-launcher --status                  # print state and exit
docker-app-launcher --install --port 9000     # build + start headless
docker-app-launcher --check                   # is Docker running?

launcher.json

Everything is configurable. Only app_name is required — the rest is derived (slug, container/image names, compose project, config dir) or defaulted.

{
  "app_name": "My App",
  "container_name": "my-app",
  "default_port": 8080,
  "compose_file": "docker-compose.prod.yml",
  "install_dir": "/opt/my-app",
  "health_check_path": "/api/health",
  "health_check_key": "status",
  "health_check_value": "ok",
  "repo_url": "https://github.com/owner/repo",
  "locale": "en"
}

Features

  • One persistent window — never closes itself; only the X closes it.
  • Docker check on startup — distinguishes not installed / running / stopped / no Docker.
  • Live build progress — the Docker build is streamed line-by-line into the window.
  • Configurable port — editable in the GUI and via --port, validated and persisted (to launcher.json and .env).
  • Verified actions — install runs a health check; uninstall re-lists the containers to confirm they are gone.
  • Install manifest + startup cleanup — finds and offers to remove stale leftovers of older installs.
  • Verbose uninstall / cleanup — every step reported with a ✓ / ✗ result.
  • System tray (optional) — pip install docker-app-launcher[tray]; the window minimizes to the tray while running.
  • DE / EN i18n — with per-app custom-string overrides via custom_strings.
  • Actions architecture — all business logic is GUI-free and unit-tested without a display.
  • CLI ↔ GUI parity — both call the exact same actions layer.

Architecture

Module Responsibility
config.py LauncherConfig dataclass — the single source of truth.
actions.py All business logic. No tkinter. Fully testable.
gui.py LauncherApp(tk.Tk) — a thin window over the actions.
tray.py Optional system tray (pystray + Pillow).
i18n.py DE/EN strings with custom-string overrides.
__main__.py CLI entry point + GUI router.

Configuration reference

See LauncherConfig for the full field list (app identity, network/health, Docker timeouts, paths, GUI, links, cleanup, tray, i18n, and lifecycle callbacks).

Development

poetry install --with dev --all-extras
make ci        # lint + format-check + typecheck + tests
make test      # tests with coverage
make fix       # auto-fix lint + format

Used by

License

MIT © Asterios Raptis

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

docker_app_launcher-0.2.0.tar.gz (33.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

docker_app_launcher-0.2.0-py3-none-any.whl (38.6 kB view details)

Uploaded Python 3

File details

Details for the file docker_app_launcher-0.2.0.tar.gz.

File metadata

  • Download URL: docker_app_launcher-0.2.0.tar.gz
  • Upload date:
  • Size: 33.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/2.4.1 CPython/3.11.13 Linux/7.0.0-22-generic

File hashes

Hashes for docker_app_launcher-0.2.0.tar.gz
Algorithm Hash digest
SHA256 c33187a2d459088fecf3327e26f2ab3a7fb73ca33a6d1dc5a72ef61d10227d08
MD5 707c1d948efffce018ed648ec668af4a
BLAKE2b-256 f6157bafbfa6bae85f79445f39e9a0fe9a3b9d57b6428c9c709702c4e7cdea3c

See more details on using hashes here.

File details

Details for the file docker_app_launcher-0.2.0-py3-none-any.whl.

File metadata

  • Download URL: docker_app_launcher-0.2.0-py3-none-any.whl
  • Upload date:
  • Size: 38.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/2.4.1 CPython/3.11.13 Linux/7.0.0-22-generic

File hashes

Hashes for docker_app_launcher-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 1fdecd87386dad8fbd0665897de3b3358737081b1fc1a23986f1fafe4c07a72d
MD5 edbba8862c3d1a477bd2bb4358dcbff3
BLAKE2b-256 51fa3d3e103216635327a9893a23e4a01f9f8a2e969b4ee5f225e638fffc2b92

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page