{ config, ... }: let inherit (import ./lib.nix config) terakoda blazestar hostRule ; in { imports = [ ../../../features/web-containers.nix ]; virtualisation.web-containers = { enable = true; containers = { goatcounter-terakoda = { image = "arp242/goatcounter"; hostname = "goatcounter"; domain = terakoda; public = true; port = 8080; volumes = [ "goatcounter-data:/home/goatcounter/goatcounter-data" ]; extraLabels = { # "traefik.http.middlewares.strip-analytics.stripprefix.prefixes" = "/analytics"; # "traefik.http.routers.www-terakoda-com-goatcounter.middlewares" = "strip-analytics"; # Host the script on www.terakoda.com so that it is easy to fetch "traefik.http.routers.www-terakoda-com-goatcounter.rule" = "PathPrefix(`/count`) && ${hostRule "www" terakoda}"; "traefik.http.routers.www-terakoda-com-goatcounter.entrypoints" = "websecure"; "traefik.http.routers.www-terakoda-com-goatcounter.service" = "goatcounter-terakoda-com"; }; }; goatcounter-blazestar = { image = "arp242/goatcounter"; hostname = "goatcounter"; domain = blazestar; public = true; port = 8080; volumes = [ "goatcounter-data-blazestar:/home/goatcounter/goatcounter-data" ]; extraLabels = { # "traefik.http.middlewares.strip-analytics.stripprefix.prefixes" = "/analytics"; # "traefik.http.routers.www-blazestar-net-goatcounter.middlewares" = "strip-analytics"; # Host the script on www.blazestar.net so that it is easy to fetch "traefik.http.routers.www-blazestar-net-goatcounter.rule" = "PathPrefix(`/count`) && ${hostRule "www" blazestar}"; "traefik.http.routers.www-blazestar-net-goatcounter.entrypoints" = "websecure"; "traefik.http.routers.www-blazestar-net-goatcounter.service" = "goatcounter-blazestar-net@docker"; }; }; }; }; }