Files
wiki/Catalogue-Self-Hosted/apps/app-caddymanager.md
T
2026-06-09 18:40:21 +02:00

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

  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

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