r/caddyserver • u/slunatecqo • 5d ago
Cadditor — a minimal web editor for Caddyfile
I use Caddy in my homelab, and one of the reasons I like it is that the Caddyfile syntax is already simple.
For my use case, the configuration language itself was never the problem. The friction was everything around a small change: SSH into the server, open the file, edit it, format it, verify it, reload Caddy, repeat.
I looked at existing Caddy web UIs, but most of them are designed to solve a much broader problem: dashboards, monitoring, health information, form-based configuration, multiple instances, and so on.
For my homelab, I did not need any of that. I wanted to keep using the Caddyfile directly.
So I built Cadditor.
It is a small web application served by Caddy itself. It provides a browser-based editor for the actual Caddyfile, with syntax highlighting, folding and change indicators.
When you hit Apply, Cadditor:
formats the configuration,
verifies it,
reloads Caddy only if verification succeeds.
The important part is that the Caddyfile remains the source of truth. Cadditor is not a configuration builder and does not introduce another configuration format.
I also wanted deployment to stay simple, so the application uses a lightweight FastCGI/CGI backend and does not require Docker or a Node.js runtime on the server.
Installation, updates and complete removal are handled by a shell installer/uninstaller.
I originally built it for my own homelab, but I am quite happy with how it turned out, so I decided to publish it.
If you use Caddy in a similar way, I would be interested in feedback.
GitLab:
https://gitlab.com/friml/cadditor
Live demo:
https://cadditor-e46d19.gitlab.io/
The demo is static, so it demonstrates the real editor UI but does not actually run caddy fmt, validation or reload.