{...}: { imports = [./fail2ban.nix]; services.traefik = { enable = true; staticConfigOptions = { api = {insecure = true;}; entryPoints = { http = {address = ":80";}; https = {address = ":443";}; }; certificatesResolvers = { default = { acme = { email = "evie@xenia.me.uk"; storage = "/var/lib/traefik/acme.json"; httpChallenge = {entryPoint = "http";}; }; }; }; }; dynamicConfigOptions.http = { routers.traefik = { rule = "Host(`traefik.xenia.me.uk`)"; service = "traefik-webinterface"; tls = {certResolver = "default";}; }; services.traefik-webinterface.loadBalancer.servers = [{url = "http://localhost:8080";}]; }; }; networking.firewall = { enable = true; allowedTCPPorts = [80 443 8080]; }; services.fail2ban.jails.traefik = '' enabled = true filter = traefik-auth ports = http,https,8080 backend = systemd ''; }