Skip to content

Domains and routing

Every Public app, static site and box gets an HTTPS address right away:

https://<name>-<id>.<edge domain>

The name comes from the node’s label, so renaming the node changes the address. Private nodes have no address.

  1. Add a Domain node (Nodes ▾ → Networking → Domain) and drag from its dot onto an app, static site or box.
  2. In Domains, type your hosts, one per line: example.com, www.example.com.
  3. Add the DNS records the panel shows at your DNS provider. Copy all DNS records copies them to send to whoever manages the domain.
  4. Press Verify domains, then Deploy. Each host shows ✓ verified, or what’s wrong and how to fix it.
Record Name Value Why
TXT _canvas-verify (or _canvas-verify.www) the token in the panel Proves you control the domain
CNAME www (a subdomain) d-<id>.<edge domain> Recommended: keeps working if the server’s IP changes
A @ (the root domain) the server IP in the panel Most registrars can’t put a CNAME on the root

Some registrars offer ALIAS or ANAME records for the root domain; those work like a CNAME.

TLS → Automatic (Let’s Encrypt) is the default. The certificate is issued once DNS points at ZedCloud and renews itself. Internal CA is for testing only.

ZedCloud keeps checking your DNS. If a host fails twice in a row, its route is removed until you fix the records and press Verify again.

Each linked target becomes a route with a path (default /) and a weight (0 to 100%).

  • Different paths go to different apps: / to the web app, /api to the API.
  • Weights split traffic between targets on the same path. Link two versions of an app at 90 and 10 for a canary, then move the weights. Weight 0 drains a target.
  • An app with several ports gets a Port selector.
example.com

running

HTTPS on · verified

web

running

path / · 100%

api

running

path /api · 100%

One domain, two apps: / goes to the web app, /api to the API.

For more control, Rules (up to 50 per domain) are checked top to bottom; the first match wins and anything left follows the routes.

Match on the hostname (including a new subdomain), a path prefix, the HTTP method, or a request header.

Then:

  • Send to app(s), with weights and balancing: split by weight, take turns, least busy, random, same visitor IP, or sticky session.
  • Redirect to another URL (301, 308, 302 or 307, optionally keeping the path). For example, example.com → www.example.com.
  • Reply with a fixed answer, such as a maintenance page.

Extras: strip or add a path prefix, take failing targets out of rotation, add or remove request and response headers.

Who may use it: protect a rule with a username and password, or allow and block IP ranges. Handy for a staging site.

The Effective routing summary shows the result, and Test a URL tells you which rule a URL hits.

See Publishing a web port.

Your app is reached through ZedCloud’s proxy. Some apps need to be told to trust it: see Apps behind the proxy.