Add: goaccess for blog

This commit is contained in:
DuN0z 2025-09-24 23:33:06 +02:00
parent 4eb2698dac
commit 9017181db2
4 changed files with 63 additions and 52 deletions

View file

@ -0,0 +1,38 @@
{ pkgs, ... }: {
environment.systemPackages = with pkgs; [
goaccess
];
# Service pour générer le rapport statique GoAccess
systemd.services.goaccess-report = {
description = "Generate GoAccess HTML report";
serviceConfig = {
ExecStart = "${pkgs.goaccess}/bin/goaccess /var/log/caddy/access-levr.porzh.me.log --log-format=CADDY -o /var/www/goaccess/index.html";
};
};
# Timer pour régénérer le rapport toutes les heures
systemd.timers.goaccess-report = {
description = "Hourly GoAccess report generation";
wantedBy = [ "timers.target" ];
timerConfig = {
OnCalendar = "hourly";
Persistent = true;
};
};
services.caddy = {
virtualHosts = {
"koum.porzh.me" = {
extraConfig = ''
root * /var/www/goaccess
file_server browse
try_files {path} {path}/ /index.html
${builtins.readFile ../../secrets/admin-passwd}
'';
};
};
};
}

View file

@ -1,31 +0,0 @@
{ pkgs, ...}:
{
services.nginx.enable = false ;
services.phpfpm.pools.nextcloud.settings."listen.owner" = "nextcloud";
services.phpfpm.pools.nextcloud.settings."listen.group" = "caddy";
services.phpfpm.pools.nextcloud.settings."listen.mode" = "0660";
services.caddy.virtualHosts."koum.porzh.me".extraConfig = ''
root * ${pkgs.nextcloud31}/
php_fastcgi unix//run/phpfpm/nextcloud.sock
file_server
header {
Strict-Transport-Security "max-age=31536000; includeSubDomains"
X-Content-Type-Options" "nosniff"
X-Frame-Options "SAMEORIGIN"
X-XSS-Protection "1; mode=block"
Referrer-Policy "same-origin"
# Permission-Policy "camera=(), moicrophone=(), geolocation=()"
}
'';
services.nextcloud = {
enable = true ;
package = pkgs.nextcloud31;
hostName = "koum.porzh.me";
database.createLocally = true ;
config = {
dbtype = "sqlite";
adminpassFile="/home/lomig/.config/nextcloud.pass";
};
};
}

View file

@ -1,45 +1,49 @@
{ config, pkgs, ... }:
{
# -----------------------------------------------------------------
# 1⃣ Caddy (reverseproxy / serveur web statique)
# -----------------------------------------------------------------
# -----------------------------------------------------------------
# 1⃣ Caddy (reverseproxy / serveur web statique)
# -----------------------------------------------------------------
services.caddy = {
enable = true;
# 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.)
# 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.)
# -----------------------------------------------------------------
# 2⃣ Sites gérés par Caddy (Caddyfile intégré)
# -----------------------------------------------------------------
# -----------------------------------------------------------------
# 2⃣ Sites gérés par Caddy (Caddyfile intégré)
# -----------------------------------------------------------------
virtualHosts = {
"levr.porzh.me" = {
# Le domaine sera automatiquement provisionné avec TLS via ACME
# (Let's Encrypt) grâce à loption `autoHTTPS = true` (défaut).
# Aucun certificat manuel nest requis.
# Le domaine sera automatiquement provisionné avec TLS via ACME
# (Let's Encrypt) grâce à loption `autoHTTPS = true` (défaut).
# Aucun certificat manuel nest requis.
# Le répertoire contenant les fichiers générés par Hugo
# Le répertoire contenant les fichiers générés par Hugo
# (Optionnel) Rediriger HTTP → HTTPS Caddy le fait déjà,
# mais on le rend explicite pour la clarté.
# (Optionnel) Rediriger HTTP → HTTPS Caddy le fait déjà,
# mais on le rend explicite pour la clarté.
extraConfig = ''
@http {
protocol http
}
redir @http https://{host}{uri} permanent
redir @http https://{host}{uri} permanent
root * /srv/blog/public
file_server
log {
output file /var/log/caddy/access-levr.porzh.me.log
}
'';
};
};
};
# -----------------------------------------------------------------
# 3⃣ Ouverture du firewall (ports 80 et 443)
# -----------------------------------------------------------------
# -----------------------------------------------------------------
# 3⃣ Ouverture du firewall (ports 80 et 443)
# -----------------------------------------------------------------
networking.firewall.allowedTCPPorts = [
80 # HTTP (pour la redirection ACME)
443 # HTTPS (site final)
443 # HTTPS (site final)
];
}

View file

@ -4,7 +4,7 @@
../modules/common/base.nix
../modules/common/networking.nix
../modules/services/printing.nix
../modules/services/nextcloud.nix
../modules/services/goaccess.nix
../modules/sites/porzh.me.nix
../modules/sites/levr.porzh.me.nix
];