nixos-config/modules/sites/levr.porzh.me.nix

50 lines
1.6 KiB
Nix
Raw Normal View History

2025-09-20 14:57:06 +02:00
{ config, pkgs, ... }:
{
2025-09-24 23:33:06 +02:00
# -----------------------------------------------------------------
# 1⃣ Caddy (reverseproxy / 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 quutilisateur «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 à loption `autoHTTPS = true` (défaut).
# Aucun certificat manuel nest 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)
# -----------------------------------------------------------------
# networking.firewall.allowedTCPPorts = [
# 80 # HTTP (pour la redirection ACME)
# 443 # HTTPS (site final)
# ];
2025-09-20 14:57:06 +02:00
}