Manages the shared nginx-proxy Docker container ( jwilder/nginx-proxy) and the Docker network ( nginx-proxy_net) used by all dev instances.
The proxy auto-discovers containers with VIRTUAL_HOST labels and creates routes. It also owns the shared Docker network that allows MySQL and app containers to communicate.
text
proxy-manager/
├── docker-compose.yml # nginx-proxy container + codai_net network
└── run.sh # lifecycle + network connection CLI
Start order: proxy-manager first (creates the network), then mysql-manager, then worktree-manager.
bash
./run.sh start # start nginx-proxy (creates codai_net network)
./run.sh stop # stop nginx-proxy
./run.sh status # show status, connected networks, active routes
./run.sh connect <instance> # connect proxy to instance's Docker network
./run.sh disconnect <instance> # disconnect proxy from instance network
./run.sh auto-connect # connect proxy to ALL project networks
./run.sh reload # reload nginx config without restart
bash
cd proxy-manager && ./run.sh start
Creates the shared nginx-proxy_net Docker network and starts the proxy on port 80.
After worktree-manager start <name>, connect the proxy so routes become available:
bash
./run.sh connect <name>
Routes: http://<name>.frontend.localhost and http://<name>.backend.localhost
Proxy reconnects automatically via restart: unless-stopped. If routes are missing, run:
bash
./run.sh auto-connect
bash
./run.sh status
proxy-manager start — creates network, starts proxymysql-manager start — joins the shared networkworktree-manager start <instance> — starts app containersproxy-manager connect <instance> — activates routingVariableDefaultPurposePROXY_CONTAINER``codai_nginx_proxynginx-proxy container nameCODAI_NETWORK``nginx-proxy_netShared Docker network namePROJECT_PREFIX``codai-devDocker Compose project prefix
VIRTUAL_HOST=<name>.frontend.localhost as a labeljwilder/nginx-proxy reads Docker socket events and generates nginx config./run.sh connect <instance> connects proxy to the instance's network/var/run/docker.sock:ro to auto-discover containers. This is required for VIRTUAL_HOST routing but grants the container read access to Docker daemon state. Only run on trusted development machines.127.0.0.1 — routes are reachable from the host only, not from other machines on the network.jwilder/nginx-proxy:1.3.1. Review image updates before pulling a newer tag.worktree-manager start <name>, always run proxy-manager connect <name> to activate routes.auto-connect only connects to networks matching PROJECT_PREFIX and requires confirmation — use connect <instance> for targeted single-instance connections.stop does NOT remove the Docker network. Other containers on the network remain reachable.restart: unless-stopped — it survives Docker daemon restarts. Run ./run.sh stop when done.mysql-manager — shared MySQL container (start after proxy-manager)worktree-manager — app instances and git worktrees (start after both)