Custom Domains
Default URLs
Every service and app gets a URL under *.compacthive.dev:
https://<your-slug>-<service>.compacthive.dev
Examples: https://acme-ci.compacthive.dev (Woodpecker CI), https://acme-grafana.compacthive.dev (Grafana), https://acme-my-api.compacthive.dev (a custom app). These work immediately after deployment; TLS is handled for you.
Adding a custom domain
Custom domains are available on every tier, with a per-tier limit on how many you can register:
| Tier | Custom domains |
|---|---|
| Basic | 3 |
| Team | 10 |
| Pro | 25 |
| Business | 50 |
| Enterprise | Effectively unlimited |
- Go to portal → Domains.
- Enter your hostname, pick the service or app it should point to, and click Add Domain.
- At your DNS provider, add a TXT record named
_compacthive-challenge.<host>with the exact value shown in the domain's verification card. For example, forapp.example.com, the full record name is_compacthive-challenge.app.example.com. Some providers append your zone name automatically; check that it is not duplicated. Use the copy buttons for the name and value. - Add an A record for your hostname pointing at the IP address shown in the DNS instructions. AAAA/IPv6 is not supported yet — use an A record only. Use an A record, not a CNAME — a CNAME to
compacthive.devdoes not work for a domain you own (it is a Cloudflare-proxied name in CompactHive's account, so foreign hostnames are rejected at Cloudflare's edge). - Click Verify now after DNS propagates, or wait for an automatic check. CompactHive checks the TXT record to verify ownership, then checks that the A record points at its ingress.
- Once verified and pointing at CompactHive, a Let's Encrypt certificate is issued automatically, typically within minutes. When the status is Active, HTTP redirects to HTTPS. Certificates renew automatically; keep your DNS pointing at CompactHive.
A hostname can only be claimed by one account. CompactHive-owned names cannot be used as your own custom domains. Unverified domains are removed after 7 days; add the domain again if you need to restart verification. Until ownership is verified, the domain does not route traffic to your app.
Domain status
| Status | Meaning | What to do |
|---|---|---|
| Pending verification | Ownership has not been confirmed; traffic is not routed yet. | Add the TXT record exactly as shown, wait for DNS propagation, then click Verify now or wait for an automatic check. Check the removal countdown. |
| Verified | Ownership is confirmed; CompactHive is waiting for your A record. | Point the A record at the IP shown in the portal and wait for the DNS check. |
| Issuing certificate | The hostname is ready and a certificate is being requested. | Wait a few minutes. If an error is shown, check DNS and your proxy settings. Automatic retries may take longer. |
| Active | The certificate is installed and HTTPS is ready. | Open your domain. Keep DNS pointing at CompactHive so automatic renewal can succeed. |
| Error | Certificate issuance requires attention. | Read the error, correct DNS or proxy settings, then click Retry. Contact support if it persists. |
If an existing domain shows a verification deadline banner, add the TXT record and verify ownership by that date or the domain stops working.
Cloudflare and other proxies
For Cloudflare-proxied customer records, use DNS-only (grey cloud) during issuance, or configure the proxy to pass /.well-known/acme-challenge requests through to CompactHive. Let's Encrypt needs to reach that path over HTTP to issue and renew certificates. Keep the challenge path reachable for automatic renewal too.