Caddy¶
Stack : Caddy + Authelia SSO
Container : LXC 103 (192.168.1.103)
Ports : 80/HTTP, 443/HTTPS, 443/UDP (HTTP/3)
Domaines exposés : voir Proxy & SSL.
Structure des fichiers¶
/root/docker-compose/caddy/
├── Caddyfile # Config unique
├── data/ # Certificats Let's Encrypt + compte ACME (sauvegardé par PBS)
├── config/ # État Caddy (JSON compilé)
└── logs/ # Logs d'accès Caddy
/root/docker-compose/nginx/
└── html/ # Contenu statique ncls.ltd (réutilisé par Caddy monté en /srv/html)
Ajouter un proxy host¶
1. Ajouter un bloc dans le Caddyfile¶
Sans SSO :
Avec SSO Authelia :
2. Recharger Caddy¶
pct exec 103 -- docker exec caddy caddy reload --config /etc/caddy/Caddyfile
# Caddy émet automatiquement le certificat Let's Encrypt via HTTP-01 au premier accès
3. DNS Spaceship (ncls.ltd)¶
Le wildcard DNS *.ncls.ltd → 82.64.239.176 couvre déjà tout nouveau sous-domaine.
Aucun enregistrement DNS à ajouter pour les sous-domaines ncls.ltd.
Pour les domaines externes (.fr) : ajouter un A record dans le panel OVH.
4. Authelia (si SSO)¶
Ajouter le domaine dans /root/docker-compose/authelia/configuration.yml → access_control puis :
Voir Authelia pour le détail.
Gestion des certificats¶
Caddy gère les certificats entièrement en autonomie. Vérification :
# Lister les certificats Caddy
pct exec 103 -- bash -c "ls /root/docker-compose/caddy/data/caddy/certificates/acme-v02.api.letsencrypt.org-directory/"
# Logs Caddy (suivi en direct)
pct exec 103 -- docker logs caddy --tail 50 -f
Maintenance¶
# Status services
pct exec 103 -- docker ps | grep -E "caddy|authelia"
# Recharger la config sans downtime
pct exec 103 -- docker exec caddy caddy reload --config /etc/caddy/Caddyfile
# Valider la syntaxe Caddyfile
pct exec 103 -- docker exec caddy caddy validate --config /etc/caddy/Caddyfile
# Backup config
pct exec 103 -- bash -c "cd /root/docker-compose && tar -czf backup-caddy-$(date +%Y%m%d).tar.gz caddy/"