job "beancount" {
  datacenters = ["alo"]

  # force each evaluation to be different, so that the jobspec changes, so that the latest image is pulled
  # otherwise, nomad run ends up not doing anything even if the latest image is different
  meta {
    uuid = uuidv4()
  }

  group "web" {
    network {
      port "http" {
        to = 5000
      }
    }

    task "fava" {
      driver = "docker"
      user = "1000"

      config {
        image = "gitea.v.paler.net/ppetru/fava:latest"
        ports = ["http"]
        volumes = [
          "/data/services/beancount:/beancount",
        ]
      }

      env {
        BEANCOUNT_FILE = "/beancount/pi.beancount"
      }

      service {
        name = "finances"
        port = "http"

        tags = [
          "traefik.enable=true",
          "traefik.http.routers.finances.entryPoints=websecure",
          "traefik.http.routers.finances.middlewares=oidc-auth@file",
        ]
      }

      resources {
        memory = 600
      }
    }
  }
}
