Back to homepage
Docker App Packager / Client Deployment Tool

LaunchPack

LaunchPack was built to solve the problem of delivering Dockerized software to clients who should not need to understand Docker, Compose files, ports, services, or local environment setup just to run an application.

It imports existing Docker Compose projects, detects services, ports, and application assets, lets the developer configure packaging settings, validates the project before build, and prepares client ready output for Windows, macOS, and Linux.

The generated packages handle the setup and launch process for the end user, turning a developer oriented Docker project into something that can be installed and started like normal software.

RoleFounder / Lead Engineer
StatusProduct in Development
TypeDevOps / Deployment tooling
Cross-platform App Packaging Docker Compose Client Installers Environment Validation One-click Docker Setup Windows / macOS / Linux Developer Tooling
LaunchPack deployment overview
LaunchPack screenshot 1
LaunchPack screenshot 2
LaunchPack screenshot 3
LaunchPack screenshot 4
LaunchPack screenshot 5
LaunchPack screenshot 6
LaunchPack screenshot 7
LaunchPack screenshot 8
LaunchPack screenshot 9
LaunchPack screenshot 10
Problem

Installing software on a client's machine is very different from deploying to infrastructure you control. Every environment is slightly different: operating system versions, permissions, existing software, Docker availability, security policies, and local configuration can all affect whether the application actually starts.

As a result, getting a client up and running often requires a lot of manual coordination. Someone has to check the machine, install or configure dependencies, troubleshoot environment specific issues, and confirm that everything is working. The same process has to be repeated for every client and revisited whenever the application is updated.

LaunchPack was built to turn that process into something repeatable. Take a Dockerized application and package it into a client ready installer that can validate the environment, handle the required setup, start the application, and reduce the amount of manual work needed to get an application running.

What I Built
  • Docker Compose application packaging: Built a desktop tool that takes an existing Dockerized application, reads its Compose setup, environment files, services, ports, and configuration, and prepares it for client delivery.
  • Cross-platform installer generation: Built packaging flows for Windows, macOS, and Linux, including Windows launchers and installers, macOS app and DMG output, and Linux deployment packages.
  • Environment validation: Added checks for required files, configuration problems, missing values, port issues, and other conditions that could prevent the application from running correctly before a build is prepared.
  • Client launcher: Built the runtime that checks for Docker, starts the Docker engine when needed, launches the Compose application, waits for the required services to become available, and then opens or launches the packaged application. This supports software that runs as a desktop application or background service, not only web applications accessed through a browser.
  • One-click Docker setup: Built a one click setup flow that installs Docker when it is not already available, starts Docker automatically, and prepares the machine to run the packaged application without requiring the client to configure Docker manually.
  • Per application configuration: Built support for application specific environment values, branding, services, ports, launch behavior, application entry points, platform targets, and other deployment settings.
  • Build preparation and validation workflow: Created the Import → Configure → Validate → Build Prep flow, including saved configuration, blocking errors, warnings, and generated build summaries.
  • Diagnostics and support tooling: Added logging and support report output so installation or runtime problems on client machines can be diagnosed without relying only on screenshots or back and forth troubleshooting.
Hard Parts

Hiding Docker from the client. The whole point was that the person installing the software should not need to understand Docker. LaunchPack had to check whether Docker was available, install it when necessary, start it, bring up the application, wait for the required services, and launch the software without asking the client to use a terminal or follow a technical setup guide.

Dealing with machines I don't control. A client machine can have different permissions, ports already in use, missing dependencies, security restrictions, unusual Docker states, or configuration left behind by other software. The installer had to catch as many of those problems as possible before they turned into a failed installation halfway through.

Making one process work across Windows, macOS, and Linux. Each operating system handles installation, paths, permissions, processes, application packaging, and Docker differently. LaunchPack needed one workflow for the developer while producing installers and launch behavior that actually made sense on each target platform.

Making failures possible to diagnose remotely. When software fails on a machine you own, you can inspect it directly. With a client installation, you often cannot. Logging, validation results, and support reports had to provide enough information to understand what went wrong without turning every issue into a long remote troubleshooting session.

Tech Stack
Rust TypeScript React Vite Tauri 2 Zod Docker / Docker Compose
Business Value
  • Reduced client setup work: Instead of manually configuring Docker, dependencies, services, and launch steps for every client, the application could be delivered as a repeatable installer with most of that work handled automatically.
  • Reduced cloud deployment costs and time: Developers did not need to set up and maintain a cloud environment for every client, which could be expensive and time-consuming. They could package the application once and send it directly to the client for installation.
  • Made deployment more consistent: Packaging applications around Docker Compose reduced differences between client environments and made installations easier to reproduce and support.
  • Reduced onboarding and support overhead: Environment checks, automated setup, clear errors, logging, and support reports meant fewer issues had to be diagnosed manually with each new installation.
  • Made client delivery easier to scale: The same packaging process could be reused across different applications and clients instead of creating a new deployment procedure for every machine.
  • Made Dockerized software easier to hand over: Clients could install and run software without needing to understand Docker, use the command line, or follow a long technical setup process. Developers could simply package the application and send it to the client rather than handling every deployment themselves.

Let's build something useful.

I'm open to remote contract, part-time or full-time opportunities where the priority is simple: understand the system, find the bottleneck, and start shipping.

Download CV Send message