2025-09-20 14:57:06 +02:00
|
|
|
|
{ config, pkgs, ... }:
|
|
|
|
|
|
{
|
2025-09-24 23:33:06 +02:00
|
|
|
|
# -----------------------------------------------------------------
|
|
|
|
|
|
# 1️⃣ Caddy (reverse‑proxy / serveur web statique)
|
|
|
|
|
|
# -----------------------------------------------------------------
|
2025-09-20 14:57:06 +02:00
|
|
|
|
services.caddy = {
|
|
|
|
|
|
enable = true;
|
|
|
|
|
|
|
2025-09-24 23:33:06 +02:00
|
|
|
|
# Caddy démarre en tant qu’utilisateur « caddy ».
|
|
|
|
|
|
# On lui donne accès au répertoire du blog via les ACL créées plus haut.
|
|
|
|
|
|
# (Pas besoin de config supplémentaire côté OS.)
|
2025-09-20 14:57:06 +02:00
|
|
|
|
|
2025-09-24 23:33:06 +02:00
|
|
|
|
# -----------------------------------------------------------------
|
|
|
|
|
|
# 2️⃣ Sites gérés par Caddy (Caddyfile intégré)
|
|
|
|
|
|
# -----------------------------------------------------------------
|
2025-09-20 14:57:06 +02:00
|
|
|
|
virtualHosts = {
|
|
|
|
|
|
"levr.porzh.me" = {
|
2025-09-24 23:33:06 +02:00
|
|
|
|
# Le domaine sera automatiquement provisionné avec TLS via ACME
|
|
|
|
|
|
# (Let's Encrypt) grâce à l’option `autoHTTPS = true` (défaut).
|
|
|
|
|
|
# Aucun certificat manuel n’est requis.
|
2025-09-20 14:57:06 +02:00
|
|
|
|
|
2025-09-24 23:33:06 +02:00
|
|
|
|
# Le répertoire contenant les fichiers générés par Hugo
|
2025-09-20 14:57:06 +02:00
|
|
|
|
|
2025-09-24 23:33:06 +02:00
|
|
|
|
# (Optionnel) Rediriger HTTP → HTTPS – Caddy le fait déjà,
|
|
|
|
|
|
# mais on le rend explicite pour la clarté.
|
2025-09-20 14:57:06 +02:00
|
|
|
|
extraConfig = ''
|
|
|
|
|
|
@http {
|
|
|
|
|
|
protocol http
|
|
|
|
|
|
}
|
2025-09-24 23:33:06 +02:00
|
|
|
|
redir @http https://{host}{uri} permanent
|
2025-09-20 14:57:06 +02:00
|
|
|
|
root * /srv/blog/public
|
|
|
|
|
|
file_server
|
2025-09-24 23:33:06 +02:00
|
|
|
|
|
|
|
|
|
|
log {
|
|
|
|
|
|
output file /var/log/caddy/access-levr.porzh.me.log
|
|
|
|
|
|
}
|
2025-09-20 14:57:06 +02:00
|
|
|
|
'';
|
|
|
|
|
|
};
|
|
|
|
|
|
};
|
|
|
|
|
|
};
|
|
|
|
|
|
|
2025-09-24 23:33:06 +02:00
|
|
|
|
# -----------------------------------------------------------------
|
|
|
|
|
|
# 3️⃣ Ouverture du firewall (ports 80 et 443)
|
|
|
|
|
|
# -----------------------------------------------------------------
|
2025-10-04 09:46:20 +02:00
|
|
|
|
# networking.firewall.allowedTCPPorts = [
|
|
|
|
|
|
# 80 # HTTP (pour la redirection ACME)
|
|
|
|
|
|
# 443 # HTTPS (site final)
|
|
|
|
|
|
# ];
|
2025-09-20 14:57:06 +02:00
|
|
|
|
}
|