{ config, ... }: let inherit (import ./lib.nix config) mkContainer terakoda hostRule; in { virtualisation.oci-containers.containers.goatcounter = mkContainer { image = "arp242/goatcounter"; hostName = "goatcounter"; domain = terakoda; public = true; port = 8080; volumes = [ "goatcounter-data:/home/goatcounter/goatcounter-data" ]; # Sends www.terakoda.com/analytics to goatcounter and strips the /analytics prefix. # extraLabels = { # "traefik.http.middlewares.strip-analytics.stripprefix.prefixes" = "/analytics"; # "traefik.http.routers.www-terakoda-com-goatcounter.middlewares" = "strip-analytics"; # "traefik.http.routers.www-terakoda-com-goatcounter.rule" = # "(PathPrefix(`/analytics`) || PathPrefix(`/count`) || Path(`/count`)) && ${hostRule "www" terakoda}"; # "traefik.http.routers.www-terakoda-com-goatcounter.service" = "goatcounter"; # }; }; }