Skip to content

seifkhaled123/composeup

composeup

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.

Supported services

Database Admin UI
PostgreSQL pgAdmin
MySQL Adminer
MongoDB Mongo Express
Redis RedisInsight

Install

# 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 composeup

Usage

composeup 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 files

After running, bring everything up:

docker compose up -d

Design

  • 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 *_VERSION env vars so you can bump in one line.
  • If a host port is already in use, composeup auto-increments to the next free port and reports the reassignment.

See docs/prd.md for the full specification.

License

MIT — see LICENSE.

About

No description, website, or topics provided.

Resources

License

Code of conduct

Contributing

Security policy

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages