nomad/jobs/user-projects/general/nova-timetable.hcl
nova 5fff486c9c
Update nova timetable-sync job (#51)
Co-authored-by: wizzdom <dom@wizzdom.xyz>
2024-08-09 17:53:29 +01:00

93 lines
2 KiB
HCL

job "nova-timetable" {
datacenters = ["aperture"]
type = "service"
group "nova-timetable" {
count = 1
network {
port "db" {
to = 6379
}
port "frontend" {
to = 3000
}
port "backend" {
to = 4000
}
}
task "frontend" {
driver = "docker"
config {
image = "ghcr.io/novanai/timetable-sync-frontend:latest"
ports = ["frontend"]
}
service {
name = "nova-timetable-frontend"
port = "frontend"
check {
type = "http"
path = "/"
interval = "10s"
timeout = "2s"
}
tags = [
"traefik.enable=true",
"traefik.port=${NOMAD_PORT_frontend}",
"traefik.http.routers.nova-timetable-frontend.rule=Host(`timetable.redbrick.dcu.ie`)",
"traefik.http.routers.nova-timetable-frontend.entrypoints=web,websecure",
"traefik.http.routers.nova-timetable-frontend.tls.certresolver=lets-encrypt",
]
}
}
task "backend" {
driver = "docker"
env {
REDIS_ADDRESS = "${NOMAD_ADDR_db}"
}
config {
image = "ghcr.io/novanai/timetable-sync-backend:latest"
ports = ["backend"]
}
service {
name = "nova-timetable-backend"
port = "backend"
check {
type = "http"
path = "/api/healthcheck"
interval = "10s"
timeout = "2s"
}
tags = [
"traefik.enable=true",
"traefik.port=${NOMAD_PORT_backend}",
"traefik.http.routers.nova-timetable-backend.rule=Host(`timetable.redbrick.dcu.ie`) && PathPrefix(`/api`)",
"traefik.http.routers.nova-timetable-backend.entrypoints=web,websecure",
"traefik.http.routers.nova-timetable-backend.tls.certresolver=lets-encrypt",
]
}
}
task "redis-db" {
driver = "docker"
config {
image = "redis:latest"
ports = ["db"]
}
}
}
}