feat: #14 Add healthchecks to all services

This commit is contained in:
Adrien Poupa 2023-10-08 18:41:24 -04:00
parent 4887120109
commit e11acd178a
2 changed files with 35 additions and 0 deletions

View File

@ -194,6 +194,8 @@ The web UI login page can be disabled on for the local network in Settings > Web
172.17.0.0/16 172.17.0.0/16
``` ```
Please enable `Bypass authentication for clients on localhost` as well to make qBittorrent's healthcheck work as well.
## Jellyfin ## Jellyfin
To enable [hardware transcoding](https://jellyfin.org/docs/general/administration/hardware-acceleration/), To enable [hardware transcoding](https://jellyfin.org/docs/general/administration/hardware-acceleration/),

View File

@ -10,6 +10,7 @@ services:
- CLOUDFLARE_ZONE_API_TOKEN=${CLOUDFLARE_ZONE_API_TOKEN} - CLOUDFLARE_ZONE_API_TOKEN=${CLOUDFLARE_ZONE_API_TOKEN}
- LETS_ENCRYPT_EMAIL=${LETS_ENCRYPT_EMAIL} - LETS_ENCRYPT_EMAIL=${LETS_ENCRYPT_EMAIL}
command: command:
- --ping=true
- --providers.docker=true - --providers.docker=true
- --providers.docker.exposedbydefault=false - --providers.docker.exposedbydefault=false
- --entrypoints.web.address=:80 - --entrypoints.web.address=:80
@ -33,6 +34,10 @@ services:
volumes: volumes:
- ./letsencrypt:/letsencrypt - ./letsencrypt:/letsencrypt
- "/var/run/docker.sock:/var/run/docker.sock:ro" - "/var/run/docker.sock:/var/run/docker.sock:ro"
healthcheck:
test: [ "CMD", "traefik", "healthcheck", "--ping" ]
interval: 5s
retries: 10
sonarr: sonarr:
image: lscr.io/linuxserver/sonarr image: lscr.io/linuxserver/sonarr
container_name: sonarr container_name: sonarr
@ -44,6 +49,10 @@ services:
- ./sonarr:/config - ./sonarr:/config
- ${DATA_ROOT}:/data - ${DATA_ROOT}:/data
restart: always restart: always
healthcheck:
test: [ "CMD", "curl", "--fail", "http://127.0.0.1:8989/sonarr/ping" ]
interval: 5s
retries: 10
labels: labels:
- traefik.enable=true - traefik.enable=true
- traefik.http.routers.sonarr.rule=(Host(`${HOSTNAME}`) && PathPrefix(`/sonarr`)) - traefik.http.routers.sonarr.rule=(Host(`${HOSTNAME}`) && PathPrefix(`/sonarr`))
@ -70,6 +79,10 @@ services:
- ./radarr:/config - ./radarr:/config
- ${DATA_ROOT}:/data - ${DATA_ROOT}:/data
restart: always restart: always
healthcheck:
test: [ "CMD", "curl", "--fail", "http://127.0.0.1:7878/radarr/ping" ]
interval: 5s
retries: 10
labels: labels:
- traefik.enable=true - traefik.enable=true
- traefik.http.routers.radarr.rule=(Host(`${HOSTNAME}`) && PathPrefix(`/radarr`)) - traefik.http.routers.radarr.rule=(Host(`${HOSTNAME}`) && PathPrefix(`/radarr`))
@ -96,6 +109,10 @@ services:
- ./lidarr:/config - ./lidarr:/config
- ${DATA_ROOT}:/data - ${DATA_ROOT}:/data
restart: always restart: always
healthcheck:
test: [ "CMD", "curl", "--fail", "http://127.0.0.1:8686/lidarr/ping" ]
interval: 5s
retries: 10
labels: labels:
- traefik.enable=true - traefik.enable=true
- traefik.http.routers.lidarr.rule=(Host(`${HOSTNAME}`) && PathPrefix(`/lidarr`)) - traefik.http.routers.lidarr.rule=(Host(`${HOSTNAME}`) && PathPrefix(`/lidarr`))
@ -120,6 +137,10 @@ services:
volumes: volumes:
- ./jellyseerr:/app/config - ./jellyseerr:/app/config
restart: always restart: always
healthcheck:
test: ["CMD", "wget", "http://127.0.0.1:5055/api/v1/status", "-qO", "/dev/null"]
interval: 5s
retries: 10
labels: labels:
- traefik.enable=true - traefik.enable=true
- traefik.http.routers.jellyseerr.rule=(Host(`${HOSTNAME}`) && PathPrefix(`/jellyseerr`)) - traefik.http.routers.jellyseerr.rule=(Host(`${HOSTNAME}`) && PathPrefix(`/jellyseerr`))
@ -186,6 +207,10 @@ services:
volumes: volumes:
- ./prowlarr:/config - ./prowlarr:/config
restart: always restart: always
healthcheck:
test: [ "CMD", "curl", "--fail", "http://127.0.0.1:9696/prowlarr/ping" ]
interval: 5s
retries: 10
labels: labels:
- traefik.enable=true - traefik.enable=true
- traefik.http.routers.prowlarr.rule=(Host(`${HOSTNAME}`) && PathPrefix(`/prowlarr`)) - traefik.http.routers.prowlarr.rule=(Host(`${HOSTNAME}`) && PathPrefix(`/prowlarr`))
@ -213,6 +238,10 @@ services:
- ./qbittorrent:/config - ./qbittorrent:/config
- ${DOWNLOAD_ROOT}:/data/torrents - ${DOWNLOAD_ROOT}:/data/torrents
restart: always restart: always
healthcheck:
test: [ "CMD", "curl", "--fail", "http://127.0.0.1:8080/api/v2/app/version" ]
interval: 5s
retries: 10
network_mode: "service:vpn" network_mode: "service:vpn"
depends_on: depends_on:
vpn: vpn:
@ -291,6 +320,10 @@ services:
- /dev/dri/renderD128:/dev/dri/renderD128 - /dev/dri/renderD128:/dev/dri/renderD128
- /dev/dri/card0:/dev/dri/card0 - /dev/dri/card0:/dev/dri/card0
restart: always restart: always
healthcheck:
test: [ "CMD", "curl", "--fail", "http://127.0.0.1:8096/jellyfin/health" ]
interval: 5s
retries: 10
labels: labels:
- traefik.enable=true - traefik.enable=true
- traefik.http.routers.jellyfin.rule=(Host(`${HOSTNAME}`) && PathPrefix(`/jellyfin`)) - traefik.http.routers.jellyfin.rule=(Host(`${HOSTNAME}`) && PathPrefix(`/jellyfin`))