feat: add service status monitoring to dashboard with parallel health checks for 14 services

Add SERVICE_DEFINITIONS list with Radarr, Sonarr, SABnzbd, Jellyfin, Seerr, Prowlarr, Easynews as Indexer, qBittorrent, Bazarr, Lingarr, LibreTranslate, Sonarr-Prowlarr Proxy, Radarr-Prowlarr Proxy, and Dashboard. Add check_service() to perform HTTP/API health checks with configurable timeout. Add refresh_services() to run checks in parallel using service_check_executor ThreadPoolExecutor with 16 workers.
This commit is contained in:
2026-08-15 12:28:14 +02:00
parent a90b516f49
commit d69f82d995
5 changed files with 132 additions and 1 deletions
+35
View File
@@ -14,6 +14,41 @@ volumes:
- /nesflix/filme:/media/filme:ro
```
## Dienststatus
Der Dashboard-Tab prüft zusätzlich Jellyfin, Seerr, Prowlarr, Easynews as Indexer,
qBittorrent, Bazarr, Lingarr, LibreTranslate sowie die Sonarr-/Radarr-Prowlarr-Proxies.
Die Prüfungen laufen parallel im Hintergrund und blockieren die Seite nicht.
Die Standardnamen funktionieren, wenn die Container im selben Docker-Netzwerk liegen.
Für qBittorrent muss `QBITTORRENT_URL` auf eine aus dem Dashboard-Container erreichbare
URL zeigen, zum Beispiel `http://host.docker.internal:8080` oder die Host-IP.
```env
JELLYFIN_URL=http://jellyfin:8096
SEERR_URL=http://seerr:5055
PROWLARR_URL=http://prowlarr:9696
EASYNEWS_INDEXER_URL=http://easynews-as-indexer:8081
QBITTORRENT_URL=http://HOST_ODER_IP:8080
BAZARR_URL=http://bazarr:6767
LINGARR_URL=http://lingarr:9876
LIBRETRANSLATE_URL=http://libretranslate:5000
SONARR_PROWLARR_PROXY_URL=http://sonarr-prowlarr-proxy:8080
RADARR_PROWLARR_PROXY_URL=http://radarr-prowlarr-proxy:8080
SERVICE_CHECK_TIMEOUT=3
SERVICE_REFRESH_SECONDS=30
```
Für die bereits vorhandenen Container sind keine zusätzlichen Compose-Services nötig;
sie müssen im gemeinsamen `media-stack_default`-Netzwerk erreichbar sein. Falls
qBittorrent nicht über `host.docker.internal` erreichbar ist, kann unter Linux je nach
Docker-Konfiguration dieser Eintrag ergänzt werden:
```yaml
extra_hosts:
- "host.docker.internal:host-gateway"
```
Ein Radarr-Pfad wie:
`/data/filme/Avatar (2009)/Avatar.mkv`