Files
alo-cluster/services/media.hcl
2025-10-23 17:27:06 +01:00

215 lines
4.3 KiB
HCL

job "media" {
datacenters = ["alo"]
meta {
uuid = uuidv4()
}
group "servers" {
network {
port "radarr" { to = 7878 }
port "sonarr" { to = 8989 }
port "bazarr" { to = 6767 }
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=authentik@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=authentik@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=authentik@file",
]
}
}
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=authentik@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=authentik@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"]
}
}
}
}