job "multimedia" {
  datacenters = ["dc1"]
  type = "service"

  group "multimedia" {
    count = 1

    network {
      mode = "bridge"
      port "web" {
        host_network = "loopback"
        to = 80
      }
    }

    volume "media-read" {
      type = "host"
      read_only = true
      source = "media-read"
    }

    service {
      name = "library"
      port = "web"

      connect {
        sidecar_service {
          proxy {
            local_service_port = 80
          }
        }

        sidecar_task {
          resources {
            cpu    = 50
            memory = 50
          }
        }
      }

      tags = [
        "traefik.enable=true",
        "traefik.http.routers.library.entryPoints=websecure",
      ]
    }

    task "main" {
      driver = "docker"

      volume_mount {
        volume = "media-read"
        destination = "/mnt/media"
        read_only = true
      }

      config {
        image = "caddy"
        args = [
          "caddy",
          "file-server",
          "--root",
          "/mnt/media",
          "--browse",
        ]
        ports = ["web"]
      }

      resources {
        cpu = 50
        memory = 250
      }
    }
  }
}