Product Networking and domains
Services that find each other.
Every service gets a private address, and variables point at each other, so nothing is copied by hand.
Domains
- shop.example.comHTTPS
- shop-k3f9.up.dawnrose.aiHTTPS
Private addresses
- api.dawnrose.internal
- postgres.dawnrose.internal
- redis.dawnrose.internal
TCP proxy
- PostgresOff
shop.example.comon web
HTTPSCertificate issued, renewed for you
Sample data
Public where you choose. Private everywhere else.
Traffic from the internet reaches a service through the Dawnrose edge, with HTTPS. Behind it, services talk on a private network no one else shares, and a database has no public address unless you turn its TCP proxy on.
Private network: shop / production
Connected, and only as public as you choose.
Variables that wire themselves
Reference another service’s values instead of copying them. Sealed secrets can’t be read back, even by an agent.
- DATABASE_URL${{ Postgres.DATABASE_URL }}
- API_URLhttp://${{ api.DAWNROSE_PRIVATE_DOMAIN }}:8080
- SESSION_SECRET•••••••• sealed
Your own domains
Custom domains on every plan, wildcards on Hobby and Pro, with certificates issued and renewed for you.
- shop.example.comHTTPS
- *.shop.example.comHTTPS, wildcard
- old.example.comWaiting for DNS
Cloudflare in one click
When your domain’s DNS is on Cloudflare, Dawnrose adds the records and verifies the domain.
- CNAMEapp.example.comedge hostname
- TXT_dawnrose.app.example.comdawnrose-verify=…
With the domain on Cloudflare, these two records go in for you, and the domain is checked.
A private network
Services in an environment talk at
name.dawnrose.internal, on a network no one else shares.A URL for every service
Generated domains with HTTPS, ready the moment a service answers on its port.
TCP when you need it
A TCP proxy gives databases and other non-HTTP services a public port.
Give it a domain. HTTPS comes with it.
$ claude mcp add --transport http dawnrose \
https://app.dawnrose.ai/mcp \
--header "Authorization: Bearer YOUR_TOKEN"