Domains
Forge uses Caddy to route traffic and manage certificates once DNS resolves to the server.
Control Plane Domain
Section titled “Control Plane Domain”The control plane domain serves Forge itself:
A app.forgecloud.cc YOUR_SERVER_IPV4AAAA app.forgecloud.cc YOUR_SERVER_IPV6Set or update this hostname during onboarding or in system settings.
Wildcard Root Domains
Section titled “Wildcard Root Domains”Forge supports two levels of root domains:
Global Root Domain (System Settings)
Section titled “Global Root Domain (System Settings)”Set during onboarding or in System Settings. All services without a project root domain use this:
A *.apps.forgecloud.cc YOUR_SERVER_IPV4AAAA *.apps.forgecloud.cc YOUR_SERVER_IPV6With this configured, services receive hostnames like:
api.apps.forgecloud.ccweb.apps.forgecloud.ccProject Root Domain (per project)
Section titled “Project Root Domain (per project)”Set when creating or editing a project. All services in that project use their project root instead of the global one:
# DNS — one record per project:A *.mysaas.com YOUR_SERVER_IPV4
# Generated hostnames:api.mysaas.commysaas.com (root service)docs.mysaas.comThe same VPS, same Caddy instance, same ports 80/443 handle unlimited project domains — each gets its own TLS certificate automatically.
If a project has no root domain, its services fall back to the global one. You can mix both — some projects with their own domain, others sharing the global wildcard.
Database services can also receive generated public hostnames when database public access is enabled and a root domain (global or project) is configured.
Custom Domains
Section titled “Custom Domains”For a custom domain, point DNS at the same server:
A app.forgecloud.cc YOUR_SERVER_IPV4AAAA app.forgecloud.cc YOUR_SERVER_IPV6Then add the domain to the service in Forge. Caddy handles routing and certificates after DNS resolves.
Service Domain Tab
Section titled “Service Domain Tab”The service Domains tab shows:
- The hostname.
- Whether the domain is active or pending.
- The target
Arecord. - The server IP to point at.
- DNS provider actions when a provider is connected.
- Refresh and verify action for propagation checks.
Local loopback domains such as localhost do not need public DNS records.
Caddy Behavior
Section titled “Caddy Behavior”Caddy serves the Forge dashboard, app services, static sites, and custom domains. Forge rewrites and reloads Caddy configuration when domain settings change.
If Caddy reload fails, Forge surfaces the reload detail in the deployment or settings flow. Check Caddy logs from the server when DNS is correct but routing still fails.
DNS Checklist
Section titled “DNS Checklist”- The hostname resolves to the server.
- Ports
80and443are reachable. - No other process is bound to those public ports.
- Caddy is running through the Forge Docker Compose stack.
- The service is deployed and active.
- The service internal port matches the app container’s listening port.
Related Pages
Section titled “Related Pages”- DNS Providers for Cloudflare, Namecheap, and Spaceship automation.
- Public Access and TLS for database hostnames.