From c2d3ec3c2ab124158e039fddfd22d35c704afd9f Mon Sep 17 00:00:00 2001 From: Mathias Magnusson Date: Sat, 11 May 2024 21:25:49 +0200 Subject: Replace nginx with traefik --- jobs/besiktn.ing/besiktn.ing.nomad.hcl | 6 +- jobs/certificates.nomad.hcl | 99 -------- jobs/faeltkullen.nomad.hcl | 6 +- jobs/files.nomad.hcl | 6 +- .../f\303\266rs\303\244kr.ing.nomad.hcl" | 6 +- jobs/homepage/homepage.nomad.hcl | 7 +- "jobs/h\303\266vd.ing/h\303\266vd.ing.nomad.hcl" | 62 ----- "jobs/h\303\266vd.ing/index.html" | 72 ------ jobs/raytracer.nomad.hcl | 6 +- jobs/rr.nomad.hcl | 8 +- jobs/srg/srg.nomad.hcl | 6 +- jobs/traefik.nomad.hcl | 135 +++++++++++ jobs/transfer-zip.nomad.hcl | 59 ----- jobs/vaultwarden.nomad.hcl | 6 +- jobs/virtual-hosting.nomad.hcl | 255 --------------------- nomad.tmpl.hcl | 14 +- 16 files changed, 177 insertions(+), 576 deletions(-) delete mode 100644 jobs/certificates.nomad.hcl delete mode 100644 "jobs/h\303\266vd.ing/h\303\266vd.ing.nomad.hcl" delete mode 100644 "jobs/h\303\266vd.ing/index.html" create mode 100644 jobs/traefik.nomad.hcl delete mode 100644 jobs/transfer-zip.nomad.hcl delete mode 100644 jobs/virtual-hosting.nomad.hcl diff --git a/jobs/besiktn.ing/besiktn.ing.nomad.hcl b/jobs/besiktn.ing/besiktn.ing.nomad.hcl index 8281b66..ace4d1a 100644 --- a/jobs/besiktn.ing/besiktn.ing.nomad.hcl +++ b/jobs/besiktn.ing/besiktn.ing.nomad.hcl @@ -14,8 +14,10 @@ job "besiktn.ing" { provider = "nomad" tags = [ - "nginx.hostname=.besiktn.ing", - "nginx.certname=besiktn.ing", + "traefik.enable=true", + "traefik.http.routers.besiktning.rule=Host(`besiktn.ing`)||Host(`www.besiktn.ing`)", + "traefik.http.routers.besiktning.entrypoints=https", + "traefik.http.routers.besiktning.tls.certresolver=default", ] } diff --git a/jobs/certificates.nomad.hcl b/jobs/certificates.nomad.hcl deleted file mode 100644 index 8731227..0000000 --- a/jobs/certificates.nomad.hcl +++ /dev/null @@ -1,99 +0,0 @@ -job "certificates" { - type = "batch" - - periodic { - crons = ["@monthly"] - } - - group "lego" { - restart { - attempts = 1 - delay = "1h" - } - - volume "certs" { - type = "host" - source = "ca-certificates" - } - - network { - port "http" { - # static = 80 - } - } - - service { - name = "certificates" - port = "http" - provider = "nomad" - - tags = [ - "nginx.acme-challenge", - ] - } - - task "lego" { - driver = "exec" - - volume_mount { - volume = "certs" - destination = "/lego" - } - - config { - command = "certs.sh" - } - - template { - data = < - - - - Hövding - - - -

Se på fan, en Hövding!

- - - - - diff --git a/jobs/raytracer.nomad.hcl b/jobs/raytracer.nomad.hcl index 709d91d..4642a8b 100644 --- a/jobs/raytracer.nomad.hcl +++ b/jobs/raytracer.nomad.hcl @@ -18,8 +18,10 @@ job "raytracer" { provider = "nomad" tags = [ - "nginx.hostname=raytracer.magnusson.space", - "nginx.certname=magnusson.space", + "traefik.enable=true", + "traefik.http.routers.raytracer.rule=Host(`raytracer.magnusson.space`)", + "traefik.http.routers.raytracer.entrypoints=https", + "traefik.http.routers.raytracer.tls.certresolver=default", ] } diff --git a/jobs/rr.nomad.hcl b/jobs/rr.nomad.hcl index 032ad03..4796b27 100644 --- a/jobs/rr.nomad.hcl +++ b/jobs/rr.nomad.hcl @@ -18,8 +18,10 @@ job "rr" { provider = "nomad" tags = [ - "nginx.hostname=rr.magnusson.space", - "nginx.certname=magnusson.space", + "traefik.enable=true", + "traefik.http.routers.rr.rule=Host(`rr.magnusson.space`)", + "traefik.http.routers.rr.entrypoints=https", + "traefik.http.routers.rr.tls.certresolver=default", ] } @@ -54,7 +56,7 @@ server { autoindex off; root /var/www/sites/rr; - index index.mp4; + index index.webm; } EOF destination = "local/website.conf" diff --git a/jobs/srg/srg.nomad.hcl b/jobs/srg/srg.nomad.hcl index 5b88c66..29d2374 100644 --- a/jobs/srg/srg.nomad.hcl +++ b/jobs/srg/srg.nomad.hcl @@ -14,8 +14,10 @@ job "srg" { provider = "nomad" tags = [ - "nginx.hostname=.xn--srskildakommandorrelsegruppen-0pc88c.se", - "nginx.certname=xn--srskildakommandorrelsegruppen-0pc88c.se", + "traefik.enable=true", + "traefik.http.routers.srg.rule=Host(`xn--srskildakommandorrelsegruppen-0pc88c.se`)||Host(`www.xn--srskildakommandorrelsegruppen-0pc88c.se`)", + "traefik.http.routers.srg.entrypoints=https", + "traefik.http.routers.srg.tls.certresolver=default", ] } diff --git a/jobs/traefik.nomad.hcl b/jobs/traefik.nomad.hcl new file mode 100644 index 0000000..8de6233 --- /dev/null +++ b/jobs/traefik.nomad.hcl @@ -0,0 +1,135 @@ +job "traefik" { + type = "service" + + group "traefik" { + count = 1 + + network { + port "http" { + static = 80 + } + + port "https" { + static = 443 + } + } + + volume "certs" { + type = "host" + source = "ca-certificates" + } + + task "traefik" { + driver = "docker" + + config { + image = "traefik:v3.0" + network_mode = "host" + + volumes = [ + "local/traefik.toml:/etc/traefik/traefik.toml", + "local/nomad-agent-ca.pem:/etc/traefik/nomad-agent-ca.pem", + "local/dynamic-conf.yaml:/etc/traefik/dynamic-conf.yaml" + ] + } + + volume_mount { + volume = "certs" + destination = "/certificates" + } + + template { + data = <