Project

kata

active

Tiny micro-PaaS wrapper around Docker Compose or Swarm with implicit Traefik routing and git-push deploy hooks.

Overview

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.

How it works

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.

Features
🐳
Compose or Swarm deploys

Auto-selects Docker Compose or Docker Swarm per application, with an override when you need one mode explicitly.

🌐
Optional Traefik routing

Generate Traefik labels from a compact traefik: block and route apps through a shared reverse proxy on the traefik-proxy network.

🧱
Runtime image helpers

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.

🗂
Standard app layout

Creates and uses predictable paths for code, data, config, logs, env/runtime state, and git repositories under KATA_ROOT.

🔐
Secrets and deploy helpers

Includes helper commands for Swarm secrets, Traefik inspection, mode switching, and simple git push deployment hooks.

Architecture
kata-compose.yaml app definition kata wrapper expand helpers + merge config Runtime helpers Python · Node · PHP · Bun Generated compose .docker-compose.yaml App layout code · data · config · logs Deploy Compose / Swarm optional Traefik routing and deploy hooks sit on top of a predictable per-app Docker layout
Posts
Go (lang)