Managing Your Apps
Custom Domains
Connect your own domain to a Container App or a VPS App with two CNAME records
Custom Domains
A Container App receives an HTTPS address of its own. A VPS App has an address too: a free default domain that points at the server, with HTTPS only if the server installs a certificate (the DevOps AI Agent is instructed to set up HTTPS for a web application it installs). You can add your own domain for a professional, branded experience. A custom domain needs an app that is Online (for a VPS App, a server that has finished provisioning), and it is not offered for the OpenClaw container app or for a server named Ubuntu VPS.
Both kinds of app use two CNAME records; only the pages that show them differ.
Container Apps: CNAME-Based Setup
Container Apps use two CNAME records, and the HTTPS certificate is issued automatically once both records verify.
Click Add Custom Domain
Go to your Container App’s manage page and click Add Custom Domain. The button exists only while the app is Online; in any other status it is disabled with the tooltip “Available when the app is online”. The OpenClaw container app has no custom domain (“Custom domains are not available for OpenClaw.”).
Enter Your Domain
The form is titled “Custom domain”, with the field Domain and the button Add Custom Domain; its help line reads “Without http:// or a trailing slash — just the domain.” Enter your domain (e.g.,
app.example.com). If you enter a root domain (e.g.,example.com), the dialog “Using a root domain?” says your DNS provider must support “ANAME, ALIAS, or @ records pointing to a CNAME instead of an A record”, names GoDaddy as a provider that does not, and recommends awwwsubdomain “and/or pointing your nameservers to Cloudflare first”. Its buttons are Use ‘www’ subdomain and Proceed with root domain. The form refuses a name that begins with “http”, which can also refuse a real domain whose first label begins with those letters.Add DNS Records
The page “Verify your domain” shows two CNAME records to add at your domain registrar, in a table with the columns Type, Name, Value, and Status:
- The first record — its Name is
@for a root domain and otherwise the part left of your registered domain (appforapp.example.com). Its Value is your app’s own address ending in a dot, as the page shows it - The second record — its Name is
_acme-challengeand its Value is your registered domain, a dot, the validation target of the app’s server, and a dot (example.com.<16 hex>.dcv.cloudflare.com.), copied from the page. The record belongs to the registered domain (_acme-challenge.example.comforapp.example.com), not to the subdomain
Every Name and Value has a copy button. The Status column reads Verified or Waiting and is recomputed each time the page loads.
- The first record — its Name is
Wait for DNS Propagation
The page says “DNS changes usually apply within 5–10 minutes but can take up to 24 hours.” Some registrars quote up to 48 hours for a change to update globally.
Check Status
Press Check status. The first press registers the domain and emails “Make Your Custom Domain Live”. Once both records verify, the page says “All records verified! Your SSL certificate is being issued by Cloudflare. This usually takes a few minutes and will complete automatically.” The page reloads itself every 30 seconds only after at least one record has verified; press Check status to look again. The manage page changes to “Connected and live” when a check that runs twice an hour (at minutes 13 and 42) finds both records verified and the certificate active, so allow up to about half an hour after the records verify. The email “Success! Your Custom Domain is Ready” follows.
Leave both records in place after setup.
Multiple Subdomains
The second record sits at the registered domain (_acme-challenge.example.com), and its Value belongs to the app’s server. If you put several RepoCloud apps on subdomains of one registered domain (app1.example.com and app2.example.com), check that every Status shows Verified; if one stays Waiting, contact support.
Removing a Custom Domain
Return to the manage page and click Remove Domain; the button exists only while the app is Online. The dialog “Remove Custom Domain” asks “Are you sure you want to permanently remove the custom domain linked to this app? Your app stays reachable at its RepoCloud URL.” with the buttons Cancel and Yes, remove it, and the page confirms with “Custom domain has been successfully removed!”. Delete the two records at your registrar afterwards.
On the VPS manage page the Custom Domain card has its own Remove Custom Domain button, which removes the domain at once, with no confirmation dialog.
VPS Apps: CNAME Setup
A VPS App has a dedicated IPv4 address, and its default domain points at that address. A custom domain for a VPS server uses two CNAME records to the server’s default web address; the page never offers an A record.
Open the Custom Domain Section
On the VPS manage page, go to the Custom Domain section. The section is absent for a server named Ubuntu VPS and disabled at a zero balance (“Custom domain management is disabled while your balance is $0.”), and the control plane can refuse a domain for a server that it does not count as having an application (“Please deploy an app before adding a custom domain.”). If it does, point an A record of your domain at the server’s IPv4 address and ask the agent in the chat to serve the domain and request a certificate for it. An A record points at one address, so update it if the server’s address ever changes.
Add the Domain
Point a CNAME record from your domain to the server’s default domain (shown in the Access section), as the card says, then follow the add it here link and enter your domain. RepoCloud registers the domain at once, and the page that opens, “Verify your domain”, shows the exact two records. The second value exists only after the domain is registered.
Create Two CNAME Records
At your domain registrar, create the two CNAME records the page shows: your domain (for example
app.example.com) pointing to the value the page shows (your server’s.vps.rcld.devaddress), and_acme-challenge.app.example.compointing to the validation value. The page prints full names, so enter them the way your DNS provider asks; some providers want the name without the domain.Wait for Verification
The page has a Check status button and shows Verified or Waiting for each record. Once DNS is verified, the certificate takes 1–3 minutes (“All records verified! Your SSL certificate is being issued.”). The page reloads itself every 30 seconds in those states and, when the domain is active, shows
Domain <domain> is now active!and returns to the manage page. In all, expect about 3 to 5 minutes after the records exist; DNS alone takes 30 seconds to 5 minutes, depending on your registrar. A failed attempt shows “Verification failed.” (or “DNS verification timed out.”) with a Remove and try again button, and a domain whose records were never added fails after 7 days.
Cloudflare DNS
If the name servers of your domain are Cloudflare’s, the VPS verification page shows a note: “Cloudflare DNS users: Set the _acme-challenge record to DNS-only (grey cloud). The main CNAME can use Cloudflare proxy (orange cloud).” There is no confirmation prompt to click. The note never appears for a domain under a multi-label suffix such as .co.uk. Cloudflare’s own documentation advises that records that prove your domain ownership should not be proxied; RepoCloud shows its note for VPS servers only.
Apps with Their Own Domain Management
For a VPS App that runs Coolify or Dokploy, which manage the domains of the applications you deploy inside them with their own reverse proxy:
- Use the application’s built-in domain management (inside Coolify or Dokploy) for individual services deployed within the VPS
- The Custom Domain section of the manage page puts a domain on the server’s default web address, not on a service inside Coolify or Dokploy
A domain added in the Custom Domain section reaches whatever the server’s default web address serves, not an application inside Coolify or Dokploy. Add application domains in Coolify’s or Dokploy’s own Domains settings.
Apex (Root) Domains
An apex domain (e.g., example.com without a subdomain) normally cannot use a CNAME record. A root domain on a Container App verifies when the name answers any address, so a DNS provider that supports one of these can serve it:
- ALIAS records
- ANAME records
- CNAME flattening
Cloudflare notes that turning on CNAME flattening for all CNAME records may cause verification to fail for a CNAME that verifies a domain for a third party. The product’s dialog says “Some DNS providers, like GoDaddy, do not support this feature.” Options:
- Use a subdomain like
www.example.cominstead (RepoCloud offers this in the dialog, with the Use ‘www’ subdomain button) - Switch to a DNS provider that supports the feature: Cloudflare (CNAME flattening), DNSimple (ALIAS), or DNS Made Easy (ANAME)
A VPS server also uses two CNAME records and shows the same root-domain dialog. Whether a flattened root domain verifies for a VPS server has not been tested, so use a www or other subdomain.
SSL Certificates
- Container Apps: the HTTPS certificate is issued automatically (by Cloudflare) once both CNAME records verify.
- VPS Apps: RepoCloud issues the custom-domain certificate automatically once DNS is verified, usually in 1–3 minutes. The second record is what lets the certificate be issued and renewed without further action from you. Certificates that an application inside the server requests for itself (Certbot, Traefik, Caddy) are separate and stay that application’s business. A server named Ubuntu VPS has no Custom Domain section.
Troubleshooting
DNS verification failed
Verify that your DNS records match the values shown in the dashboard. DNS changes usually apply within 5–10 minutes but can take up to 24 hours; some registrars quote up to 48 hours. Use DNS Checker (opens in a new tab) to verify your records are visible globally. A VPS domain whose records were never added fails after 7 days and shows Remove and try again.
SSL certificate not issuing (Container Apps)
Ensure the _acme-challenge CNAME is at _acme-challenge.<registered domain> with the exact value the page shows. The manage page changes to “Connected and live” only when the twice-hourly check (minutes 13 and 42) sees both records verified and the certificate active, so allow up to about half an hour. If both records show Verified and the manage page still says it is waiting for DNS to connect after two of the half-hourly checks, contact support. For a VPS server the certificate step takes 1–3 minutes.
Domain shows ‘Not Secure’
The SSL certificate has not been issued yet. Verify DNS configuration and allow time for issuance. Ensure you are accessing the site via HTTPS.
Next Steps
Other management features for container-based deployments
All management features for VPS instances
Resolve common issues with your applications