Skip to main content

Its own domain

A portal can have its own address, like help.example.com, instead of /p/<address> on the desk. On that domain the desk shows that portal at /, with My requests (/requests), Sign in (/sign-in), its forms, its category pages and the requesters' case pages. The agent app, the setup, other portals and hosted forms aren't reachable there, and old links to /p/<address> on the domain move to the new address. The portal keeps working at /p/<address> on the desk too.

Setting up the domain​

Set it up under Domain on the portal's Address tab, where you can also change its Name, Address and Unit. You can't move a portal to a unit that some of its forms don't send cases under; take those forms off first.

[!WARNING] If you change the portal's Address, old links to the portal stop working.

  1. Domain: type the host name, like help.example.com (no https://, no path), and save. One domain per portal, and never the desk's own.
  2. Create the DNS record shown there, at your DNS provider: a CNAME from help to the desk's host name. At the top of a domain, where a CNAME isn't allowed, use an A (and AAAA) record with the desk's IP address instead.
  3. Let the proxy answer for it. The proxy in front of the desk must accept the domain, get a certificate for it and pass the request on with its Host header unchanged (all of these do by default):
    • Coolify: add https://help.example.com to the application's Domains, next to the desk's own, and redeploy. Coolify gets the certificate.
    • Caddy: add the host to the desk's site block, for example desk.example.com, help.example.com { reverse_proxy desk:3000 }.
    • Traefik: add it to the router rule, for example Host(`desk.example.com`) || Host(`help.example.com`), with your certificate resolver.
  4. Bot protection: if the portal uses it (Protection tab), add the domain to the Turnstile widget's hostnames in Cloudflare, or the check fails there.
  5. Check asks https://help.example.com/api/v1/instance whether this desk answers. It says The desk answered at this address when DNS, the certificate and the proxy are right; otherwise what answered instead, or why nothing did. DNS changes can take a while to reach everyone.

Once the domain is set​

Emails about the portal's cases use it: the case link in confirmations and replies, My requests, and the sign-in link when someone signs in there. (A case's portal is the one it was sent through, or else the nearest portal at or above its unit.) Requests sent from the domain are accepted by the portal's origin check like those from the desk's address. Clearing the field removes the domain; it stops answering at once.