Update media stack Nomad job with host volumes

This commit is contained in:
2026-02-04 11:28:38 -06:00
parent cde1c5df2d
commit 1214f72958
+18 -77
View File
@@ -1,5 +1,4 @@
# Media Stack - hobbs.farm # Media Stack for hobbs.farm
# Services: Jellyfin, Sonarr, Radarr, SABnzbd, NZBHydra2, Jellyseerr
# Deploy: nomad job run media-stack.nomad.hcl # Deploy: nomad job run media-stack.nomad.hcl
job "media-stack" { job "media-stack" {
@@ -29,13 +28,7 @@ job "media-stack" {
service { service {
name = "jellyfin" name = "jellyfin"
port = "http" port = "http"
tags = ["media", "streaming"]
tags = [
"traefik.enable=true",
"traefik.http.routers.jellyfin.rule=Host(`r2d2.hobbs.farm`)",
"traefik.http.routers.jellyfin.entrypoints=websecure",
"traefik.http.routers.jellyfin.tls.certresolver=letsencrypt",
]
check { check {
type = "http" type = "http"
@@ -64,11 +57,11 @@ job "media-stack" {
} }
env { env {
JELLYFIN_PublishedServerUrl = "https://r2d2.hobbs.farm" JELLYFIN_PublishedServerUrl = "http://r2d2.hobbs.farm"
} }
resources { resources {
cpu = 2000 cpu = 1000
memory = 2048 memory = 2048
} }
} }
@@ -94,22 +87,10 @@ job "media-stack" {
read_only = false read_only = false
} }
volume "downloads" {
type = "host"
source = "downloads"
read_only = false
}
service { service {
name = "sonarr" name = "sonarr"
port = "http" port = "http"
tags = ["media", "pvr"]
tags = [
"traefik.enable=true",
"traefik.http.routers.sonarr.rule=Host(`sonarr.hobbs.farm`)",
"traefik.http.routers.sonarr.entrypoints=websecure",
"traefik.http.routers.sonarr.tls.certresolver=letsencrypt",
]
check { check {
type = "http" type = "http"
@@ -137,11 +118,6 @@ job "media-stack" {
destination = "/media" destination = "/media"
} }
volume_mount {
volume = "downloads"
destination = "/downloads"
}
env { env {
PUID = "1000" PUID = "1000"
PGID = "1000" PGID = "1000"
@@ -175,22 +151,10 @@ job "media-stack" {
read_only = false read_only = false
} }
volume "downloads" {
type = "host"
source = "downloads"
read_only = false
}
service { service {
name = "radarr" name = "radarr"
port = "http" port = "http"
tags = ["media", "pvr"]
tags = [
"traefik.enable=true",
"traefik.http.routers.radarr.rule=Host(`radarr.hobbs.farm`)",
"traefik.http.routers.radarr.entrypoints=websecure",
"traefik.http.routers.radarr.tls.certresolver=letsencrypt",
]
check { check {
type = "http" type = "http"
@@ -218,11 +182,6 @@ job "media-stack" {
destination = "/media" destination = "/media"
} }
volume_mount {
volume = "downloads"
destination = "/downloads"
}
env { env {
PUID = "1000" PUID = "1000"
PGID = "1000" PGID = "1000"
@@ -250,22 +209,16 @@ job "media-stack" {
read_only = false read_only = false
} }
volume "downloads" { volume "media" {
type = "host" type = "host"
source = "downloads" source = "media"
read_only = false read_only = false
} }
service { service {
name = "sabnzbd" name = "sabnzbd"
port = "http" port = "http"
tags = ["media", "downloader"]
tags = [
"traefik.enable=true",
"traefik.http.routers.sabnzbd.rule=Host(`sabnzbd.hobbs.farm`)",
"traefik.http.routers.sabnzbd.entrypoints=websecure",
"traefik.http.routers.sabnzbd.tls.certresolver=letsencrypt",
]
check { check {
type = "http" type = "http"
@@ -289,8 +242,8 @@ job "media-stack" {
} }
volume_mount { volume_mount {
volume = "downloads" volume = "media"
destination = "/downloads" destination = "/media"
} }
env { env {
@@ -306,7 +259,7 @@ job "media-stack" {
} }
} }
# NZBHydra2 - Indexer Manager # NZBHydra2 - Indexer Aggregator
group "nzbhydra2" { group "nzbhydra2" {
count = 1 count = 1
@@ -316,20 +269,14 @@ job "media-stack" {
volume "config" { volume "config" {
type = "host" type = "host"
source = "nzbhydra2-config" source = "nzbhydra-config"
read_only = false read_only = false
} }
service { service {
name = "nzbhydra2" name = "nzbhydra2"
port = "http" port = "http"
tags = ["media", "indexer"]
tags = [
"traefik.enable=true",
"traefik.http.routers.nzbhydra2.rule=Host(`hydra.hobbs.farm`)",
"traefik.http.routers.nzbhydra2.entrypoints=websecure",
"traefik.http.routers.nzbhydra2.tls.certresolver=letsencrypt",
]
check { check {
type = "http" type = "http"
@@ -360,12 +307,12 @@ job "media-stack" {
resources { resources {
cpu = 300 cpu = 300
memory = 256 memory = 384
} }
} }
} }
# Jellyseerr - Media Request Manager # Jellyseerr - Media Requests
group "jellyseerr" { group "jellyseerr" {
count = 1 count = 1
@@ -382,17 +329,11 @@ job "media-stack" {
service { service {
name = "jellyseerr" name = "jellyseerr"
port = "http" port = "http"
tags = ["media", "requests"]
tags = [
"traefik.enable=true",
"traefik.http.routers.jellyseerr.rule=Host(`requests.hobbs.farm`)",
"traefik.http.routers.jellyseerr.entrypoints=websecure",
"traefik.http.routers.jellyseerr.tls.certresolver=letsencrypt",
]
check { check {
type = "http" type = "http"
path = "/api/v1/status" path = "/"
interval = "30s" interval = "30s"
timeout = "5s" timeout = "5s"
} }