Finding Your Appβs URL
You installed an app and it says Running. What do you type in the address bar?
The short answer: look at the appβs card in the dashboard β it shows the URL Hub actually assigned. Everything below explains where that URL comes from, and what to do when it doesnβt resolve.
Two ways to reach an app
Every app is reachable two ways. The direct port always works; the hostname is nicer but depends on DNS.
| Method | Looks like | Works when |
|---|---|---|
| Direct port | http://localhost:8301 or http://<server-ip>:8301 | Always β no DNS involved |
| Hostname via Traefik | http://nextcloud.<your-local-domain> | Your machine can resolve that hostname |
If a hostname doesnβt load, fall back to the direct port shown on the app card. That tells you the app is fine and the problem is DNS.
Where your local domain comes from
Hub builds app hostnames as <app-name>.<LOCAL_DOMAIN>. It resolves LOCAL_DOMAIN in this order, taking the first one set:
LOCAL_DOMAIN in your environment
Set explicitly in your .env file, or as localDomain in state/settings.json. This wins over everything else. See Custom Settings.
Your configured DOMAIN
If LOCAL_DOMAIN is unset, Hub falls back to the public DOMAIN you configured.
localhost
If neither is set, Hub uses localhost β so apps are reachable at http://<app-name>.localhost.
*.localhost resolves to 127.0.0.1 automatically on most systems (RFC
6761Β ), which is why the default needs
no DNS setup at all. It only works on the Hub machine itself β from another
device on your LAN, use the serverβs IP and port.
Check what yours is set to
cihub statusOr in the dashboard: Settings β General, where you can also change it.
Picking a local domain
| If you want | Set LOCAL_DOMAIN to | Then |
|---|---|---|
| Zero setup, Hub machine only | leave unset (localhost) | Nothing β http://<app>.localhost just works |
| Access from other devices on your LAN | something like ci.lan | Add DNS records, or use the direct port from other devices |
| A real domain with valid TLS | your own domain | See Linking a domain |
Choosing a custom local domain like ci.lan means you are responsible for
making it resolve. Nothing on your network knows that name until you add a
wildcard DNS record (*.ci.lan β your Hubβs IP) on your router, Pi-hole, or
local DNS server. Without it, hostnames fail and only the direct ports work.
When a hostname wonβt resolve
Confirm the app is actually running
cihub app statusTry the direct port
Use the port shown on the app card: http://localhost:<port>. If that works, the app is fine and this is purely a DNS problem.
Check what domain Hub assigned
cihub statusConfirm the hostname youβre typing matches the local domain Hub reports.
Verify the name resolves
ping -c 1 nextcloud.ci.lanName or service not known means DNS has no record for it β add a wildcard record for your local domain, or switch back to the localhost default.
For HTTPS on your LAN, see Local SSL certificate. For access from outside your network, see Networking.