Skip to content
KylthDOCS

DNS setup

The two DNS records Kylth needs, where they point, and why one of them is a wildcard.

Kylth needs two names that point at your server: one for the dashboard, and a wildcard for your projects. Any DNS provider works, so you don’t need Cloudflare or any particular service.

app.example.comThe dashboard
203.0.113.10Your server
*.projects.example.comEvery project
203.0.113.10Your server

The records to create

Type Name Points to
A app.example.com Your server’s public IPv4 address
A *.projects.example.com Your server’s public IPv4 address

Some providers want only the part before your domain in the name field, for example app and *.projects.

If your server is reachable over IPv6 on ports 80 and 443, you can add matching AAAA records. Only do so if it really is reachable: Let’s Encrypt prefers IPv6 when a record exists, and certificates fail if it can’t connect.

Why the wildcard

Every project gets its own address, named after the project. A wildcard record covers every name under the projects domain at once, so creating a project never needs a DNS change.

Project Its address
shop https://shop.projects.example.com
A second project whose name also becomes shop https://shop-2.projects.example.com. Kylth adds a number when a name is taken.

Each project’s API and its Supabase Studio share that address.

Choosing the names

  • The two names don’t need the same parent domain. kylth.example.com and *.apps.example.net work too.
  • Keep the dashboard outside the projects domain. Use app.example.com with *.projects.example.com, not app.projects.example.com. Otherwise a project named app would claim the dashboard’s address.
  • Point the records straight at the server. Kylth is tested with records that point directly at it. If a proxying service sits in front (Cloudflare’s proxied records, for example), issuing and renewing certificates depends on that service’s settings. Setting the records to DNS only avoids that.

Check the records

dig +short app.example.com
dig +short test.projects.example.com

Both should print your server’s IP address. test can be any name; that’s the wildcard at work. New records can take a while to reach every resolver. If you install before they do, Caddy keeps retrying the certificates on its own.

Next, Install.