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.

Related background: Go.

Motivation

I wanted something like piku but to help me manage only Docker containers, and there was nothing out there that was simple enough to read in 30m.

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