Aller au contenu

Les principales commandes Caddy

Caddy est un serveur web avec HTTPS automatique. Cet aide-mémoire regroupe les commandes et les directives de Caddyfile les plus courantes. Caddy n’est pas encore installé ? Voir Installer Caddy sur Ubuntu.

Commande Rôle
caddy version Affiche la version
caddy run Démarre Caddy au premier plan (utile pour tester)
caddy start Démarre Caddy en arrière-plan
caddy stop Arrête Caddy
caddy reload --config /etc/caddy/Caddyfile Recharge la configuration sans coupure
caddy validate --config /etc/caddy/Caddyfile Vérifie la configuration sans l’appliquer
caddy fmt --overwrite /etc/caddy/Caddyfile Reformate le Caddyfile
caddy adapt --config Caddyfile --pretty Convertit le Caddyfile en JSON
caddy list-modules Liste les modules disponibles
caddy hash-password Génère un hash pour l’authentification basique
caddy trust Installe l’autorité de certification locale (HTTPS en développement)
Fenêtre de terminal
sudo systemctl status caddy
sudo systemctl enable --now caddy # activer au démarrage
sudo systemctl reload caddy # recharge la configuration
sudo systemctl restart caddy
journalctl -u caddy --no-pager -n 100 # derniers logs

Bonne pratique : valider avant de recharger.

Fenêtre de terminal
sudo caddy validate --config /etc/caddy/Caddyfile && sudo systemctl reload caddy
Fenêtre de terminal
caddy file-server --browse --listen :8080 # servir le dossier courant
caddy reverse-proxy --from :8080 --to localhost:3000 # proxy inverse

Quelques exemples rapides. Pour une bibliothèque plus complète (sécurité, protection de dossier, reverse proxy, optimisations), voir Caddyfile : exemples de directives réutilisables.

exemple.com {
root * /var/www/site
encode zstd gzip
file_server
}
app.exemple.com {
reverse_proxy 127.0.0.1:3000
}
www.exemple.com {
redir https://exemple.com{uri} permanent
}
exemple.com {
root * /var/www/site
file_server
@assets path /assets/*
header @assets Cache-Control "public, max-age=31536000, immutable"
header {
Strict-Transport-Security "max-age=31536000"
X-Content-Type-Options "nosniff"
-Server
}
}
exemple.com {
root * /var/www/site
file_server
handle_errors {
@notfound `{err.status_code} == 404`
rewrite @notfound /404.html
file_server
}
}
admin.exemple.com {
basic_auth {
utilisateur $2a$14$HASH_GENERE_PAR_CADDY_HASH_PASSWORD
}
reverse_proxy 127.0.0.1:9000
}