Initial vault setup
This commit is contained in:
@@ -0,0 +1,179 @@
|
||||
---
|
||||
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é
|
||||
Reference in New Issue
Block a user