Domains
Your brand, on your cluster
Every app gets a URL the moment it deploys. Attach the domains you already own — including the root domain of the platform itself — and let certificates take care of themselves.
A URL the moment you ship
Each app is reachable on a subdomain of your cluster as soon as its first release is live. Share it with the team before public DNS exists. A router runs on every host, so there is no separate load balancer to buy or configure.
Your brand, not a vendor's
Point a hostname you own at the cluster and attach it to the app from the CLI or the dashboard. Add as many as you need. Additional web-facing process types — an admin console, an API — get their own hostnames.
$ flynn route:add http --auto-tls www.example.comCertificates that look after themselves
- Let's Encrypt, automatic. Once operators enable ACME on the cluster, any route can request a certificate and Flynn renews it.
- Bring your own. Policy requires a specific CA? Attach your certificate and key to the route instead.
- HTTP/2 included. Enabling HTTPS on a route enables HTTP/2 automatically.
- Platform routes too. The dashboard and the platform API get trusted certificates the same way.
Path, TCP, and sticky routes
- Path-based routes. Send
example.com/apito a different app thanexample.com. Only cluster administrators create path routes, which keeps one team from claiming a path under another's hostname. - TCP routes. Publish non-HTTP services on a port range, with TLS passthrough or termination. Datastores can be exposed the same way for outside clients.
- Sticky sessions. Turn on cookie-based stickiness for apps that keep state in memory between requests.
The root domain is yours as well
Apps normally live on subdomains. The bare root domain of the platform can be owned by one app too — typically this homepage — so anyone who types the naked domain lands somewhere you chose. Operators can reassign the root to a different app at any time.
Operators
Turning on Let's Encrypt is two commands
Register an ACME account, enable it for platform routes, and every app route can opt in.