Guide Complet : Héberger votre site web avec Caddy

De A à Z, comme nous l'avons fait ensemble.

Bienvenue dans ce tutoriel détaillé qui vous guidera pas à pas pour mettre en ligne votre propre site web. Nous utiliserons Caddy, un serveur web moderne, simple et puissant, reconnu pour sa configuration automatique du HTTPS.

Prérequis :

Étape 1 : Installer Caddy

Caddy n'est généralement pas installé par défaut. Nous allons l'ajouter à votre système.

1.1 Mettre à jour les paquets et installer les dépendances

sudo apt update
sudo apt install -y debian-keyring debian-archive-keyring apt-transport-https

1.2 Ajouter la clé GPG et le dépôt Caddy

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

1.3 Installer Caddy

sudo apt update
sudo apt install caddy

Étape 2 : Configurer le Pare-feu (Très Important pour le HTTPS)

Pour que Caddy puisse obtenir un certificat SSL (HTTPS), les ports 80 et 443 de votre serveur doivent être ouverts.

sudo apt install ufw -y
sudo ufw allow 22/tcp  # Pour votre connexion SSH
sudo ufw allow 80/tcp  # Pour le trafic HTTP
sudo ufw allow 443/tcp # Pour le trafic HTTPS
sudo ufw --force enable
Attention : Si un autre pare-feu (fournisseur VPS) est en place, configurez-le aussi.

Étape 3 : Créer le dossier de votre site web

Créez un dossier où seront stockés les fichiers de votre site. Nous utiliserons /var/www/votre-domaine.

sudo mkdir -p /var/www/votre-domaine

Créez un fichier index.html simple pour commencer :

sudo nano /var/www/votre-domaine/index.html

Collez-y ce contenu (par exemple) :

<!DOCTYPE html>
<html lang="fr">
<head>
    <meta charset="UTF-8">
    <title>Mon Super Site</title>
</head>
<body>
    <h1>Mon site avec Caddy est en ligne !</h1>
</body>
</html>

Enregistrez (Ctrl+O, Entrée) et quittez (Ctrl+X).

Étape 4 : Configurer Caddy (le Caddyfile)

Le Caddyfile est le cœur de la configuration de Caddy. Nous allons lui dire quel dossier servir pour quel nom de domaine.

4.1 Ouvrir le Caddyfile

sudo nano /etc/caddy/Caddyfile

4.2 Votre première configuration

Supprimez tout contenu existant et ajoutez :

votre-domaine.com {
    root * /var/www/votre-domaine
    file_server
}
Remplacez votre-domaine.com par votre vrai nom de domaine. Caddy gérera le HTTPS automatiquement.

Enregistrez (Ctrl+O, Entrée) et quittez (Ctrl+X).

Étape 5 : Démarrer Caddy et vérifier

Caddy est un service système. Nous le gérons avec systemctl.

5.1 Arrêter les serveurs concurrents (Apache/Nginx)

Si Apache ou Nginx sont installés, ils peuvent bloquer Caddy.

sudo systemctl stop apache2 nginx
sudo systemctl disable apache2 nginx

5.2 Démarrer Caddy

sudo systemctl restart caddy

Caddy va maintenant tenter d'obtenir un certificat SSL. Cela peut prendre quelques secondes.

5.3 Vérifier le statut

sudo systemctl status caddy

Vous devriez voir active (running) en vert. S'il y a une erreur, regardez les logs :

sudo journalctl -u caddy --no-pager | tail -n 20

Étape 6 : Accéder à votre site

Ouvrez votre navigateur et tapez https://votre-domaine.com. Vous devriez voir votre page et le cadenas de sécurité !

Étape 7 : Héberger plusieurs sites (Multi-site)

Pour ajouter un second site (ex: mon-autre-site.com) :

7.1 Créer son dossier et son index.html

sudo mkdir -p /var/www/mon-autre-site
echo '<h1>Mon autre site !</h1>' | sudo tee /var/www/mon-autre-site/index.html

7.2 Ajouter le site au Caddyfile

Ouvrez le Caddyfile et ajoutez un nouveau bloc :

sudo nano /etc/caddy/Caddyfile

Votre fichier ressemblera à :

votre-domaine.com {
    root * /var/www/votre-domaine
    file_server
}

mon-autre-site.com {
    root * /var/www/mon-autre-site
    file_server
}

Enregistrez et quittez.

7.3 Recharger Caddy

sudo systemctl reload caddy

N'oubliez pas de configurer le DNS pour mon-autre-site.com aussi !

Félicitations !

Vous êtes maintenant capable d'installer, configurer et gérer un serveur web Caddy pour un ou plusieurs sites. C'est une compétence précieuse !