X-Git-Url: https://git.immae.eu/?p=perso%2FImmae%2FConfig%2FNix.git;a=blobdiff_plain;f=virtual%2Feldiron.nix;h=c1a7761c3802aebebdf98b84045a400b3f78e259;hp=68eddf607446c5630f46ac13b9659271893c6377;hb=6f0d92b429069069e6d914f25bb30a549526f9d8;hpb=6c672f344e2de6852cfa97ed789726bcd54cc83c diff --git a/virtual/eldiron.nix b/virtual/eldiron.nix index 68eddf6..c1a7761 100644 --- a/virtual/eldiron.nix +++ b/virtual/eldiron.nix @@ -42,6 +42,16 @@ cmakeFlags = old.cmakeFlags ++ [ "-DWITH_AUTHENTICATION_PAM=ON" ]; buildInputs = old.buildInputs ++ [ pkgs.pam ]; }); + goaccess = oldpkgs.goaccess.overrideAttrs(old: rec { + name = "goaccess-${version}"; + version = "1.3"; + src = pkgs.fetchurl { + url = "https://tar.goaccess.io/${name}.tar.gz"; + sha256 = "16vv3pj7pbraq173wlxa89jjsd279004j4kgzlrsk1dz4if5qxwc"; + }; + configureFlags = old.configureFlags ++ [ "--enable-tcb=btree" ]; + buildInputs = old.buildInputs ++ [ pkgs.tokyocabinet pkgs.bzip2 ]; + }); }; networking = { @@ -85,6 +95,7 @@ in [ pkgs.telnet pkgs.vim + pkgs.goaccess occ ]; @@ -247,6 +258,10 @@ fi ''; }; + goaccess = '' + mkdir -p /var/lib/goaccess + mkdir -p /var/lib/goaccess/aten.pro + ''; }; environment.etc."ssh/ldap_authorized_keys" = let @@ -313,6 +328,19 @@ AuthBasicProvider ldap + + + Alias /awstats /var/lib/goaccess/%{domain} + + DirectoryIndex index.html + AllowOverride None + Require all granted + + + Use LDAPConnect + Require ldap-group cn=%{domain},ou=stats,cn=httpd,ou=services,dc=immae,dc=eu + + ''; }; http2 = { @@ -324,7 +352,7 @@ customLog = { modules = []; extraConfig = '' - LogFormat "%v %h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\" %p" combinedVhost + LogFormat "%v:%p %h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combinedVhost ''; }; }; @@ -525,5 +553,14 @@ #host all all all pam ''; }; + + services.cron = { + enable = true; + systemCronJobs = let + stats = domain: conf: "${pkgs.gnused}/bin/sed -n '/\\['$(LC_ALL=C ${pkgs.coreutils}/bin/date -d yesterday +'%d\\/%b\\/%Y')'/ p' /var/log/httpd/access_log-${domain} | ${pkgs.goaccess}/bin/goaccess -o /var/lib/goaccess/${domain}/index.html -p ${conf}"; + in [ + "5 0 * * * root ${stats "aten.pro" ./packages/aten_goaccess.conf}" + ]; + }; }; }