302 lines
6.0 KiB
HCL
302 lines
6.0 KiB
HCL
job "media" {
|
|
datacenters = ["alo"]
|
|
|
|
meta {
|
|
uuid = uuidv4()
|
|
}
|
|
|
|
group "servers" {
|
|
network {
|
|
port "radarr" { static = 7878 }
|
|
port "sonarr" { static = 8989 }
|
|
port "bazarr" { to = 6767 }
|
|
port "prowlarr" { static = 9696 }
|
|
port "jellyseerr" { static = 5055 }
|
|
port "pms" { static = 32400 }
|
|
port "qbt_ui" { static = 8080 }
|
|
port "qbt_torrent" { static = 51413 }
|
|
}
|
|
|
|
task "radarr" {
|
|
driver = "docker"
|
|
|
|
config {
|
|
image = "ghcr.io/hotio/radarr:latest"
|
|
ports = [ "radarr" ]
|
|
volumes = [
|
|
"/data/services/media/radarr:/config",
|
|
"/data/media:/data",
|
|
]
|
|
}
|
|
|
|
env {
|
|
PUID = 1000
|
|
PGID = 1000
|
|
TZ = "Europe/Lisbon"
|
|
}
|
|
|
|
resources {
|
|
cpu = 200
|
|
}
|
|
|
|
service {
|
|
name = "radarr"
|
|
port = "radarr"
|
|
|
|
tags = [
|
|
"traefik.enable=true",
|
|
"traefik.http.routers.radarr.entryPoints=websecure",
|
|
"traefik.http.routers.radarr.middlewares=oidc-auth@file",
|
|
]
|
|
}
|
|
}
|
|
|
|
task "sonarr" {
|
|
driver = "docker"
|
|
|
|
config {
|
|
image = "ghcr.io/hotio/sonarr:latest"
|
|
ports = [ "sonarr" ]
|
|
volumes = [
|
|
"/data/services/media/sonarr:/config",
|
|
"/data/media:/data",
|
|
]
|
|
}
|
|
|
|
env {
|
|
PUID = 1000
|
|
PGID = 1000
|
|
TZ = "Europe/Lisbon"
|
|
}
|
|
|
|
resources {
|
|
cpu = 200
|
|
}
|
|
|
|
service {
|
|
name = "sonarr"
|
|
port = "sonarr"
|
|
|
|
tags = [
|
|
"traefik.enable=true",
|
|
"traefik.http.routers.sonarr.entryPoints=websecure",
|
|
"traefik.http.routers.sonarr.middlewares=oidc-auth@file",
|
|
]
|
|
}
|
|
}
|
|
|
|
task "bazarr" {
|
|
driver = "docker"
|
|
|
|
config {
|
|
image = "ghcr.io/hotio/bazarr:latest"
|
|
ports = [ "bazarr" ]
|
|
volumes = [
|
|
"/data/services/media/bazarr:/config",
|
|
"/data/media/media:/data/media",
|
|
]
|
|
}
|
|
|
|
env {
|
|
PUID = 1000
|
|
PGID = 1000
|
|
TZ = "Europe/Lisbon"
|
|
}
|
|
|
|
resources {
|
|
cpu = 200
|
|
}
|
|
|
|
service {
|
|
name = "bazarr"
|
|
port = "bazarr"
|
|
|
|
tags = [
|
|
"traefik.enable=true",
|
|
"traefik.http.routers.bazarr.entryPoints=websecure",
|
|
"traefik.http.routers.bazarr.middlewares=oidc-auth@file",
|
|
]
|
|
}
|
|
}
|
|
|
|
task "prowlarr" {
|
|
driver = "docker"
|
|
|
|
config {
|
|
image = "ghcr.io/hotio/prowlarr:latest"
|
|
ports = [ "prowlarr" ]
|
|
volumes = [
|
|
"/data/services/media/prowlarr:/config",
|
|
]
|
|
}
|
|
|
|
env {
|
|
PUID = 1000
|
|
PGID = 1000
|
|
TZ = "Europe/Lisbon"
|
|
}
|
|
|
|
resources {
|
|
cpu = 200
|
|
}
|
|
|
|
service {
|
|
name = "prowlarr"
|
|
port = "prowlarr"
|
|
|
|
tags = [
|
|
"traefik.enable=true",
|
|
"traefik.http.routers.prowlarr.entryPoints=websecure",
|
|
"traefik.http.routers.prowlarr.middlewares=oidc-auth@file",
|
|
]
|
|
}
|
|
}
|
|
|
|
task "jellyseerr" {
|
|
driver = "docker"
|
|
|
|
config {
|
|
image = "fallenbagel/jellyseerr:latest"
|
|
ports = [ "jellyseerr" ]
|
|
volumes = [
|
|
"/data/services/media/jellyseerr:/app/config",
|
|
]
|
|
}
|
|
|
|
env {
|
|
TZ = "Europe/Lisbon"
|
|
}
|
|
|
|
resources {
|
|
cpu = 200
|
|
}
|
|
|
|
service {
|
|
name = "jellyseerr"
|
|
port = "jellyseerr"
|
|
|
|
tags = [
|
|
"traefik.enable=true",
|
|
"traefik.http.routers.jellyseerr.entryPoints=websecure",
|
|
"traefik.http.routers.jellyseerr.middlewares=oidc-auth@file",
|
|
]
|
|
}
|
|
}
|
|
|
|
task "recyclarr" {
|
|
driver = "docker"
|
|
|
|
config {
|
|
image = "ghcr.io/recyclarr/recyclarr:latest"
|
|
volumes = [
|
|
"/data/services/media/recyclarr:/config",
|
|
]
|
|
}
|
|
|
|
env {
|
|
TZ = "Europe/Lisbon"
|
|
CRON_SCHEDULE = "0 0 * * *" # Daily at midnight
|
|
}
|
|
|
|
resources {
|
|
cpu = 100
|
|
memory = 256
|
|
}
|
|
}
|
|
|
|
task "plex" {
|
|
driver = "docker"
|
|
|
|
config {
|
|
image = "plexinc/pms-docker:latest"
|
|
ports = [ "pms" ]
|
|
network_mode = "host"
|
|
volumes = [
|
|
"/data/services/media/plex:/config",
|
|
"/data/media/media:/data",
|
|
]
|
|
}
|
|
|
|
env {
|
|
PLEX_UID = 1000
|
|
PLEX_GID = 1000
|
|
TZ = "Europe/Lisbon"
|
|
}
|
|
|
|
resources {
|
|
cpu = 2000
|
|
memory = 1000
|
|
}
|
|
|
|
service {
|
|
name = "plex"
|
|
port = "pms"
|
|
|
|
tags = [
|
|
"traefik.enable=true",
|
|
"traefik.http.routers.plex.entryPoints=websecure",
|
|
"traefik.http.routers.plex.middlewares=oidc-auth@file",
|
|
]
|
|
}
|
|
}
|
|
|
|
task "qbittorrent" {
|
|
driver = "docker"
|
|
|
|
config {
|
|
image = "lscr.io/linuxserver/qbittorrent:latest"
|
|
ports = [
|
|
"qbt_ui",
|
|
"qbt_torrent",
|
|
]
|
|
volumes = [
|
|
"/data/services/media/qbittorrent:/config",
|
|
"/data/media/torrents:/data/torrents",
|
|
]
|
|
}
|
|
|
|
env {
|
|
PUID = 1000
|
|
PGID = 1000
|
|
TZ = "Europe/Lisbon"
|
|
TORRENTING_PORT = 51413
|
|
}
|
|
|
|
resources {
|
|
cpu = 2000
|
|
memory = 1000
|
|
}
|
|
|
|
service {
|
|
name = "torrent"
|
|
port = "qbt_ui"
|
|
|
|
tags = [
|
|
"traefik.enable=true",
|
|
"traefik.http.routers.torrent.entryPoints=websecure",
|
|
"traefik.http.routers.torrent.middlewares=oidc-auth@file",
|
|
]
|
|
}
|
|
}
|
|
|
|
task "keepalived" {
|
|
driver = "docker"
|
|
env {
|
|
KEEPALIVED_INTERFACE = "eno1"
|
|
KEEPALIVED_VIRTUAL_IPS = "192.168.1.102/24"
|
|
KEEPALIVED_ROUTER_ID = "54" # defaults to 51
|
|
KEEPALIVED_UNICAST_PEERS = ""
|
|
KEEPALIVED_STATE = "MASTER"
|
|
KEEPALIVED_VIRTUAL_ROUTES = ""
|
|
}
|
|
config {
|
|
# 2.2.8 wasn't starting, reason unknown
|
|
image = "visibilityspots/keepalived:2.2.7"
|
|
network_mode = "host"
|
|
privileged = true
|
|
cap_add = ["NET_ADMIN", "NET_BROADCAST", "NET_RAW"]
|
|
}
|
|
}
|
|
}
|
|
}
|