shop.mystore.com, api.mysite.io, or even a root domain) and Nubo will serve the Frame there with HTTPS.
The exact DNS you’ll set up depends on whether the Frame runs on managed infrastructure (our cloud) or a self-hosted agent (your own server). The API is the same either way.
Add a domain from the dashboard
Open the Frame’s Settings tab and find the Custom domains section. Hit Add domain and the setup wizard walks you through four steps:- Enter your hostname.
- Update DNS with the record we give you.
- Issuing TLS: we wait for your certificate to be issued and show progress while it happens.
- Live: the domain is serving traffic.
Add a domain via the API
Using a root/apex domain (like
mystore.com rather than shop.mystore.com)? A plain CNAME isn’t valid at a zone apex, so it will be rejected at most registrars. Use an ALIAS or ANAME record, or a provider that supports CNAME flattening, pointing at the same target Nubo gives you.Managed Frames
You’ll create a single CNAME record pointing at the value Nubo gives you back:/verify again any time to re-poll.
Self-hosted agent Frames
Agent Frames provision TLS automatically - no verification step:For agent Frames, ACME needs at least one of port 80 (HTTP-01) or port 443 (TLS-ALPN-01) reachable from the public internet for automatic TLS issuance to work. Caddy tries both, and if both are firewalled, TLS provisioning will fail.
Verify it’s working
Once DNS has propagated (usually seconds to a few minutes):200 back with a valid certificate. dig shop.mystore.com should show your CNAME resolving to the right target.
Remove a domain
List attached domains
pending, provisioning, active, or error). A domain shows provisioning while its certificate is being issued.
Troubleshooting
Status stuck on pending
- Managed: your CNAME isn’t resolving to the value Nubo handed you yet. Re-check your DNS (
dig shop.mystore.com) and call/verifyagain. - Agent: the agent was offline when the domain was added. Attach tasks aren’t replayed on reconnect, so once the agent is back online, re-add the domain:
DELETEit, thenPOSTit again.
TLS certificate error
- DNS propagated?
dig shop.mystore.comshould return the expected target. - Port 80 or 443 reachable? (Agent Frames only.) ACME needs at least one of port 80 (HTTP-01) or port 443 (TLS-ALPN-01) open to the public internet for automatic TLS issuance. Caddy tries both, and if both are firewalled, provisioning fails.
- Rate-limited? Certificate authorities cap issuance per hostname per week. If you’ve retried a lot, wait an hour.
journalctl -fu nubo-agent (Linux) or tail -f ~/Library/Logs/nubo-agent/stderr.log (macOS).
Hostname already registered
Each hostname belongs to one Frame at a time across all of Nubo. If you try to attach one that’s already in use, the API returns a400. Remove it from the other Frame first, or pick a different hostname.