Skip to main content

Reverse proxy & custom domains

Avibe’s Web UI listens on 127.0.0.1:5123. The simplest way to reach it from elsewhere is the avibe.bot tunnel. To front it yourself with your own reverse proxy on a custom domain — for example nginx on https://avibe.example.com — declare your proxy and its public domain as trusted using the two settings below.

Configure

Set both environment variables where the vibe service runs (shell profile, service-manager unit, or container env), then restart Avibe:
Both are required together — with only the proxy IP set, the custom domain still won’t load. (You can also set the origins in the config file as a list under ui.trusted_public_origins.) Then have nginx forward the browser’s host and scheme:
On a non-standard external port, also forward proxy_set_header X-Forwarded-Port $server_port; and include that port in the declared origin.

Authentication is your responsibility

This mode treats your proxy’s requests as local and does not add an Avibe sign-in. Put your own authentication in front of the proxy (nginx basic auth, Authelia, an SSO proxy, …), or keep it on a private network (VPN / LAN only). Don’t expose the declared domain to the open internet without your own auth.

Using it with the avibe.bot tunnel

If you also run the tunnel, your proxy must reach Avibe over a non-loopback address. A loopback (127.0.0.1) proxy is refused while the tunnel is enabled, so that a request coming through the tunnel can’t impersonate your custom domain.Bind Avibe to a LAN or bridge address, point nginx there, and set VIBE_UI_TRUSTED_PROXY_IPS to that address (not 127.0.0.1). Or run just one of the two.

Troubleshooting

Load the Web UI on your custom domain. If the page returns 503, or a state-changing action returns 403:
  • confirm both variables are set, and VIBE_UI_TRUSTED_PUBLIC_ORIGINS matches the browser’s origin exactly — scheme included, no trailing path, and any non-default port;
  • confirm the proxy’s real source IP is the one in VIBE_UI_TRUSTED_PROXY_IPS;
  • confirm nginx forwards Host, X-Forwarded-Host, and X-Forwarded-Proto, and that you restarted Avibe;
  • if you also run the tunnel and your proxy is on loopback, that combination is refused by design — see above.
The service log flags entries that were ignored or didn’t take effect.