Retour aux outils
Dev ToolsIntermédiaireOpen sourceAuto-hébergeablev0.0.2

CaddyManager

**Interface web pour gérer plusieurs instances Caddy, construite sur la stack MEVN**. Réputation : p

MAJ 2026-06-14
CaddyManager
Site officiel Code source★ 1 071

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'interfa

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

  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
# /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èreCaddyManagerNPMCaddy seul
Reverse proxyCaddy (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✅ NativeN/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