6.3 KiB
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 |
| GitHub | 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, 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é)
# 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
- Lancer :
docker compose up -d - Accéder à la WebUI :
http://localhost:5000 - Créer le compte admin au premier lancement
- 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
- Nom :
- Éditer le Caddyfile dans l'onglet "Configs" → Save → Reload
# /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
}
# 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
🔗 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é