Interactive CLI that scaffolds backing-service Docker Compose stacks — databases plus their matching admin UIs — into a ready-to-run docker-compose.yaml and .env in one command.
Stop copy-pasting the same Postgres+pgAdmin block between projects. Run composeup init, answer a few prompts, then docker compose up -d.
| Database | Admin UI |
|---|---|
| PostgreSQL | pgAdmin |
| MySQL | Adminer |
| MongoDB | Mongo Express |
| Redis | RedisInsight |
# Homebrew
brew install seifkhaled123/tap/composeup
# Shell installer (no dependencies)
curl -LsSf https://github.com/seifkhaled123/composeup/releases/latest/download/composeup-installer.sh | sh
# Cargo
cargo install composeupcomposeup init # interactive
composeup init --yes # Postgres + pgAdmin with defaults
composeup init --dry-run # print files to stdout, write nothing
composeup init --out ./infra # write into ./infra
composeup init --force # overwrite existing filesAfter running, bring everything up:
docker compose up -d- Every compose service is generated from a typed Rust struct — never string-concatenated YAML.
- All secrets and ports live in
.env; the compose file references them as${VAR}. - Default image tags are pinned major versions (e.g.
postgres:16), exposed as*_VERSIONenv vars so you can bump in one line. - If a host port is already in use,
composeupauto-increments to the next free port and reports the reassignment.
See docs/prd.md for the full specification.
MIT — see LICENSE.