Install
openclaw skills install proxy-managerManage the shared nginx-proxy Docker container and its network connections. Auto-discovers app containers via VIRTUAL_HOST labels. Start this first — it creates the shared Docker network used by mysql-manager and worktree-manager.
openclaw skills install proxy-managerManages 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.
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.
./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
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:
./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:
./run.sh auto-connect
./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 routing| Variable | Default | Purpose |
|---|---|---|
PROXY_CONTAINER | codai_nginx_proxy | nginx-proxy container name |
CODAI_NETWORK | nginx-proxy_net | Shared Docker network name |
PROJECT_PREFIX | codai-dev | Docker 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)