Move persistent staging off port 3100 to avoid Loki conflict

Loki binds 10.0.0.2:3100 on the vSwitch interface so the BRouter host can
ship logs in. Persistent staging was trying to publish 0.0.0.0:3100 which
conflicts because Linux refuses 0.0.0.0:<P> when any specific-interface
:<P> is already in use. Move staging journal to 3110, planner to 3111.

PR previews are unaffected — they're already on 3200+2N.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
Ullrich Schäfer 2026-05-03 22:38:38 +02:00
parent c703bf4c76
commit 34711550fc
No known key found for this signature in database
GPG key ID: A32FF691A0F752D9
2 changed files with 7 additions and 4 deletions

View file

@ -106,8 +106,11 @@ jobs:
{
echo "DOMAIN=staging.trails.cool"
echo "STAGING_DATABASE=trails_staging"
echo "JOURNAL_HOST_PORT=3100"
echo "PLANNER_HOST_PORT=3101"
# Loki binds 10.0.0.2:3100 on the vSwitch interface, so the
# staging stack can't share 3100 — see CLAUDE.md "Staging &
# Previews" port table.
echo "JOURNAL_HOST_PORT=3110"
echo "PLANNER_HOST_PORT=3111"
echo "JOURNAL_IMAGE_TAG=staging"
echo "PLANNER_IMAGE_TAG=staging"
echo "SENTRY_RELEASE=${{ github.sha }}"

View file

@ -229,8 +229,8 @@ A persistent staging stack and ephemeral PR previews share the flagship server w
PR previews are **journal-only** — their `PLANNER_URL` points at the persistent staging planner so we don't pay 256MB per preview for an extra planner. The persistent staging planner's CSP allows `connect-src wss://*.staging.trails.cool` so PR-preview journals can talk to it.
**Port scheme** (host's loopback, reverse-proxied by Caddy via `host.docker.internal`):
- Persistent staging: journal `3100`, planner `3101`
**Port scheme** (host-published, reverse-proxied by Caddy via `host.docker.internal`):
- Persistent staging: journal `3110`, planner `3111` (3100 collides with Loki on the vSwitch interface)
- PR `<N>` preview: journal `3200 + 2N`, planner `3201 + 2N` (planner unused for previews)
**Compose project namespacing** keeps each preview isolated: