Skip to content

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

pct exec 103 -- bash
nano /root/docker-compose/caddy/Caddyfile

Sans SSO :

newservice.ncls.ltd {
    import security_headers
    reverse_proxy TARGET_IP:PORT
}

Avec SSO Authelia :

newservice.ncls.ltd {
    import security_headers
    import authelia_sso
    reverse_proxy TARGET_IP:PORT
}

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.ymlaccess_control puis :

pct exec 103 -- docker restart authelia

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/"