Point your own domain at your server
Add two DNS records once, then watch verification, certificate issue and HTTPS go live. Works with a domain from any registrar.
Connect now, choose an app when you’re ready
Open Domains and choose Connect a domain. Enter an address you own. Choose a website connection, or choose Parked page and the Mac whose relay region will hold the domain. A linked Mac is required, but you do not need a website running yet.
You can also start from Public access: choose Connect an app → Website or API, then choose Connect domain beside the app. This selects that app for you. Neither path installs or starts software in Linux.
Add the DNS records at your registrar
Copy the exact record types, names and values shown in your domain’s setup. Keep unrelated mail and other existing records, but remove any older A or AAAA record for the same name: one leftover address keeps the domain from connecting. For a root domain, use your provider’s ALIAS/ANAME option if it has one (Cloudflare, Namecheap, Porkbun), or the A/AAAA records shown (GoDaddy, Squarespace, Route 53). Add the ownership TXT record. Do not use addresses from screenshots or documentation examples.
Using Cloudflare? Set the cloud icon to grey, DNS only. MacServe already provides HTTPS, so the proxy adds nothing. If you keep the orange cloud on, set Cloudflare’s SSL/TLS mode to Full (strict), and use the MacServe relay address directly for SSH and other ports, which Cloudflare does not proxy.
The optional www record points visitors to the root domain. MacServe must verify ownership and routing before publishing your domain. A DNS entry alone is not proof of ownership.
Continue while records update
MacServe starts checking in the background after the domain is added. Save your records at the provider, then choose View status. You can leave the page: checks continue and gradually space out to avoid unnecessary load. Older domains may first show I’ve added the records to start their monitor.
Each check shows three rows: the ownership record, the website address, and the optional www redirect. A row that needs a fix says what was found, what was expected, and what to change, for example a Cloudflare proxy to switch off or an old address to remove. Choose Check now after you change a record instead of waiting. If the check reports a DNS lookup problem rather than a missing record, your provider answered with an error; DNSSEC misconfiguration is the usual cause.
Once it connects, it stays connected
Once connected, a domain stays connected even if a later check disagrees. The page shows Your DNS records changed with the row to fix, so a provider hiccup never takes your website offline. Choose Remove domain to delete a typo or a domain you no longer use; MacServe stops serving it, and you remove its records at the provider yourself.
If a record is not picked up
DNS can take time to propagate. After five minutes the panel offers troubleshooting and shows expected values. ICANN Lookup identifies registration and nameservers; use a DNS-record lookup to compare A, AAAA, CNAME and TXT values. If records are still absent after your provider’s stated update period, contact the provider.
Connected means domain setup and HTTPS are ready. It is separate from your Mac’s public-access setting and whether your application is answering. Keep the application running to serve visitors.
Choose, switch or disconnect the app
On the domain’s page, choose Choose an app or Change app, select the destination and save. Choose Parked page to disconnect the current app without deleting it. Your DNS records, ownership verification and certificate identity are preserved.
The page waits for the relay to confirm its loaded destination. Applying or a missing confirmation is not success. Moving a domain between different relays requires a reviewed migration; the panel does not silently change DNS.
What an unassigned domain shows
A verified unassigned domain shows a MacServe parked page served by the relay, even if your Mac is offline. An assigned app outage shows an unavailable page instead; an intentional public-access pause returns HTTP 503. Parking does not hide an outage automatically.
Parked pages are platform holding pages, not customer workload traffic. They are not debited from the VM’s transfer allowance and have separate request-rate protection. They contain no customer files and do not accept application uploads.