kata is a lightweight deployment wrapper for Docker that sits somewhere between a hand-written docker-compose.yml and a full platform. It reads a kata-compose.yaml, generates the final .docker-compose.yaml, and deploys the app either via Docker Compose or Docker Swarm. The current implementation focuses on simple per-app layouts, predictable directory structure, and optional HTTP routing through Traefik.
For each app, kata parses a kata-compose.yaml, expands runtime helpers, merges environment variables from config files and service definitions, and writes a generated .docker-compose.yaml into the app directory. It can then launch the stack using Compose or Swarm, attach the routed service to a shared Traefik network, and inject the labels needed for host-based routing. It also manages the standard per-app directories for code, data, config, logs, virtualenv/runtime state, and git bare repositories.
Auto-selects Docker Compose or Docker Swarm per application, with an override when you need one mode explicitly.
Generate Traefik labels from a compact traefik: block and route apps through a shared reverse proxy on the traefik-proxy network.
Builds lightweight runtime images on demand for Python, Node.js, PHP, Bun, and static assets instead of making every app hand-roll the same boilerplate.
Creates and uses predictable paths for code, data, config, logs, env/runtime state, and git repositories under KATA_ROOT.
Includes helper commands for Swarm secrets, Traefik inspection, mode switching, and simple git push deployment hooks.