all repos — nixfiles @ ba626809fd02bb01fa3cee9ab03d21f2f3536451

System and user configuration, managed by nix and home-manager

extract goatcounter to role

Alin
commit

ba626809fd02bb01fa3cee9ab03d21f2f3536451

parent

d1dc4ad07c465ed07650d4a7af2f16f5e2a00662

1 file changed, 45 insertions(+), 0 deletions(-)

changed files
A system/roles/goatcounter.nix
@@ -0,0 +1,45 @@
+{ + config, + ... +}: +let + domain = config.networking.domain; +in +{ + services.goatcounter = { + enable = true; + address = "localhost"; + port = 8082; + proxy = true; + extraArgs = [ + "-db" + "sqlite3+db/goatcounter.sqlite3" + "-websocket" + "-automigrate" + "-email-from" + "goatcounter@${domain}" + "-smtp" + "smtp://localhost:25" + "-ratelimit" + "api-count:100/1" + ]; + }; + + services.caddy.virtualHosts = { + "stats.${domain}" = + let + srv = config.services.goatcounter; + in + { + useACMEHost = "stats.${domain}"; + serverAliases = [ "*.stats.${domain}" ]; + extraConfig = '' + reverse_proxy ${srv.address}:${toString srv.port} + ''; + }; + }; + + security.acme.certs."stats.${domain}" = { + extraDomainNames = [ "*.stats.${domain}" ]; + }; +}