127.0.0.1:5173.
You need a domain pointing at the server and a valid TLS certificate. The paths below assume a certificate for kaneo.example.com already exists. Obtain one with your certificate manager before enabling the HTTPS server block.
Configure one public origin
Set this in Kaneo’s.env:
KANEO_API_URL unset for the bundled image. It serves the web app and /api through the same public origin.
Trust the proxy chain
ConfigureTRUSTED_PROXIES for this host-Nginx setup before serving traffic. Requests pass through host Nginx, Docker’s published port, and the bundled Nginx before reaching the API. The API trusts loopback by default, but the bundled Nginx also appends its Docker-side peer address. Without trusting that hop, visitors can share the gateway address in session records and IP-based rate limits.
Find the gateway for the Kaneo container’s network:
172.19.0.1, add this to .env, replacing the example address with your actual gateway:
Configure Nginx
Save this in your Nginx site’s configuration. Themap belongs in the http context, outside the server blocks; on a standard Debian or Ubuntu installation, sites-enabled is included there.
Check the public URL
Other network layouts
If Nginx runs in another container,127.0.0.1 refers to that proxy container. Put it on the same Docker network as Kaneo and use http://kaneo:5173 as the upstream.
Configure TRUSTED_PROXIES for this different proxy chain so client addresses remain correct. Trust only the proxy addresses or a dedicated proxy subnet.
If you deliberately host the API and web app separately, set their public URLs explicitly and configure allowed origins. The one-domain setup above does not require exposing port 1337.
For uploads, give Silo its own HTTPS hostname pointing to its S3 API.