Skip to content
KylthDOCS

How Kylth works

How Kylth, Caddy, Docker and your Supabase projects fit together on one server.

Everything runs on your server, in Docker. Kylth is one container, Caddy is another, and each project is a set of its own.

The internetBrowsers, your apps, API clients
↓ HTTPS on ports 80 and 443
YOUR SERVER
Caddy kylth-caddyServes every address over HTTPS. Gets and renews the certificates.
↓ from Caddy: app.example.com
Kylth kylthThe dashboard and the API. Listens on 127.0.0.1:8383 only.
↓ from Caddy: shop.projects.example.com
Project shopSupabase's containers: Postgres, the API gateway, Auth, Storage, Realtime, Studio and more.
↓ Kylth creates and manages every project through Docker
DockerRuns Kylth, Caddy and every project's containers.
Folders on disk/opt/kylth · /opt/supabase-projects · /opt/kylth-backups · /etc/kylth

The parts

  • Caddy runs in its own container, kylth-caddy, on ports 80 and 443. It sends the dashboard’s address to Kylth and each project’s address straight to that project. It gets a Let’s Encrypt certificate for every address and renews it.
  • Kylth runs in the container kylth. It listens only on 127.0.0.1:8383, so the only way in is through Caddy.
  • Docker is the server’s own. Kylth creates, starts, stops and backs up project containers through it. Security & permissions explains what that access means.
  • Projects each run as a separate set of Supabase containers, using Supabase’s own images.

Project traffic doesn’t pass through Kylth

Caddy sends requests for a project directly to that project. If Kylth stops, whether for an upgrade or because something failed, your projects keep running and stay reachable at their addresses.

While Kylth is stopped, these pause until it’s back:

  • the dashboard and the API
  • scheduled backups
  • certificate checks and alerts

Where data lives

Folder Holds
/opt/supabase-projects/<project>/ Each project’s configuration, secrets and data, including its database files and uploaded storage
/opt/kylth Kylth’s own database, keys and licence
/opt/kylth-backups Project backups kept on the server, and Kylth’s database copies from upgrades
/etc/kylth docker-compose.yml and the settings file, .env

Backups explains which of these you need to protect, and how.

More than one server

With a commercial licence, Kylth can manage projects on additional hosts, connected to it over WireGuard. These docs don’t cover that setup yet.