From 74fb2dca1d03db22044d0dd64fbe6c45ecf390dc Mon Sep 17 00:00:00 2001 From: peanutsplit-steward Date: Wed, 2 Sep 2026 12:40:25 +0200 Subject: [PATCH] Warn in the Baseline that a non-default origin needs a rebuild MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Clean-machine smoke (2026-09-02, publication-gate item): a fresh public clone builds and serves a working instance first try — migrations apply, both containers go healthy, and POST /api/rooms returns 201 — but only at the origin baked at build time. Published on any other port, the canonical-origin redirect 308s every request, API included, to the dead default, and the Baseline section gave no hint why. The Configuration section already explains the build argument; this links the trap to the steps that spring it. Ordered-By: Hugo0 Order: https://github.com/peanutprotocol/peanutsplit/blob/main/ops/steward/HANDOFF-2026-09-02-showhn.md --- docs/current/SELF-HOSTING.md | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/docs/current/SELF-HOSTING.md b/docs/current/SELF-HOSTING.md index 85ea3300..75d4f733 100644 --- a/docs/current/SELF-HOSTING.md +++ b/docs/current/SELF-HOSTING.md @@ -18,6 +18,11 @@ docker compose up --build ``` The application listens on port 3000 and the development database is published on host port 5433. +Serve the app at exactly the origin it was built for: the image bakes `NEXT_PUBLIC_BASE_URL` +(default `http://localhost:3000`) as its canonical origin and 308-redirects every request — +including the API — that arrives under any other host or port. Publishing the container on a +different port, or fronting it with another hostname, therefore requires passing the matching +`NEXT_PUBLIC_BASE_URL` build argument and rebuilding, as described under Configuration classes. Do not expose that database port on a public host. The supplied Compose path explicitly starts with `SEO_INDEXABLE=false` and `SPLIT_FX_MODE=static`: it neither advertises the official site's released guides nor calls an FX service by default.