chore(infra): ephemeral gate port + deploy overlay

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
Giancarmine Salucci
2026-07-08 01:40:10 +02:00
co-authored by Claude Fable 5
parent 204848ddae
commit 37e877b3c2
2 changed files with 27 additions and 7 deletions
+16 -7
View File
@@ -1,18 +1,27 @@
# Software-house outcome-gate scaffold.
#
# No `container_name` and no anonymous/random host port: `app`'s host port is a
# stable, project-specific mapping (4173) that will not collide with the gate
# running this stack under a `-p <project>` prefix alongside a live deployment —
# both instances share the same compose.yaml, isolated by project name, and the
# gate/orchestrator polls this exact port for the health check (toolchain
# health_url must match).
# No `container_name`: the gate runs this stack under a `-p <project>` prefix,
# isolated by project name from any live deployment sharing this same file.
#
# `app` publishes its port ephemerally (no fixed host port). The gate resolves
# the actual host port at runtime via
# `docker compose -p <proj> -f compose.yaml port app 3000`, builds
# BASE_URL=http://127.0.0.1:<resolvedPort>, and polls BASE_URL + the toolchain
# `health.path` (see toolchain_blob.health = {service, container_port, path}).
# This is what lets the gate run concurrently with a live deployment without a
# host port collision.
#
# For an actual running deployment (e.g. behind Caddy) that needs a stable,
# known host port, use the `compose.deploy.yaml` override, which adds back the
# fixed 4173:3000 mapping:
# docker compose -f compose.yaml -f compose.deploy.yaml up -d --build
services:
app:
build:
context: .
dockerfile: Dockerfile
ports:
- "4173:3000"
- "3000"
# WHISPER_URL/WEBHOOK_BASE_URL/VAPID_*/OUTPUT_DIR/DATA_DIR all have safe
# in-app defaults (see src/lib/server/*.ts) — override via a .env file or
# `environment:` here for a real deployment; nothing is required to boot.