Aller au contenu

Installer Caddy sur Ubuntu

Ce guide installe Caddy, un serveur web avec HTTPS automatique, sur Ubuntu 24.04 et 26.04, depuis le dépôt officiel Caddy. Une fois installé, voir les principales commandes Caddy.

  • Ubuntu 24.04 LTS (Noble) ou 26.04 LTS (Resolute).
  • Un utilisateur disposant de sudo.
  • Pour HTTPS : un nom de domaine dont les enregistrements DNS (A et/ou AAAA) pointent vers l’adresse IP publique du serveur.
  • Les ports 80 et 443 ouverts et libres (aucun autre serveur web ne doit les utiliser).
Fenêtre de terminal
sudo apt install -y debian-keyring debian-archive-keyring apt-transport-https curl
curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/gpg.key' | sudo gpg --dearmor -o /usr/share/keyrings/caddy-stable-archive-keyring.gpg
curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/debian.deb.txt' | sudo tee /etc/apt/sources.list.d/caddy-stable.list
sudo chmod o+r /usr/share/keyrings/caddy-stable-archive-keyring.gpg
sudo chmod o+r /etc/apt/sources.list.d/caddy-stable.list
Fenêtre de terminal
sudo apt update
sudo apt install caddy

Le paquet crée l’utilisateur caddy, installe le service systemd et le démarre.

Le dépôt Caddy est indépendant de la version d’Ubuntu (any-version) : les commandes sont les mêmes sur 24.04 et 26.04.

Fenêtre de terminal
caddy version
sudo systemctl status caddy
sudo systemctl enable --now caddy # démarrage automatique au boot
curl -I http://localhost # doit répondre 200 (page par défaut)

Fichiers et emplacements :

Élément Emplacement
Configuration /etc/caddy/Caddyfile
Service caddy.service (utilisateur caddy)
Logs journalctl -u caddy
Page par défaut /usr/share/caddy
Certificats et données /var/lib/caddy

Si le pare-feu UFW est actif :

Fenêtre de terminal
sudo ufw allow 80,443/tcp
sudo ufw status

Modifiez /etc/caddy/Caddyfile en remplaçant son contenu par un site statique :

exemple.com {
root * /var/www/site
file_server
}

Créez le dossier et une page de test :

Fenêtre de terminal
sudo mkdir -p /var/www/site
echo '<h1>Bonjour</h1>' | sudo tee /var/www/site/index.html

Validez puis rechargez la configuration :

Fenêtre de terminal
sudo caddy validate --config /etc/caddy/Caddyfile
sudo systemctl reload caddy

Caddy obtient et renouvelle automatiquement le certificat HTTPS (Let’s Encrypt) dès que le DNS du domaine pointe vers le serveur et que les ports 80 et 443 sont joignables.

Caddy tourne sous l’utilisateur caddy : il doit pouvoir lire le dossier servi.

Fenêtre de terminal
sudo chown -R $USER:www-data /var/www/site # exemple : propriétaire = vous, groupe = www-data
sudo chmod -R u=rwX,g=rX,o=rX /var/www/site

Ubuntu 24.04 et 26.04 : différences à connaître

Section intitulée « Ubuntu 24.04 et 26.04 : différences à connaître »

Aucun changement n’est cassant pour Caddy : l’installation, le service et le Caddyfile sont identiques sur les deux versions. Points à connaître :

Caddy se met à jour avec le système :

Fenêtre de terminal
sudo apt update
sudo apt upgrade

Pour mettre à jour uniquement Caddy : sudo apt install --only-upgrade caddy. Rechargez ensuite avec sudo systemctl reload caddy si nécessaire.

Fenêtre de terminal
sudo apt purge caddy
sudo rm /etc/apt/sources.list.d/caddy-stable.list /usr/share/keyrings/caddy-stable-archive-keyring.gpg
Symptôme Cause probable et solution
Caddy ne démarre pas, port 80 ou 443 occupé Un autre serveur web écoute déjà. Voir qui : sudo ss -tlnp | grep -E ':80|:443', puis arrêter l’autre service (par exemple sudo systemctl disable --now apache2)
Le certificat n’est pas émis Vérifier le DNS du domaine, les ports 80/443 ouverts (UFW et pare-feu de l’hébergeur) et les logs : journalctl -u caddy --no-pager -n 100
Erreur 403 ou fichiers introuvables Droits insuffisants pour l’utilisateur caddy (section 6) ou mauvais root
Erreur après modification du Caddyfile Lancer sudo caddy validate --config /etc/caddy/Caddyfile avant le rechargement