job "ipdvr" { region = "global" datacenters = ["dc1"] type = "service" group "nzbget" { network { mode = "bridge" port "main" { host_network = "loopback" to = 6789 } } volume "nzbget-data" { type = "host" read_only = false source = "nzbget-data" } volume "download" { type = "host" read_only = false source = "download" } service { name = "nzbget" port = "main" connect { sidecar_service { proxy { local_service_port = 6789 } } sidecar_task { resources { cpu = 50 memory = 20 memory_max = 50 } } } # check { # type = "http" # path = "/" # port = "main" # interval = "10s" # timeout = "10s" # } tags = [ "traefik.enable=true", "traefik.http.routers.nzbget.entryPoints=websecure", ] } task "nzbget" { driver = "docker" config { image = "linuxserver/nzbget" ports = ["main"] } env = { "PGID" = 100 "PUID" = 1001 "TZ" = "America/Los_Angeles" } volume_mount { volume = "nzbget-data" destination = "/config" read_only = false } volume_mount { volume = "download" destination = "/downloads" read_only = false } resources { cpu = 200 memory = 200 memory_max = 500 } } } group "sonarr" { network { mode = "bridge" port "main" { host_network = "loopback" to = 8989 } } volume "sonarr-data" { type = "host" read_only = false source = "sonarr-data" } volume "tv-sonarr" { type = "host" read_only = false source = "tv-sonarr" } volume "download" { type = "host" read_only = false source = "download" } service { name = "sonarr" port = "main" connect { sidecar_service { proxy { local_service_port = 8989 upstreams { destination_name = "nzbget" local_bind_port = 6789 } } } sidecar_task { resources { cpu = 50 memory = 20 memory_max = 50 } } } # check { # type = "http" # path = "/" # port = "main" # interval = "10s" # timeout = "10s" # } tags = [ "traefik.enable=true", "traefik.http.routers.sonarr.entryPoints=websecure", ] } task "sonarr" { driver = "docker" config { image = "linuxserver/sonarr" ports = ["main"] } env = { "PGID" = 100 "PUID" = 1001 "TZ" = "America/Los_Angeles" } volume_mount { volume = "sonarr-data" destination = "/config" read_only = false } volume_mount { volume = "tv-sonarr" destination = "/tv" read_only = false } volume_mount { volume = "download" destination = "/download" read_only = false } resources { cpu = 100 memory = 300 memory_max = 500 } } } }