doable.do

Domains + Doable

How to connect a custom domain to your Doable project

Every Doable project gets a free `<slug>.doable.do` subdomain with automatic HTTPS. To use your own domain, `app.example.com`, `example.com`, anything you control, connect it once and Doable provisions a Let's Encrypt certificate within a minute.

Custom domains are available on Starter ($15/month, 3 domains) and Pro ($39/month, 10 domains).

Step by step

  1. 1

    Add a DNS record at your registrar

    For a subdomain (`app.example.com`): CNAME pointing at `cname.doable.do`. For an apex (`example.com`): A record pointing at the IP Doable returns from the connect step. Most registrars (Cloudflare, Porkbun, Namecheap) take effect within minutes.

  2. 2

    Connect the domain via the CLI

    Doable verifies the DNS record, requests a certificate from Let's Encrypt, and adds the route to Traefik.

    doable domain connect app.example.com
  3. 3

    Wait for verification

    Verification usually takes under a minute. The CLI polls and returns when the cert is live. If your DNS hasn't propagated yet, retry, the command is safe to re-run.

  4. 4

    Visit your domain

    Once verification passes, the domain serves your project's latest deploy with HTTPS. The `<slug>.doable.do` subdomain keeps working too, both routes resolve to the same container.

Apex vs subdomain

Subdomains (`app.example.com`) use CNAME records, which are simpler and let Doable change underlying infrastructure without you updating DNS. This is the recommended setup.

Apex domains (`example.com`) require an A record. Doable returns the IP to point at when you run `domain connect example.com`. If the IP ever changes (rare, we don't rotate without notice) you'll need to update the A record.

How HTTPS works

Doable provisions Let's Encrypt certificates automatically, no upload, no manual renewal. Renewals happen ~30 days before expiry without any user action.

On BYO servers, the same Traefik + Let's Encrypt flow runs on your hardware. The agent handles cert provisioning and renewal locally; Doable just brokers the routing config.

Getting a domain (via Namecheap)

Don't own the domain yet? `doable domain search <name>` checks availability and price — free, instant. `doable domain buy <name>` opens Namecheap (our affiliate partner) where you complete the purchase. Once registered, `doable domain connect <name> --project <id>` wires DNS + TLS automatically.

FAQ

Does HTTPS cost extra?

No. HTTPS via Let's Encrypt is included on every plan and every project, including the free `<slug>.doable.do` subdomain on the Free tier.

Can I use Cloudflare in front of Doable?

Yes. Set Cloudflare to proxy your domain (orange cloud), point the CNAME at `cname.doable.do`, and run `doable domain connect`. Doable provisions an origin certificate and Cloudflare handles the edge.

How many domains can I connect?

0 on Free (subdomain only), 3 on Starter, 10 on Pro. Each domain can be either an apex or a subdomain, they count the same.

What if my domain verification fails?

The most common cause is DNS not yet propagated. Wait 1–5 minutes and re-run `doable domain connect`. If it keeps failing, check that the DNS record exactly matches what the CLI shows.

Try Doable free

No credit card. Deploy your first project in under a minute.