Domains, DNS, Nginx, and TLS

Attach public names safely without handing Portal ownership of unrelated virtual hosts.

Add domains from the project

Open a project’s Domains action, enter a fully qualified hostname such as app.example.com, and run the DNS check. A project supports up to ten unique names. Portal may save a hostname that is not ready yet, but a later TLS sync fails until DNS and HTTP-01 reach the host.

DNS readiness

The UI compares A/AAAA resolution with the host’s actionable public addresses and offers a recheck. Before the first certificate, make sure port 80 is public and http://YOUR-DOMAIN/.well-known/acme-challenge/… reaches this host without a CDN HTTPS redirect. If Cloudflare proxies the name, use DNS-only for initial issuance.

What Portal changes

For an active project, the helper writes only /etc/nginx/sites-available/hostmgr-<slug>.conf and its matching enabled symlink. It runs nginx -t before every reload, creates a Certbot certificate named hostmgr-<slug>, then redirects HTTP to HTTPS. It snapshots and restores managed files if Nginx, Certbot, or reload fails.

Avoid conflicts

Portal reads Nginx configuration and refuses a requested name already claimed by an external server block. It does not edit unrelated virtual hosts. Removing the final domain removes only Portal-managed Nginx/TLS configuration; it does not delete the project release.

Last audited: 2026-08-25
Portal source of truth