job "lure-web" { region = "global" datacenters = ["dc1"] type = "service" group "lure-web" { network { port "api" { to = 8080 } port "http" { to = 3000 } } task "backend" { driver = "docker" env { LURE_API_GITHUB_SECRET = "${LURE_API_GITHUB_SECRET}" // Hack to force Nomad to re-deploy the service // instead of ignoring it COMMIT_SHA = "${DRONE_COMMIT_SHA}" } config { image = "gitea.elara.ws/lure/backend:latest" ports = ["api"] } service { name = "lure-backend" port = "api" tags = [ "traefik.enable=true", "traefik.http.routers.lure-backend.rule=Host(`api.lure.elara.ws`)", "traefik.http.routers.lure-backend.tls.certresolver=letsencrypt" ] check { type = "tcp" port = "api" interval = "30s" timeout = "2s" } } } task "frontend" { driver = "docker" config { image = "gitea.elara.ws/lure/frontend:latest" ports = ["http"] args = ["build"] } service { name = "lure-web" port = "http" tags = [ "traefik.enable=true", "traefik.http.routers.lure-frontend.rule=Host(`lure.elara.ws`)", "traefik.http.routers.lure-frontend.tls.certresolver=letsencrypt", ] } } } constraint { attribute = "${attr.cpu.arch}" operator = "set_contains_any" value = "amd64,arm64,riscv64" } }