← Roadmap
🎛️

Management as a Module

✓ Shipped

Celilo’s whole job is to deploy code — Caddy, Authentik, Homebridge, whatever you ask for. So the management server that runs Celilo should be no exception: it’s just another module. Instead of a bespoke installer and a hand-rolled setup interview, the control plane gets deployed with the same Ansible, hooks, and capability resolution Celilo already applies to everything else.

Why this matters

Today the management server has its own special path — a shell installer plus a one-off celilo system init interview — and none of it uses the real Celilo toolchain. That means the one machine Celilo can’t rebuild with its own tools is the machine Celilo runs on. If you want a second management box, or need to recover a crashed one, you’re back to doing it by hand. Turning the control plane into a celilo-mgmt module closes that gap: the thing that deploys everything can finally deploy itself.

A tiny bootstrap, then a normal deploy

You genuinely can’t run celilo until the runtime is on disk, so bootstrapping shrinks to the irreducible minimum — one command that installs just enough to get the CLI, then hands off:

curl -fsSL https://celilo.computer/bootstrap.sh | bash

From there, everything is an ordinary module deploy. The celilo-mgmt module’s own Ansible role installs the rest of the dependencies, initializes and migrates the database, sets up the daemon, and runs the same module-config interview any module uses. The old system init interview goes away because the module already handles it.

Recovery and standbys become routine

Because the management server’s entire state — database, per-module Terraform state, encryption key, machine pool — is captured by the module’s backup hooks, recovering a lost control plane is bootstrap plus a restore. Want a hot standby? Bootstrap the standby and restore from the primary’s backup, and you have an identical box ready to take over. The special case disappears; the control plane is deployed, backed up, and upgraded exactly like every other module in the fleet.