Native macOS · free & open source

Each project in its own clean Docker environment.

Kegger describes a project's whole development environment — its services, versions, ports and variables — from a form, then writes and runs the docker-compose for you. It waits until the stack is genuinely ready, and removes it cleanly when you're done.

macOS 15+·Apple Silicon·GPL-3.0

The Kegger window: a running Laravel project named Example, with its services, a one-click Open database button, Local HTTPS, public sharing, volume usage and project folder.

What's a Keg?

A Keg is one project's environment, described declaratively: its services, versions, ports and variables. Kegger turns it into a docker-compose stack, so you never hand-write YAML — yet the file stays readable on disk, and your project code is never touched.

It waits until it's really ready

Pressing Start builds the stack, pulls images and boots every service while a live progress view shows what's happening. Databases gate on a health check first, so you don't hit “connection refused” on the first boot.

  • Health-gated boot — the app starts only once its database passes a check.
  • Live progress — image pulls, builds and per-service status, as they happen.
  • Free ports — several Kegs run side by side, each assigned its own ports.
Kegger showing a Preparing the app progress bar with app, mariadb, redis and mailpit each turning ready.

Start from a recipe

Three starting points, each a complete stack that stays editable afterwards.

L

Laravel

PHP · MariaDB · Redis · Mailpit

A Sail-grade PHP stack. Choose the PHP version and toggle the extras you use:

Vite / HMR Queue worker MinIO (S3) Meilisearch
W

WordPress

WordPress · MariaDB · Mailpit

Boots fully installed and ready to log in, with no setup wizard.

Auto-install admin / admin Mailpit capture
C

Custom

Any image · pick services

Point it at any Docker image, expose a port, and add databases or other services from a catalog.

Any image Databases & caches Env & ports
The Add a service sheet: a catalog of databases, caches, message queues and more, each with sensible defaults.

Everything within reach while it runs

Once a Keg is serving, the things you reach for are one click away — no terminal archaeology, no remembering ports.

  • Database in one click — Adminer opens on the Keg's network, pre-filled; export or import a .sql dump.
  • Local HTTPS — serve a Keg at a trusted https://<name>.test address.
  • Share a preview — put a running Keg on a temporary public URL, then turn it off.
  • Logs & shell — follow color-coded output live, or open a shell in the app container.
The Logs tab streaming color-coded output for a running Keg.

Three steps

From nothing to a running stack, then back to a clean machine.

  1. 1

    Create or import a Keg

    From a recipe, an existing project folder, or a GitHub URL.

  2. 2

    Press Start

    Kegger spins up the isolated stack and waits until it's actually ready to open.

  3. 3

    Work, then tear down

    Open the app, the database or a shell — then remove everything cleanly. Your code is never touched.

Getting Kegger

It's free and open source. One command installs the app and everything it runs on — colima, the Docker CLI, Compose, mkcert and cloudflared:

$ brew install --cask fdagosta/tap/kegger

Requires Homebrew and macOS 15 (Sequoia) or later on Apple Silicon. Updating is brew upgrade --cask kegger — Kegger quietly tells you when a new version is out, and never downloads anything on its own.