---
title: Cleanuparr
created: 2026-06-07
updated: 2026-06-07
type: app
tags: [catalogue, arr, cleanup, torrent, automation, qbittorrent]
confidence: high
contested: false
sources: [https://selfh.st/apps/?tag=*arr, https://github.com/Cleanuparr/Cleanuparr]
---

# 🎬 Cleanuparr

> Nettoyeur automatique de torrents orphelins et de fichiers *arr mal gérés : détecte les torrents bloqués, les imports ratés, les fichiers dupliqués, et libère l'espace disque intelligemment.

## 📋 Informations Générales

| Attribut | Valeur |
|----------|--------|
| **Nom** | Cleanuparr |
| **Slug** | cleanuparr |
| **Description** | Outil de nettoyage et maintenance pour Sonarr/Radarr/qBittorrent : suppression de torrents bloqués, gestion des imports échoués, optimisation disque |
| **Site officiel** | https://cleanuparr.github.io |
| **Repository** | https://github.com/Cleanuparr/Cleanuparr |
| **Stars** | 2 296 ⭐ |
| **Licence** | GPL-3.0 |
| **Langage principal** | C# (.NET) |
| **Catégorie** | *arr (utilitaires) |
| **Tags** | [catalogue, arr, cleanup, torrent, automation, qbittorrent] |

## 📝 Description

**Cleanuparr** est l'outil que vous installez 6 mois après avoir monté votre stack *arr complète, quand vous réalisez que vous avez 200 torrents en `stalled`, 50GB de fichiers `.partial~`, des saisons 3 téléchargées en triple parce qu'un épisode était mal nommé, et 3 jobs Sonarr bloqués depuis 3 semaines sur "Already imported but found in download client".

Les fonctionnalités principales :

- **Détection des torrents bloqués** : un torrent est `stalled`/`error`/`missing` depuis plus de X jours → action configurable (supprimer, hard-delete, mettre en pause, notifier).
- **Imports échoués *arr** : scan de la queue Sonarr/Radarr, identification des jobs coincés, retry ou suppression.
- **Fichiers partiels** : nettoyage des `.partial~`, `*.!qB`, fichiers sans extension dans `/downloads`.
- **Doublons** : hash-based dedup, garde le fichier de meilleure qualité, supprime les autres.
- **Hardlinks cassés** : détection et réparation des hardlinks entre `/downloads` et `/library`.
- **Règles personnalisables** : planifier via cron intégré, dry-run obligatoire, logs détaillés.

Cleanuparr est **non-destructif par défaut** : tout part en dry-run, on valide, on bascule en mode actif. C'est appréciable vu qu'il touche à des données irremplaçables.

## 🚀 Installation
### Via Docker (recommandé)
```yaml
# docker-compose.yml
services:
  cleanuparr:
    image: ghcr.io/cleanuparr/cleanuparr:latest
    container_name: cleanuparr
    restart: unless-stopped
    environment:
      - TZ=Europe/Paris
      - LOG_LEVEL=info
    volumes:
      - ./config:/app/config
      - /data/downloads:/downloads
      - /data/movies:/movies
      - /data/tv:/tv
    ports:
      - "6868:6868"
```
### Installation manuelle
.NET 8 SDK requis, binaire self-contained sur les releases GitHub (Linux x64, arm64, Windows).

## ⚙️ Configuration
- **Connexion qBittorrent** : URL, user/pass (pas le cookie). Activer l'API Web dans qBittorrent.
- **Connexion Sonarr/Radarr** : API key + URL, pour lire la queue d'imports.
- **Règles de blocage** : par défaut `stalled > 7 jours ET ratio < 1.0 → notifier ; > 14 jours → supprimer avec fichiers`. Ajuster selon votre usage (Fibre + VPN → seuil de 30 jours raisonnable).
- **Dry-run** : **toujours** activé en premier passage, désactiver seulement après validation.
- **Notifications** : Discord, Telegram, Apprise (multi-canaux), webhook.
- **Schedule** : cron intégré, ex `0 3 * * *` (3h du matin tous les jours).

## 🔗 Alternatives
- **Sonarr/Radarr built-in Queue Cleaner** — minimaliste, intégré, mais pas de cross-service.
- **Maintainerr** — orienté règles de suppression métier (cf. fiche dédiée), pas maintenance technique.
- **Traktarr** — suppression basée sur watchlist, cas d'usage différent.
- **Scripts bash custom** — pour les bricoleurs, mais aucune UI ni logs centralisés.

## 🔒 Sécurité
- **Droits fichiers** : Cleanuparr **supprime** des fichiers réels, le user Docker (PUID) doit avoir les droits sur `/downloads` et `/library` — équivalents à Sonarr/Radarr/qBittorrent.
- **Dry-run avant prod** : tester 1 semaine en mode simulation pour vérifier qu'il n'efface rien d'important.
- **Pas d'auth locale forte** : mettre derrière Authelia/Authentik, jamais exposé en clair.
- **Backup** : faire un snapshot de `/downloads` et `/library` avant la première activation, **rien n'est récupérable après suppression**.
- **Logs** : conserver 30 jours minimum, le service peut faire des erreurs de jugement (garder un torrent qui aurait dû être supprimé est moins grave que l'inverse).

## 📚 Ressources
- Site officiel : https://cleanuparr.github.io
- Documentation : https://cleanuparr.github.io/docs
- Wiki *arr : https://wiki.servarr.com

## 🔗 Pages Liées
- [[cat-arr]]
- [[app-sonarr]]
- [[app-radarr]]
- [[app-qbittorrent]]
- [[app-maintainerr]] — autre outil de suppression, plus orienté règles métier
- [[app-traktarr]]
- [[app-traefik]]
- [[app-gluetun]] — VPN
- [[securisation-home-lab]]
- [[recettes-docker-compose]]
