podup - docker-compose, translated to rootless Podman

by
podup runs your existing docker-compose.yml on rootless Podman. It speaks Podman's native libpod API, so there is no daemon, no Python and no root: one static Rust binary. It implements the Compose Specification (anchors, extends, include, profiles, env_file, variable substitution) with dependency-aware startup, healthchecks, replicas, secrets, configs and a watch mode. Any stack exports to systemd Quadlet units. Signed releases for Linux, macOS and Windows, from apt, Homebrew or Scoop.

Add a comment

Replies

Best
Maker
📌
I built podup while moving my own stacks from Docker to rootless Podman, because I wanted the docker-compose.yml files I already had to keep working unchanged. It talks to Podman's libpod REST API directly instead of shelling out to the CLI, so there is no daemon and no Python runtime: one static Rust binary. It covers the Compose Specification fairly widely (anchors, extends, include, profiles, env_file, variable substitution, depends_on conditions, replicas, secrets, configs, develop.watch), and it can export any stack to systemd Quadlet units when I want the services to come back after a reboot. It needs rootless Podman 5.0 or newer. Linux, macOS and Windows, signed releases, MIT. Happy to answer questions about the compose coverage, or about where it still falls short.