Run your whole multi-repository stack as many times as you need, side by side, on one machine. Every copy gets its own branch, its own containers and its own hostnames.
multiversectl runs several complete copies of a multi-repository project, called universes, on one machine — numbered, or named after the branch they check out — so each branch or agent gets a whole environment without port collisions. It namespaces instead of virtualizing: one git worktree per repository, one container-runtime project per app, and one shared reverse proxy that routes by hostname. A new universe is a worktree and a compose up, seconds on the daemon and image cache you already use.