86 lines
1.6 KiB
HCL
86 lines
1.6 KiB
HCL
job "weewx" {
|
|
datacenters = ["alo"]
|
|
|
|
meta {
|
|
uuid = uuidv4()
|
|
}
|
|
|
|
group "weather" {
|
|
network {
|
|
port "http" {
|
|
}
|
|
port "osweather" {
|
|
static = 20080
|
|
to = 80
|
|
}
|
|
}
|
|
|
|
task "backend" {
|
|
driver = "docker"
|
|
|
|
config {
|
|
image = "gitea.v.paler.net/ppetru/weewx:latest"
|
|
volumes = [
|
|
"/data/compute/appdata/weewx/etc:/etc/weewx",
|
|
"/data/compute/appdata/weewx/html:/var/www/html",
|
|
]
|
|
}
|
|
|
|
resources {
|
|
# needed for running weectl report run inside the container
|
|
#memory = 1024
|
|
}
|
|
}
|
|
|
|
task "frontend" {
|
|
driver = "docker"
|
|
|
|
config {
|
|
image = "pierrezemb/gostatic"
|
|
|
|
ports = [ "http" ]
|
|
|
|
args = [
|
|
"-port=${NOMAD_PORT_http}",
|
|
"-enable-health",
|
|
]
|
|
|
|
volumes = [ "/data/compute/appdata/weewx/html:/srv/http" ]
|
|
}
|
|
}
|
|
|
|
task "osweather" {
|
|
driver = "docker"
|
|
|
|
config {
|
|
image = "gitea.v.paler.net/ppetru/opensprinkler-weather:latest"
|
|
|
|
ports = [ "osweather" ]
|
|
}
|
|
}
|
|
|
|
service {
|
|
name = "weather"
|
|
port = "http"
|
|
|
|
tags = [
|
|
"traefik.enable=true",
|
|
"traefik.http.routers.weather.entryPoints=websecure",
|
|
"traefik.http.routers.weather.rule=Host(`weewx.v.paler.net`) || (Host(`alo.land`) && PathPrefix(`/weather/`))",
|
|
]
|
|
|
|
check {
|
|
type = "http"
|
|
path = "/health"
|
|
interval = "10s"
|
|
timeout = "2s"
|
|
}
|
|
}
|
|
|
|
service {
|
|
name = "osweather"
|
|
port = "osweather"
|
|
}
|
|
}
|
|
}
|