diff options
author | Ismaël Bouya <ismael.bouya@normalesup.org> | 2019-01-06 12:43:51 +0100 |
---|---|---|
committer | Ismaël Bouya <ismael.bouya@normalesup.org> | 2019-01-06 12:43:51 +0100 |
commit | 6f0d92b429069069e6d914f25bb30a549526f9d8 (patch) | |
tree | 190b893e91a1414c81276498dcd571e79e89660f /virtual/eldiron.nix | |
parent | 6c672f344e2de6852cfa97ed789726bcd54cc83c (diff) | |
download | Nix-6f0d92b429069069e6d914f25bb30a549526f9d8.tar.gz Nix-6f0d92b429069069e6d914f25bb30a549526f9d8.tar.zst Nix-6f0d92b429069069e6d914f25bb30a549526f9d8.zip |
Add statistics for aten website
Diffstat (limited to 'virtual/eldiron.nix')
-rw-r--r-- | virtual/eldiron.nix | 39 |
1 files changed, 38 insertions, 1 deletions
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 @@ | |||
42 | cmakeFlags = old.cmakeFlags ++ [ "-DWITH_AUTHENTICATION_PAM=ON" ]; | 42 | cmakeFlags = old.cmakeFlags ++ [ "-DWITH_AUTHENTICATION_PAM=ON" ]; |
43 | buildInputs = old.buildInputs ++ [ pkgs.pam ]; | 43 | buildInputs = old.buildInputs ++ [ pkgs.pam ]; |
44 | }); | 44 | }); |
45 | goaccess = oldpkgs.goaccess.overrideAttrs(old: rec { | ||
46 | name = "goaccess-${version}"; | ||
47 | version = "1.3"; | ||
48 | src = pkgs.fetchurl { | ||
49 | url = "https://tar.goaccess.io/${name}.tar.gz"; | ||
50 | sha256 = "16vv3pj7pbraq173wlxa89jjsd279004j4kgzlrsk1dz4if5qxwc"; | ||
51 | }; | ||
52 | configureFlags = old.configureFlags ++ [ "--enable-tcb=btree" ]; | ||
53 | buildInputs = old.buildInputs ++ [ pkgs.tokyocabinet pkgs.bzip2 ]; | ||
54 | }); | ||
45 | }; | 55 | }; |
46 | 56 | ||
47 | networking = { | 57 | networking = { |
@@ -85,6 +95,7 @@ | |||
85 | in [ | 95 | in [ |
86 | pkgs.telnet | 96 | pkgs.telnet |
87 | pkgs.vim | 97 | pkgs.vim |
98 | pkgs.goaccess | ||
88 | occ | 99 | occ |
89 | ]; | 100 | ]; |
90 | 101 | ||
@@ -247,6 +258,10 @@ | |||
247 | fi | 258 | fi |
248 | ''; | 259 | ''; |
249 | }; | 260 | }; |
261 | goaccess = '' | ||
262 | mkdir -p /var/lib/goaccess | ||
263 | mkdir -p /var/lib/goaccess/aten.pro | ||
264 | ''; | ||
250 | }; | 265 | }; |
251 | 266 | ||
252 | environment.etc."ssh/ldap_authorized_keys" = let | 267 | environment.etc."ssh/ldap_authorized_keys" = let |
@@ -313,6 +328,19 @@ | |||
313 | AuthBasicProvider ldap | 328 | AuthBasicProvider ldap |
314 | </IfModule> | 329 | </IfModule> |
315 | </Macro> | 330 | </Macro> |
331 | |||
332 | <Macro Stats %{domain}> | ||
333 | Alias /awstats /var/lib/goaccess/%{domain} | ||
334 | <Directory /var/lib/goaccess/%{domain}> | ||
335 | DirectoryIndex index.html | ||
336 | AllowOverride None | ||
337 | Require all granted | ||
338 | </Directory> | ||
339 | <Location /awstats> | ||
340 | Use LDAPConnect | ||
341 | Require ldap-group cn=%{domain},ou=stats,cn=httpd,ou=services,dc=immae,dc=eu | ||
342 | </Location> | ||
343 | </Macro> | ||
316 | ''; | 344 | ''; |
317 | }; | 345 | }; |
318 | http2 = { | 346 | http2 = { |
@@ -324,7 +352,7 @@ | |||
324 | customLog = { | 352 | customLog = { |
325 | modules = []; | 353 | modules = []; |
326 | extraConfig = '' | 354 | extraConfig = '' |
327 | LogFormat "%v %h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\" %p" combinedVhost | 355 | LogFormat "%v:%p %h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combinedVhost |
328 | ''; | 356 | ''; |
329 | }; | 357 | }; |
330 | }; | 358 | }; |
@@ -525,5 +553,14 @@ | |||
525 | #host all all all pam | 553 | #host all all all pam |
526 | ''; | 554 | ''; |
527 | }; | 555 | }; |
556 | |||
557 | services.cron = { | ||
558 | enable = true; | ||
559 | systemCronJobs = let | ||
560 | 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}"; | ||
561 | in [ | ||
562 | "5 0 * * * root ${stats "aten.pro" ./packages/aten_goaccess.conf}" | ||
563 | ]; | ||
564 | }; | ||
528 | }; | 565 | }; |
529 | } | 566 | } |