extract goatcounter to role
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}" ]; + }; +}