Resolution order
The first match wins.Changing the address
Set it in.env and recreate the container. No rebuild:
NEXT_PUBLIC_SOCKET_URL value to the container’s
SOCKET_URL, so the variable name in .env has not changed.
Leave the value empty when the client and the signaling server share one
origin behind a reverse proxy. The browser then talks to whatever host it was
loaded from, so there is nothing to configure and nothing to keep in sync.
The address is used by the browser, not the server
Whatever you set has to be reachable from your users’ browsers, not from inside the container.http://localhost:3001 only works when the browser runs on the same
machine as the server. For anything else use the server’s LAN IP or public domain.
What is still build-time
NEXT_PUBLIC_SITE_URL is genuinely build-time. It feeds canonical links, Open
Graph tags, and the sitemap, which are rendered into the page rather than fetched.
That is the one value a shared image cannot carry, because it would have to know
which domain it will be served from before anyone downloads it. So the published
image omits those tags rather than pointing them at floe.one, which would mean
every self-hosted instance advertising somebody else’s site as its canonical.
To put your own domain in them, build the client yourself: