111 lines
5.6 KiB
Markdown
111 lines
5.6 KiB
Markdown
---
|
|
title: Maintainerr
|
|
created: 2026-06-07
|
|
updated: 2026-06-07
|
|
type: app
|
|
tags: [catalogue, arr, automation, deletion, sonarr, radarr]
|
|
confidence: high
|
|
contested: false
|
|
sources: [https://selfh.st/apps/?tag=*arr, https://github.com/jorenn92/Maintainerr]
|
|
---
|
|
|
|
# 🎬 Maintainerr
|
|
|
|
> Gestionnaire de règles de suppression automatique pour Sonarr et Radarr : applique des politiques custom (âge, watched, exclusion, requêtes Overseerr) pour nettoyer votre bibliothèque selon vos critères.
|
|
|
|
> ⚠️ **TRIGGER WARNING** : Maintainerr **supprime des médias** (fichiers + entrées bibliothèque) selon des règles automatiques. Une mauvaise configuration peut effacer définitivement votre bibliothèque. Toujours tester en mode "log only" avant activation.
|
|
|
|
## 📋 Informations Générales
|
|
|
|
| Attribut | Valeur |
|
|
|----------|--------|
|
|
| **Nom** | Maintainerr |
|
|
| **Slug** | maintainerr |
|
|
| **Description** | Moteur de règles de suppression pour Sonarr/Radarr, basé sur l'âge, le statut watched, les critères métier et les requêtes Overseerr/Jellyseerr |
|
|
| **Site officiel** | https://github.com/jorenn92/Maintainerr |
|
|
| **Repository** | https://github.com/jorenn92/Maintainerr |
|
|
| **Stars** | 2 016 ⭐ |
|
|
| **Licence** | GPL-3.0 |
|
|
| **Langage principal** | TypeScript / Node.js |
|
|
| **Catégorie** | *arr (maintenance) |
|
|
| **Tags** | [catalogue, arr, automation, deletion, sonarr, radarr] |
|
|
|
|
## 📝 Description
|
|
|
|
**Maintainerr** est à la gestion de bibliothèque ce que Maintainerr est à la procrastination : il fait ce que vous n'avez jamais le courage de faire à la main — **supprimer les films et séries que vous ne regardez pas, qui sont vieux, qui sont doublonnés, ou que personne n'a demandés**.
|
|
|
|
Le concept repose sur les **Règles** : chaque règle est un ensemble de **conditions** (âge > X mois, watched status, type, genres, note Trakt, présence dans une collection, demande Overseerr) liées par AND/OR, et un **seuils** (combien de jours après l'événement déclencheur la suppression se produit). Quand une règle matche, Maintainerr supprime le média du client torrent **et** de Sonarr/Radarr (donc de Jellyfin/Plex après le prochain scan).
|
|
|
|
Les règles prédéfinies couvrent les cas courants : "supprimer les films non visionnés 1 an après ajout", "supprimer les séries terminées 3 mois après le dernier épisode regardé", "respecter les exclusions manuelles pendant 6 mois", "ne pas supprimer ce qui est dans la watchlist Trakt", etc.
|
|
|
|
⚠️ **Important** : la suppression inclut :
|
|
- Le torrent dans qBittorrent/Deluge (suppression avec fichiers).
|
|
- L'entrée dans Sonarr/Radarr.
|
|
- Le fichier dans la bibliothèque (Jellyfin/Plex verra le fichier disparaître).
|
|
|
|
L'UI est claire, le système de **periodes de grâce** (rule delay) est bien pensé pour annuler une suppression pendant 7-30 jours.
|
|
|
|
## 🚀 Installation
|
|
### Via Docker (recommandé)
|
|
```yaml
|
|
# docker-compose.yml
|
|
services:
|
|
maintainerr:
|
|
image: ghcr.io/jorenn92/maintainerr:latest
|
|
container_name: maintainerr
|
|
restart: unless-stopped
|
|
environment:
|
|
- TZ=Europe/Paris
|
|
- PORT=6246
|
|
volumes:
|
|
- ./config:/app/config
|
|
ports:
|
|
- "6246:6246"
|
|
depends_on:
|
|
- sonarr
|
|
- radarr
|
|
```
|
|
### Installation manuelle
|
|
Node.js 20+ requis. `git clone`, `npm ci`, `npm run build`, `npm start`.
|
|
|
|
## ⚙️ Configuration
|
|
- **Connexion Sonarr/Radarr** : URL + API key, accès complet (lecture + écriture).
|
|
- **Connexion qBittorrent** : user/pass pour pouvoir supprimer le torrent côté client.
|
|
- **Période de grâce globale** : délai minimum avant toute suppression (24h par défaut, recommandé : 7 jours).
|
|
- **Règles** : commencer par 1-2 règles simples en mode `Log only` pendant 2 semaines, observer, affiner, puis activer `Delete`.
|
|
- **Exclusions** : possibilité d'exclure manuellement un film/série pour X mois.
|
|
- **Webhook Overseerr** : si la série est demandée par un utilisateur Overseerr, ne pas supprimer.
|
|
- **Notifications** : Discord, Telegram, Gotify — avertir 7j, 1j avant suppression effective.
|
|
|
|
## 🔗 Alternatives
|
|
- **Cleanuparr** — orienté maintenance technique (torrents bloqués), pas règles métier.
|
|
- **Sonarr/Radarr built-in** — pas de système de règles de suppression équivalent.
|
|
- **Traktarr** — ajoute/supprime via watchlist Trakt, cas d'usage différent.
|
|
- **Scripts custom** — TRaSH dispose de quelques exemples, mais sans UI.
|
|
|
|
## 🔒 Sécurité
|
|
- **HTTPS + SSO** obligatoire : l'UI permet de déclencher des suppressions manuelles, jamais en clair.
|
|
- **Mode `Log only` au début** : **impératif**, tester chaque règle au moins 2 semaines avant d'activer.
|
|
- **Backup** : maintenir un snapshot de `/library` (Borg, Restic, snapshots ZFS/Btrfs) au cas où une règle trop agressive détruit un contenu aimé.
|
|
- **Droits fichiers** : doit avoir accès en écriture à `/downloads` et `/library` pour les suppressions, mêmes droits que Sonarr/Radarr.
|
|
- **Audit log** : conserver les logs Maintainerr (les actions de suppression), prouver à la famille qu'on n'a pas effacé sa série préférée par accident.
|
|
- **⚠️ Suppression définitive** : une fois effacé du client torrent, le fichier est **perdu** ; Maintainerr ne re-télécharge pas automatiquement.
|
|
|
|
## 📚 Ressources
|
|
- Repository : https://github.com/jorenn92/Maintainerr
|
|
- Documentation : https://github.com/jorenn92/Maintainerr/wiki
|
|
- Wiki *arr : https://wiki.servarr.com
|
|
|
|
## 🔗 Pages Liées
|
|
- [[cat-arr]]
|
|
- [[app-sonarr]]
|
|
- [[app-radarr]]
|
|
- [[app-qbittorrent]]
|
|
- [[app-overseerr]]
|
|
- [[app-cleanuparr]] — autre outil de suppression
|
|
- [[app-traktarr]]
|
|
- [[app-traefik]]
|
|
- [[app-authentik]]
|
|
- [[securisation-home-lab]]
|
|
- [[recettes-docker-compose]]
|