Hello, I’ve built a WebUI for managing a single Caddy Server instance. In its design, we’ve aimed for a lightweight approach to minimize overhead.
CaddyDash is currently in its Pre-Alpha stage. The internal implementation and API are not yet stable, and we may replace current designs with better alternatives in the future.
CaddyDash Repository: caddydash/README_EN.md at main · WJQSERVER-STUDIO/caddydash · GitHub
Design Principles
- Simplicity as a Core Principle: This project was originally designed to facilitate Caddy management via a web interface, eliminating the need for direct server access to modify the Caddyfile. Therefore, our design prioritizes simplicity.
- Lightweight: We chose SQLite3 as the database and use lightweight HTTP framework. We aim for CaddyDash to have a small resource footprint.
Frontend
- Responsive Design: Adapted for mobile devices.
- Light and Dark Modes: Support.
- i18n Support: Currently available in
zh-CN
anden
. PR welcome
Deployment
CaddyDash is designed to handle the startup and shutdown of Caddy instances (with planned future improvements to this implementation). Thus, we currently recommend deployment using Docker Compose.
version: '3.8'
services:
caddydash:
image: wjqserver/caddydash:latest
container_name: caddydash
network_mode: host
volumes:
- ./config:/data/caddy/config
- ./config.d:/data/caddy/config.d
- ./log:/data/caddy/log
- ./db:/data/caddy/db
- ./caddy_internal_data:/root/.local/share/caddy
restart: unless-stopped
By default, CaddyDash listens on :81
. For security reasons, we recommend setting up a reverse proxy for it after initialization to ensure security.
Related Information
Github Repository: caddydash/README_EN.md at main · WJQSERVER-STUDIO/caddydash · GitHub
Related Blog Post: https://blog.wjqserver.com/post/about-caddydash
Future Roadmap
Many features are currently functional but not yet in their optimal state; they work, but they are not our perceived best implementation, and we are continuously working on improving them.
Concurrently, we will be building out the reserved functionalities for existing features and gradually moving them towards a stable state.
Time Investment
We’ve invested some time into this project, but there’s still much to improve. Moving forward, we will focus on enhancing existing features and implementing planned ones. If you have any ideas or feature requests, please open a “Feat Issue” (Feature Issue).
This project is open-sourced under the MPL 2.0 license.
Our current vision for this project is to avoid excessive complexity, striving for a simple and straightforward user experience. We welcome discussion.