Skip to main content
Every floo app gets a default URL on *.on.getfloo.com. You can add your own domain with automatic SSL.

Add a domain

floo domains add myapp.com --app my-app
Domain added: myapp.com
Status: pending

Configure DNS:
  CNAME myapp.com → my-app.on.getfloo.com

Configure DNS

Add a CNAME record at your DNS provider:
TypeNameTarget
CNAMEmyapp.commy-app.on.getfloo.com
For apex domains (e.g., example.com without www), use your provider’s CNAME flattening or ALIAS record feature.

Verify DNS

Once your CNAME record is in place, verify ownership from the CLI or the dashboard:
floo domains verify myapp.com --app my-app
Or click Verify DNS on the pending domain in the dashboard. Floo checks that your CNAME resolves to the correct gateway host. Once verified:
  • Domain status changes to active
  • SSL is provisioned automatically
  • Org admins receive a confirmation email
The dashboard auto-polls pending domains every 30 seconds, so the status will update on its own once DNS propagates.
DNS changes can take up to 24 hours to propagate, but most providers update within minutes.

Check status

floo domains list --app my-app
Domains for my-app:
  myapp.com  active  CNAME → my-app.on.getfloo.com

Per-service custom domains

For multi-service apps, you can bind a custom domain to a specific service by adding domain to floo.app.toml:
[services.api]
type = "api"
path = "./api"
port = 8000
ingress = "public"
domain = "api.example.com"
Then add it via the CLI with --services to bind it to the service, and configure DNS:
floo domains add api.example.com --app my-app --services api
The CNAME target is the per-service hostname:
TypeNameTarget
CNAMEapi.example.commy-app-api.on.getfloo.com
A custom domain on a service overrides path-prefix routing — traffic to api.example.com goes directly to the api service. The app’s access_mode still applies on the custom domain.

Remove a domain

floo domains remove myapp.com --app my-app

For agents

# Add domain and get DNS instructions
floo domains add myapp.com --app my-app --json 2>/dev/null | jq '.data'

# Verify after user configures DNS
floo domains verify myapp.com --app my-app --json 2>/dev/null | jq '.data'

# Check domain status
floo domains list --app my-app --json 2>/dev/null | jq '.data.domains'
JSON output:
{
  "hostname": "myapp.com",
  "status": "pending",
  "dns_instructions": "CNAME my-app.on.getfloo.com"
}