Update media stack Nomad job with host volumes
This commit is contained in:
@@ -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"
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user