job "traefik" { datacenters = ["dc1"] type = "system" constraint { attribute = "${attr.kernel.name}" value = "linux" } update { stagger = "10s" max_parallel = 1 healthy_deadline = "5m" } group "traefik" { count = 1 restart { attempts = 6 interval = "1m" delay = "10s" mode = "delay" } task "traefik" { driver = "docker" config { image = "traefik:2.9" // network_mode = "host" args = [ // "--api.dashboard", // "--providers.consulcatalog.defaultRule=Host(`{{ .Name }}.service.dc1.consul`)", // "--providers.consulcatalog.endpoint.address=${attr.unique.network.ip-address}:8500", // "--providers.consulcatalog.exposedbydefault=true", // "--metrics=true", // "--metrics.prometheus=true", // "--metrics.prometheus.entryPoint=web", // "--entryPoints.web.address=:80", // "--entryPoints.websecure.address=:443", // "--entryPoints.openvpn.address=:1194/udp", "--configFile=/local/file.yml", // "--certificatesresolvers.myresolver.acme.email=stuart.stent@gmail.com", // "--certificatesresolvers.myresolver.acme.storage=/acmecert/acme.json", // "--certificatesresolvers.myresolver.acme.tlschallenge=true", // "--certificatesresolvers.myresolver-int.acme.email=stuart.stent@gmail.com", // "--certificatesresolvers.myresolver-int.acme.storage=/acmecert/acme.json", // "--certificatesresolvers.myresolver-int.acme.tlschallenge=true", // "--certificatesresolvers.myresolver-int.acme.dnschallenge=true", // "--certificatesresolvers.myresolver-int.acme.dnschallenge.provider=duckdns", "--accesslog=true", // "--serversTransport.insecureSkipVerify=true", ] volumes = [ "/var/run/docker.sock:/var/run/docker.sock", "/mnt/mnt/configs/letsencrypt:/acmecert/", ] dns_servers = ["${attr.unique.network.ip-address}","192.168.4.250","8.8.8.8"] ports = ["traefik", "traefikhttps","traefikui"] memory_hard_limit = 20480 } env { TZ = "EST5EDT" PUID = 1000 PGID = 1000 DUCKDNS_TOKEN="e4b5ca33-1f4d-494b-b06d-6dd4600df662" } template { left_delimiter = "[[" right_delimiter = "]]" data = <