name: next-chair-manager # The management UI (see manager/ at the repo root — its own README # explains why it's a fully separate app). Its own stack, separate from # stacks/infra/compose.yaml, since this is real application code that # gets rebuilt/updated far more often than the off-the-shelf infra # images (MySQL, Caddy) — a code change here shouldn't require touching # the infra stack at all. # # cp manager/.env.example stacks/manager/.env (then fill in real values) # docker compose -f stacks/manager/compose.yaml --env-file stacks/manager/.env up -d --build # # Requires stacks/infra/compose.yaml to already be running (shared MySQL, # Caddy, network). Add a Caddy site for it the same way as any business — # see stacks/infra/sites/.gitkeep — pointed at `next-chair-manager:3000`. services: manager: build: context: ../../manager dockerfile: Dockerfile container_name: next-chair-manager restart: unless-stopped env_file: - .env volumes: - /var/run/docker.sock:/var/run/docker.sock # MUST be mounted at the identical absolute path on both host and # container — see manager/.env.example's STACKS_DIR comment. This # is how the manager writes new business stacks and shells `docker # compose` against them via the socket above. - "${STACKS_DIR}:${STACKS_DIR}" networks: - next-chair-edge networks: next-chair-edge: name: next-chair-edge external: true