Custom domain
In Settings → Remote Access, set the direct connection method to Custom domain and enter the URL where the server is reachable, for example https://nvr.example.com.
The server must already be reachable at that address through your own DNS and a reverse proxy or port forwarding: camera.ui only records the address, it does not change your network. Forwarding a port sends traffic to 3443, and the server answers it with its own self-signed certificate, so browsers and apps show a warning. A reverse proxy with a real certificate avoids that, and Certificate covers uploading one to camera.ui itself. Reverse proxy covers what a proxy has to forward.
That one port carries the interface, the API and MSE playback. WebRTC media travels separately, over port 2004 (UDP, with TCP on the same port as fallback), so forward that too for the low-latency path from outside. Without it the live view falls back to MSE.
Test connection checks the saved address, so Save first. It requests the address from the server itself, which fails on routers without hairpin NAT or with split DNS even when the address works fine from outside. Remote access keeps running either way, camera.ui only gives up a custom domain when the name stops resolving publicly.
TIP
If you don't run your own domain or reverse proxy, camera.ui Cloud or a Cloudflare tunnel is simpler, since neither needs router changes.