--- title: CaddyManager created: 2026-06-06 updated: 2026-06-06 type: app tags: [catalogue, reverse-proxy, caddy, webui, multi-instance, alpha] confidence: medium contested: false sources: [https://selfh.st/apps/?tag=Reverse+Proxy, https://github.com/caddymanager/caddymanager] --- # đŸ–±ïž CaddyManager > **Interface web pour gĂ©rer plusieurs instances Caddy, construite sur la stack MEVN**. RĂ©putation : projet alpha prometteur qui comble un manque Ă©vident de [[app-caddy]] (l'absence de GUI native). ## 📋 Informations GĂ©nĂ©rales | Champ | Valeur | | :--- | :--- | | **Site web** | [github.com/caddymanager/caddymanager](https://github.com/caddymanager/caddymanager) | | **GitHub** | [caddymanager/caddymanager](https://github.com/caddymanager/caddymanager) | | **License** | AGPL-3.0 | | **Langage** | JavaScript (Vue.js), Node.js, MongoDB optionnel | | **Étoiles GitHub** | 1.1k ⭐ | | **DerniĂšre MAJ** | 2026-02 | | **CatĂ©gorie** | [[cat-reverse-proxy\|Reverse Proxy]], Web UI | ## 📝 Description **CaddyManager** est une **WebUI** construite sur la stack **MEVN** (MongoDB / Express / Vue / Node) qui permet de **gĂ©rer Ă  distance plusieurs serveurs Caddy** depuis une interface unique. Le projet rĂ©pond Ă  un reproche frĂ©quent fait Ă  [[app-caddy]] : sa configuration via `Caddyfile` est simple, mais **pas d'interface graphique** pour les administrateurs qui ne veulent pas toucher aux fichiers. Avec CaddyManager, on peut : - **Voir l'Ă©tat** de toutes les instances Caddy enregistrĂ©es (CPU, RAM, uptime) - **Modifier le Caddyfile** via un Ă©diteur web avec validation - **Hot-reload** des configurations Ă  distance - **GĂ©rer les certificats** Let's Encrypt - **Logs centralisĂ©s** (avec tail en live) - **Authentification** multi-utilisateurs Le projet supporte **SQLite** (par dĂ©faut, simple) ou **MongoDB** (pour des dĂ©ploiements plus lourds). **Statut alpha** clairement annoncĂ© : Ă  utiliser en test, pas en prod critique sans backup. **Public cible** : administrateurs qui gĂšrent **plusieurs instances Caddy** (multi-sites, multi-VPS) et veulent **une console unique**. Concurrent direct de [[app-nginx-proxy-manager]] (GUI pour Nginx) et [[app-caddymanager]] (lui-mĂȘme). ## 🚀 Installation ### Option 1 : Docker Compose (recommandĂ©) ```yaml # docker-compose.yml version: '3.8' services: caddymanager: image: caddymanager/caddymanager:latest container_name: caddymanager restart: unless-stopped ports: - "5000:5000" # WebUI environment: - CADDYMANAGER_DB=sqlite # ou mongodb - CADDYMANAGER_SECRET=change-me-long-random-string - MONGO_URI=mongodb://mongo:27017/caddymanager volumes: - caddymanager_data:/app/data depends_on: - mongo networks: - proxy # Optionnel : MongoDB (sinon SQLite par dĂ©faut) mongo: image: mongo:7 container_name: caddymanager-mongo restart: unless-stopped volumes: - mongo_data:/data/db networks: - proxy networks: proxy: external: true volumes: caddymanager_data: mongo_data: ``` ### Option 2 : Variante Traefik (dĂ©conseillĂ©e) CaddyManager est lui-mĂȘme une GUI Caddy : il **n'a pas vocation Ă  coexister** avec Traefik. Si vous utilisez dĂ©jĂ  Traefik, **vous n'avez pas besoin** de CaddyManager. ## ⚙ Configuration Initiale 1. **Lancer** : `docker compose up -d` 2. **AccĂ©der Ă  la WebUI** : `http://localhost:5000` 3. **CrĂ©er le compte admin** au premier lancement 4. **Enregistrer une instance Caddy** : - Nom : `prod-caddy-01` - URL de l'API Caddy : `http://caddy-instance:2019` (l'API admin de Caddy) - Authentification : token si configurĂ© sur Caddy 5. **Éditer le Caddyfile** dans l'onglet "Configs" → Save → Reload ```caddyfile # /etc/caddy/Caddyfile # CaddyManager gĂ©nĂšre / Ă©dite ce fichier app.example.com { reverse_proxy app-backend:8080 } api.example.com { basicauth { admin $2a$14$hash-bcrypt } reverse_proxy api-backend:5000 } ``` ```bash # Activer l'API admin de Caddy (cĂŽtĂ© instance gĂ©rĂ©e) # /etc/caddy/Caddyfile - ajouter : { admin localhost:2019 # Ou pour accĂšs distant : # admin 0.0.0.0:2019 } ``` ## 🔀 Alternatives ### Open Source - **Caddyfile + scripts maison** : pas de GUI, mais mature - [[app-nginx-proxy-manager]] — GUI pour Nginx, plus mature - [[app-swag]] — Reverse proxy Nginx clĂ©-en-main - [[app-caddy]] — Caddy lui-mĂȘme, sans GUI ### Comparaison CaddyManager vs NPM vs Caddy natif | CritĂšre | CaddyManager | NPM | Caddy seul | | :--- | :--- | :--- | :--- | | Reverse proxy | Caddy (multi) | Nginx (mono) | Caddy (mono) | | Interface web | ✅ | ✅ | ❌ | | Multi-instance | ✅ | ❌ | ❌ | | HTTPS auto | ✅ (Caddy) | ✅ | ✅ | | StabilitĂ© | ⚠ Alpha | ✅ | ✅ TrĂšs stable | | MaturitĂ© | ⚠ RĂ©cent | ✅ Mature | ✅ TrĂšs mature | | API admin Caddy | ✅ Native | N/A | ✅ | | Hot reload | ✅ | ✅ | ✅ | ### PropriĂ©taires (ce que CaddyManager remplace) - **RunCloud / ServerPilot** : panels de gestion Caddy/Nginx - **Ploi** : panel de gestion serveur - **Cloudflare Dashboard** (pour la partie reverse proxy) ## 🔒 SĂ©curitĂ© - ✅ **Authentification WebUI** (multi-users) - ✅ **Sessions JWT** avec expiration - ✅ **HTTPS supportĂ©** (Ă  configurer via reverse proxy externe) - ⚠ **Alpha** : bugs de sĂ©curitĂ© probables, Ă  ne pas exposer publiquement - ⚠ **API admin Caddy** : trĂšs sensible, ne pas exposer sur Internet - ⚠ **MongoDB** sans auth par dĂ©faut : configurer `MONGO_INITDB_ROOT_USERNAME` / `MONGO_INITDB_ROOT_PASSWORD` - ⚠ **Pas d'audit de sĂ©curitĂ©** : projet jeune, Ă  mettre derriĂšre un VPN ou un auth fort ## 📚 Ressources - [README GitHub](https://github.com/caddymanager/caddymanager) - [Annonce Reddit - CaddyManager 0.0.1](https://www.reddit.com/r/selfhosted/comments/1lnnbo2/caddymanager_001_web_ui_for_managing_caddy/) - [Discussion communautĂ© Caddy](https://caddy.community/t/caddymanager-0-0-1-a-web-ui-to-manage-multiple-caddy-instances/31396) - [Wiki selfh.st](https://selfh.st/apps/?tag=Reverse+Proxy) ## 🔗 Pages LiĂ©es - [[cat-reverse-proxy]] — CatĂ©gorie Reverse Proxy - [[app-caddy]] — Caddy lui-mĂȘme - [[app-nginx-proxy-manager]] — Concurrent GUI (Nginx) - [[app-swag]] — Concurrent clĂ©-en-main - [[comparatif-reverse-proxy]] — Comparaison dĂ©taillĂ©e - [[securisation-home-lab]] — SĂ©curitĂ©