Skip to content

Domains

Forge uses Caddy to route traffic and manage certificates once DNS resolves to the server.

The control plane domain serves Forge itself:

A app.forgecloud.cc YOUR_SERVER_IPV4
AAAA app.forgecloud.cc YOUR_SERVER_IPV6

Set or update this hostname during onboarding or in system settings.

Forge supports two levels of root domains:

Set during onboarding or in System Settings. All services without a project root domain use this:

A *.apps.forgecloud.cc YOUR_SERVER_IPV4
AAAA *.apps.forgecloud.cc YOUR_SERVER_IPV6

With this configured, services receive hostnames like:

api.apps.forgecloud.cc
web.apps.forgecloud.cc

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.com
mysaas.com (root service)
docs.mysaas.com

The 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.

For a custom domain, point DNS at the same server:

A app.forgecloud.cc YOUR_SERVER_IPV4
AAAA app.forgecloud.cc YOUR_SERVER_IPV6

Then add the domain to the service in Forge. Caddy handles routing and certificates after DNS resolves.

The service Domains tab shows:

  • The hostname.
  • Whether the domain is active or pending.
  • The target A record.
  • 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 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.

  • The hostname resolves to the server.
  • Ports 80 and 443 are 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.