I work at a software agency where I constantly have to deal with microservices and projects split across multiple repositories (e.g., Frontend, Backend API, Auth Service). Every morning, I found myself doing the same chore: opening multiple terminal tabs, navigating to different directories, and running `docker-compose up -d` or `npm run dev` one by one.
It was tedious, so I built *mdc (Multi-Docker-Compose)* to solve this exact problem.
*What it does:* `mdc` lets you define all your cross-repository commands in a single YAML file and orchestrates them with a single command: `mdc up`.
*Key features:* * *Parallel & Sequential Execution:* Boot up your entire stack concurrently, or sequentially if you have strict dependencies. * *Background Process Management:* It doesn't just run `docker-compose`. You can daemonize long-running foreground tasks like `npm run dev` (using `background: true` in the YAML) and easily monitor them with `mdc procs`. * *Clean UI:* Color-coded outputs and emojis to instantly see which project is failing or starting. * *Zero Dependencies:* Written in Go, distributed as a single binary. (This was actually my very first Go project!)
You can check it out here: https://github.com/tominaga-h/multi-docker-commander
I'd love to hear your feedback, thoughts on the architecture, or if you've faced similar local-dev nightmares. Happy to answer any questions!