Hey all, I made a post a while back asking for Caddy Configs as I've been putting time into developing a UI for Caddy. The reception was overwhelming and beyond motivating to continue working on it and whilst I wasn't able to get as much progress in as I initially wanted, I did decide to publish what is currently there with more features planned over the upcoming months!
CaddyManager is a web UI for managing multiple Caddy Servers - Currently in an "Alpha" state, being that all features that are currently in there work, but will become better in the near future!
Some screenshots of the UI in action
Standout features
- Connect to multiple Caddy Servers and pull their configs, update them, redeploy them
- Basic templates and form based configuration, create a new reverse proxy, api gateway, load balancer and more through a form instead of lines of json/yaml/caddyfile code
- API keys, securely interact with the backend of CaddyManager through RESTful apis, securely utilising API Keys - there's also docs available.
- Multi-user, the system is multi-user, with two distinct roles (right now), admin and user.
- Audit logging, as this is something that I've already started using in an enterprise setting, audit logging was a must-have. Track actions throughout the system with ease!
How to deploy
Are you an adventurous user that wouldn't mind trying some new things? Then backup your caddy setup, open up port :2019 (or something else) in your server and head over to the example compose stack: https://caddymanager.online/#/quick-start
3 docker containers, yeap, that's currently what it needs! We'll be running MongoDB as database, a backend service, and a frontend service. If you already have a MongoDB running, feel free to tie it into that.
For an example Docker Compose, go here: https://caddymanager.online/#/quick-start - default user and password are: "admin" and "caddyrocks"
Information
Github repository here: https://github.com/caddymanager/caddymanager
Quick website here: https://caddymanager.online/#/
Dockerhub here: https://hub.docker.com/u/caddymanager
What's next?
Plenty of features I wanna work in, but I think the key focus next few weeks will be on accessibility and UI, mainly a proper dark mode as well as screen-reader capabilities, as well as fixing bugs that people might find.
After that I'll start working on some more exciting features like a proper dashboard, bulk actions, configuration versioning, git/s3 import/export, OIDC and more intelligent templating.
For the current roadmap: https://caddymanager.online/#/roadmap
Known issues
I'm still making a proper list but for now:
- when deploying you have to manually set the backend IP and expose it to the user instead of the frontend proxying it itself to the backend.
- No dark mode is a problem
- Forms and input fields are in need of some css lovin'
- Sometimes you have to "refresh" datasources after logging in as the last error is still preventing them from showing.
- Code cleanups, quite a bit of leftovers from "in-between" work/bugfixes still in the codebase, some touchups are needed here.
Time investment
As with any open source project, this stuff can be a bit scary, however, we're starting to use this tooling at my work as well, which gives me some more resources to work with! The project itself will get continued development until the full feature list from the roadmap is built in - after that it'll either go into maintenance mode or will receive continued development based on community engagement!
The project is MIT licensed, so feel free to fork, but would love to hear people's ideas and thoughts, feel free to fill up the Github issues! https://github.com/caddymanager/caddymanager/issues
ps. This is my first time open sourcing anything - feel free to drop any feedback you might have, or things I should have done and missed, googling for "what to do when open sourcing your project" only takes you so far..
submitted by