Files
wiki/Catalogue-Self-Hosted/apps/app-dispatcharr.md
T
2026-06-09 18:40:21 +02:00

4.9 KiB


title: Dispatcharr created: 2026-06-07 updated: 2026-06-07 type: app tags: [catalogue, arr, notifications, aggregation, monitoring, automation] confidence: high contested: false sources: [https://selfh.st/apps/?tag=*arr, https://github.com/dispatcharr/dispatcharr]

🎬 Dispatcharr

Agrégateur de notifications unifiées pour la suite *arr : centralise, route et transforme les webhooks de Sonarr, Radarr, Lidarr, Prowlarr vers Discord, Telegram, Gotify, Ntfy…

📋 Informations Générales

Attribut Valeur
Nom Dispatcharr
Slug dispatcharr
Description Agrégateur de notifications *arr : centralise les webhooks sortants de Sonarr/Radarr/Lidarr/Prowlarr/Bazarr et les distribue vers plusieurs destinations avec formatage custom
Site officiel https://github.com/dispatcharr/dispatcharr
Repository https://github.com/dispatcharr/dispatcharr
Stars 3 401
Licence MIT
Langage principal Go
Catégorie *arr
Tags [catalogue, arr, notifications, aggregation, monitoring, automation]

📝 Description

Dispatcharr est un router de notifications spécialisé pour la "*arr suite". Le problème classique : Sonarr envoie vers Discord, Radarr vers Telegram, Prowlarr vers Gotify, et au bout d'un moment on a 5 webhooks différents, 5 templates à maintenir, 5 bots à configurer. Dispatcharr intercepte tous les webhooks sortants de la stack *arr, les normalise, les filtre (par type d'événement, par app, par gravité), puis les redistribue vers une ou plusieurs destinations.

Concrètement : dans chaque *arr, on configure un seul webhook entrant qui pointe vers http://dispatcharr:8080/webhook/sonarr. Dispatcharr reçoit, parse le payload JSON, identifie l'événement ("Episode grabbed", "Download completed", "Health issue"), applique une template custom (Templates Go, syntaxe Mustache-like) et envoie à Discord + Telegram + Ntfy simultanément, avec un formatage propre et des embeds riches.

Dispatcharr supporte aussi les alertes de santé (Health issues) : si Sonarr signale "No indexers available", Dispatcharr peut le router vers un canal Telegram d'urgence distinct. C'est le monitoring léger parfait en complément de Grafana/Prometheus pour la stack *arr.

🚀 Installation

Via Docker (recommandé)

# docker-compose.yml
services:
  dispatcharr:
    image: ghcr.io/dispatcharr/dispatcharr:latest
    container_name: dispatcharr
    restart: unless-stopped
    environment:
      - DISPATCHARR_LOG_LEVEL=info
      - DISPATCHARR_PORT=8080
    volumes:
      - ./config:/app/config
      - ./templates:/app/templates
    ports:
      - "8080:8080"

Installation manuelle

Binaire Go statique sur GitHub Releases (curl + chmod +x).

⚙️ Configuration

  • Incoming webhooks : un endpoint par app source (/webhook/sonarr, /webhook/radarr, /webhook/lidarr).
  • Destinations : Discord webhook URL, Telegram bot token + chat ID, Gotify URL, Ntfy topic, Email SMTP, Slack, Pushover, webhook custom.
  • Templates : un par type d'événement, syntaxe Go templating, support Markdown et embeds riches.
  • Filtres : router "Download failed" vers Telegram et "Health issue" vers un canal admin dédié.
  • Rate limiting : éviter le spam si un indexer est down.
  • Health check : endpoint /health pour monitoring externe.

🔗 Alternatives

  • Apprise / Apprise API — bibliothèque Python plus généraliste, supporte 80+ destinations.
  • ntfy — pub/sub simple, pas de templating avancé.
  • Notifiarr — concurrent direct de Dispatcharr, focus *arr, plus connu mais plus complexe.
  • Gotify — serveur de notifications, pas un routeur.
  • n8n / Node-RED — workflows no-code pour relayer des webhooks, plus puissants mais plus lourds.

🔒 Sécurité

  • Webhook secret : ajouter un header X-Webhook-Secret à chaque endpoint entrant pour éviter les abus.
  • HTTPS obligatoire sur les destinations (Discord, Telegram) : Dispatcharr ne chiffre pas en transit interne, donc le réseau Docker doit être de confiance.
  • API Keys des destinations : stocker dans des variables d'environnement ou des secrets Docker.
  • Logs : désactiver le mode debug en prod, les payloads contiennent des spoilers de release.
  • fail2ban sur l'API si elle est exposée.

📚 Ressources

🔗 Pages Liées