Repository navigation
Releases
v1.0.2
1.0.2 - 2026-10-28
🐛 Corrections
- (corbeille) Ce qui est mis de côté n'est plus retrouvé par cross-seed - (0d46c21)
⚙️ Maintenance
- (deps) Bump the backend group across 1 directory with 3 updates - (5ccae97)
Image Docker
docker pull ghcr.io/sec844/analysarr:1.0.2Plateformes : linux/amd64, linux/arm64 — disponible dans la section Packages du dépôt.
v1.0.1
Temps réel désactivable et démarrage qui n'attend plus Sonarr/Radarr (#54), dépendances de développement sans vulnérabilité connue.
1.0.1 - 2026-10-27
🛡️ Sécurité
- (sécurité) Vite, Vitest et outils de développement sans vulnérabilité connue - (d2a2f63)
🐛 Corrections
- (temps réel) Démarrage sans attente des webhooks, temps réel et webhooks désactivables (#54) - (c56811e)
Image Docker
docker pull ghcr.io/sec844/analysarr:1.0.1Plateformes : linux/amd64, linux/arm64 — disponible dans la section Packages du dépôt.
v1.0.0
Première version majeure. Analysarr ne se contente plus de diagnostiquer la stack : il propose quoi supprimer avec un score expliqué et l'espace réellement libéré, suit Sonarr, Radarr, le client torrent, le serveur multimédia et le gestionnaire de demandes en temps réel, et prévoit le remplissage des disques.
Après la mise à jour, le cache des médias est recréé : lancez un scan complet (bouton Scanner) avant d'utiliser la bibliothèque et l'assistant de suppression. La configuration, l'historique des actions, la corbeille, les règles d'ignore et les automatisations sont conservés. La planification passe une seule fois en vérification de nuit (4 h), modifiable dans Réglages → Planification.
1.0.0 - 2026-10-13
🚀 Nouveautés
- (automatisations) Nettoyage automatique par score et résumé hebdomadaire - (85196c5)
- (historique) Photographie quotidienne de la bibliothèque et des disques - (74cb87d)
- (nettoyage) Classement en quatre modes, note répartie sur 100 points - (cb5249f)
- (nettoyage) Assistant de suppression en grille, espace et prévisions à part - (fda526c)
- (nettoyage) Prévisions d'espace disque - (21de3af)
- (nettoyage) Assistant de nettoyage - (02e1b6b)
- (réglages) Widget et Préférences rangés dans Système - (914bce8)
- (seed) Protection du seed, torrents privés, favoris, activité et statut des séries - (9a52851)
- (temps-réel) Le temps réel par défaut, sans réglage - (15effb6)
- (temps-réel) La bibliothèque suit vos services en quelques secondes - (60b51ea)
🐛 Corrections
- (import) La relance d'import fonctionne comme l'import manuel de Sonarr/Radarr - (ca4dcf5)
- (interface) La navigation ne déborde plus de l'écran d'un téléphone - (52bf05d)
- (journaux) Les healthchecks réussis ne remplissent plus le journal (#51) - (fc90917)
- (nettoyage) Vu sans date de lecture et espace retenu par d'autres liens - (3547fb4)
- (réglages) L'historique des actions reste lisible sur une colonne étroite - (08978d7)
- (statuts) Un torrent annoncé sur plusieurs adresses n'est plus pris pour du cross-seed - (87f96e5)
- (temps-réel) Les analyses automatiques ne figent plus l'interface - (2f69794)
⚡ Performances
- (interface) Bibliothèque plus légère, filtres et taille des cartes retrouvés - (8573c07)
- (nettoyage) Classement des candidats deux fois plus rapide - (85aec8a)
- (temps-réel) Analyse des torrents sans blocage et statuts plus rapides - (4f660b3)
📖 Documentation
- (readme) Les quatre modes de classement de l'assistant de suppression - (16eaa52)
🧪 Tests
- (prévisions) Unités de taille indépendantes de la langue de la machine - (f7f1175)
⚙️ Maintenance
- (deps) Source-map-js 1.2.2 (correctif de sécurité publié) - (4c5d770)
- (deps) Shadcn rangé parmi les outils de build - (91fda55)
Image Docker
docker pull ghcr.io/sec844/analysarr:1.0.0Plateformes : linux/amd64, linux/arm64 — disponible dans la section Packages du dépôt.
v0.27.1
Correctif de stabilité : l'application ne se fige plus derrière un reverse-proxy quand la bibliothèque charge ses jaquettes. Mise à jour recommandée.
0.27.1 - 2026-09-29
🐛 Corrections
- (auth) Prolongation de session écrite au plus une fois par minute - (e82c9c1)
- (perf) Accès base hors de la boucle dans les routes appelées à chaque page - (97b84bb)
- (perf) Plus d'interblocage sous une salve de requêtes - (ab56a32)
⚙️ Maintenance
- (deps) Dépendances du backend à jour - (3e35bb9)
- (deps) Dépendances du frontend à jour, audit propre - (686e657)
- Notes de version normalisées avec git-cliff - (2d97994)
- Actions GitHub à jour (Node.js 24) - (a5cfa24)
- Ignorer les sorties graphify - (b23d14d)
Image Docker
docker pull ghcr.io/sec844/analysarr:0.27.1Plateformes : linux/amd64, linux/arm64 — disponible dans la section Packages du dépôt.
v0.27.0
Éléments ignorés et saisons non importées
Mise à jour recommandée. Le cache change de structure : lancez un scan
complet après la mise à jour.
Éléments ignorés (issue #41)
Un menu ⋯ sur chaque torrent, chaque fichier de bibliothèque et chaque fiche
média permet de ne plus être alerté pour ce qui est voulu :
- ignorer un torrent orphelin ou non hardlinké, gardé en seed par exemple ;
- garder volontairement un fichier, comme une VF et une VOSTFR côte à côte ;
- masquer une alerte d'un média — un média qu'aucun Radarr ne connaîtra peut
masquer « Non suivi » directement depuis « Lier à Radarr ».
Un élément ignoré ne compte plus pour la santé, les filtres, l'espace
récupérable, les notifications ni les automatisations, et « Nettoyer »,
« Réparer » et les automatisations n'y touchent jamais. Les alertes masquées
restent visibles, barrées ; l'état « Alertes masquées » les retrouve dans la
bibliothèque, et Réglages → Éléments ignorés liste tout.
Rien n'est ignoré pour toujours : dès que la situation change (nouvel
orphelin, fichier remplacé, torrent devenu protégé…), l'élément redevient
signalé automatiquement, et c'est tracé dans l'historique.
Saisons téléchargées d'avance (issue #41)
Un torrent dont aucune saison n'est encore dans la bibliothèque n'est plus
signalé orphelin : il apparaît « Non importé », simple information, et n'est
jamais proposé au nettoyage. Un vrai orphelin — ancienne version d'épisodes
présents — le reste.
Corrections
- Taille des fichiers (issue #40) : lue sur le disque, elle n'attend plus que
le serveur multimédia relise le fichier après un remplacement. - Corbeille : une restauration recrée bien le film dans Radarr ; « Analyser
ce média » ne peut plus rattacher un média non suivi à un autre film. - Après « Nettoyer », « Réparer » ou une suppression, les statuts tiennent
compte de toutes les sources : un média non suivi garde son alerte, un
import bloqué reste signalé. - Sécurité : la route qui sert l'interface vérifie que le fichier demandé
reste dans son dossier.
Changements
Nouveautés
- ignorer : ignorer un torrent, garder un fichier, masquer une alerte
- torrents : saisons téléchargées d'avance marquées « Non importé »
Corrections
- corbeille : la restauration recrée bien le film dans Radarr
- sécurité : la route de l'interface ne sert plus de fichier hors du build
- statuts : un seul recalcul, à partir de toutes les sources
- bibliothèque : taille des fichiers lue sur le disque
Comparatif complet : v0.26.0...v0.27.0
Image Docker
docker pull ghcr.io/sec844/analysarr:0.27.0Plateformes : linux/amd64, linux/arm64 — disponible dans la section Packages du dépôt.
v0.26.0
Ombi, collections Jellyfin et suppression en tout ou rien
Ombi (issue #38)
Ombi rejoint Seer comme gestionnaire de demandes. Le choix se fait en tête de
Réglages → Gestionnaire de demandes (l'ancienne section Seer), et dans
l'assistant de premier lancement. Comme Seer, Ombi est lu en lecture seule :
la fiche média affiche qui a demandé le média, quand, où en est la demande, les
saisons demandées et le badge 4K. Ombi ne mémorise pas qui a approuvé une
demande : la fiche indique simplement « approuvé ». Le test de connexion
signale un mauvais choix entre Seer et Ombi. Une installation existante reste
sur Seer, rien à changer.
Utilisateur du conteneur (PUID, PGID, UMASK)
Analysarr peut désormais tourner sous l'utilisateur de Sonarr, Radarr et du
client torrent : réglez PUID et PGID (99 et 100 sur Unraid), et au besoin
UMASK (002 par défaut). Les fichiers qu'il crée ou déplace gardent alors le bon
propriétaire. Sans ces variables, rien ne change : Analysarr démarre en root,
comme avant, avec un avertissement dans les journaux.
Sur une nouvelle installation, la base de données vit dans /config. Une
installation existante garde sa base là où elle est.
Suppression en tout ou rien
Une suppression touche le disque, le client torrent et Sonarr/Radarr. Si l'une
de ces étapes échouait, les précédentes restaient faites : un torrent pouvait
être retiré du client alors que le fichier de la bibliothèque, faute de droits,
restait en place — le média n'était plus seedé et la corbeille ne pouvait rien
rendre. Désormais :
- droits d'écriture et montages sont vérifiés avant de toucher à quoi que ce
soit ; un refus indique le chemin en cause et comment le corriger ; - au moindre échec, tout est remis en place : fichiers, torrent réajouté au
client, fiche Sonarr/Radarr, épisodes de nouveau surveillés.
Cela vaut pour la suppression manuelle, le bouton Nettoyer et les
automatisations. Sonarr/Radarr ne suppriment plus eux-mêmes les fichiers :
Analysarr les met de côté d'abord, ce qui permet de tout annuler.
Une suppression interrompue par une version précédente (torrent absent de la
corbeille) peut maintenant être restaurée : le torrent est remis dans le
client, qui reprend le seed sans rien retélécharger. Son ratio repart de zéro.
Corrections
- Collections Jellyfin (issue #34) : les films d'une collection
n'apparaissent plus « absents du serveur », et la collection n'est plus prise
pour un film non suivi de 0 o. Un scan complet suffit après la mise à jour. - « Analyser ce média » sans serveur multimédia configuré affiche un message
clair au lieu d'une erreur. - Des textes parlaient encore de supprimer la demande dans Seer, fonction
retirée : Analysarr ne modifie jamais une demande.
Interface
Les réglages, l'assistant et la fiche média se chargent à la demande :
l'ouverture de l'application est plus légère.
Changements
Nouveautés
- demandes : prise en charge d'Ombi en alternative à Seer
- docker : tourner sous PUID/PGID plutôt qu'en root
Corrections
- serveur-multimédia : ne plus replier les films derrière leurs collections
- docker : rester en root tant que PUID/PGID ne sont pas définis
- suppression : tout ou rien, droits vérifiés avant d'agir
- analyse : message clair quand le serveur multimédia n'est pas configuré
Maintenance
- pages chargées à la demande, secrets stockés documentés
- front : dialogues de suppression, réparation et invalidation du cache
- scan : package de scan, fonctions découpées et erreurs journalisées
- scan : caractérisation du scan complet avant restructuration
- backend : ruff et mypy en CI, code mis en conformité
- front : TypeScript strict et zéro avertissement oxlint
- deps : bump the frontend group in /frontend with 6 updates
- deps : bump uvicorn in /backend in the backend group
Comparatif complet : v0.25.1...v0.26.0
Image Docker
docker pull ghcr.io/sec844/analysarr:0.26.0Plateformes : linux/amd64, linux/arm64 — disponible dans la section Packages du dépôt.
v0.25.1
Taille de la corbeille et interface derrière un reverse-proxy
Correctif de la 0.25.0. Mise à jour recommandée à qui expose Analysarr derrière
un reverse-proxy ou utilise la corbeille.
Interface inutilisable derrière un reverse-proxy
Sur une adresse où aucune session n'était encore ouverte, l'interface se
rechargeait en boucle plusieurs fois par seconde et devenait inutilisable. Un
appel protégé était lancé avant même l'écran de connexion ; la réponse 401
provoquait un rechargement de la page, qui relançait le même appel. L'appel
n'est plus émis avant la connexion, et une session perdue ramène simplement à
l'écran de connexion, sans rechargement. Les réponses de l'API sont désormais
marquées comme non cachables, pour qu'aucun cache intermédiaire ne resserve un
état de connexion périmé.
Taille annoncée par la corbeille
La corbeille additionnait les tailles de tout ce qu'elle contenait. Un film et
le torrent qui le seede sont pourtant le même fichier sur le disque : sa taille
était comptée deux fois. La corbeille annonce maintenant l'espace que la purge
libérerait réellement — une taille comptée une seule fois pour un fichier et
ses hardlinks, et zéro tant qu'un de ses liens vit encore ailleurs, puisque la
purge ne libère alors rien. La taille affichée sur chaque ligne reste celle du
fichier.
Aucune action nécessaire après la mise à jour.
Changements
Corrections
- corbeille, proxy : taille récupérable réelle et fin de la boucle de rechargement
Comparatif complet : v0.25.0...v0.25.1
Image Docker
docker pull ghcr.io/sec844/analysarr:0.25.1Plateformes : linux/amd64, linux/arm64 — disponible dans la section Packages du dépôt.
v0.25.0
Corbeille, médias non suivis et filtres
Corbeille
Les suppressions faites depuis Analysarr deviennent récupérables pendant une
durée configurable (Réglages → Système → Corbeille, désactivée par défaut).
L'unité est l'action, pas le fichier : une suppression de série tient en une
ligne, restaurée d'un bloc. Une restauration remet les fichiers en place avec
leurs hardlinks, réinjecte les données et le torrent dans le client (qui reprend
le seed sans rien retélécharger) et recrée la fiche dans Sonarr/Radarr. Seules
les statistiques de partage du torrent repartent de zéro : aucune API de client
torrent ne permet de les restaurer.
Médias de la bibliothèque non suivis par Sonarr/Radarr
Un film ajouté à la main, une série retirée de Sonarr ou une bibliothèque plus
ancienne que Radarr étaient jusqu'ici invisibles. Ils apparaissent désormais avec
le statut « Non suivi », leurs doublons et leurs torrents orphelins compris. Le
bouton « Lier à Radarr/Sonarr » reproduit leur écran « Import Existing » : le
dossier vient de leur propre liste de dossiers non rattachés, l'ajout passe par
leur import en masse, et les fichiers déjà en place sont repris tels quels. Une
automatisation peut le faire seule quand la fiche est certaine.
Filtres (issue #35)
La barre de la bibliothèque tient en quatre éléments : recherche, type de média,
état (sain / alerte) et tri. Le bouton « Filtres » ouvre le détail : statuts
d'alerte et visionnage en cases à cocher, avec un commutateur pour exiger tous
les statuts cochés au lieu d'un seul. La couverture tracker devient un badge
informatif : un média correctement seedé sur un seul tracker reste sain.
Mises à jour
Analysarr vérifie à l'ouverture d'une page si une version plus récente est
publiée, et peut le notifier (Discord, ntfy, Gotify). Vérification désactivable,
aucune requête sortante alors.
Garde-fous
- Toute action qui touche au disque vérifie d'abord que les volumes concernés
sont montés : un disque absent ne sera plus confondu avec des fichiers
supprimés. - Les automatisations se suspendent d'elles-mêmes quand un scan fait basculer
une part anormale de la bibliothèque (20 % par défaut), avec notification et
reprise manuelle.
Instance exposée
En-têtes de sécurité sur toutes les réponses, limitation de débit sur les routes
d'authentification, prise en compte de l'adresse réelle du client derrière un
reverse-proxy déclaré, et journal des connexions dans Réglages → Compte.
Corrections
- Les fichiers annexes (NFO, sous-titres, jaquettes) suivent la vidéo à la
suppression et reviennent avec elle depuis la corbeille ; un dossier vidé de
ses vidéos est supprimé. - Une fiche restaurée dans Radarr/Sonarr n'y apparaît plus avec plusieurs
chemins et plusieurs NFO identiques. - « Analyser ce média » sur un média non suivi adopte la fiche Sonarr/Radarr dès
qu'elle existe, au lieu de garder le statut « Non suivi ». - « Réparer les hardlinks » fonctionne de nouveau (l'aperçu échouait).
- Les événements d'import manquaient dans la liste des notifications.
Changements
Nouveautés
- filtres : état sain/alerte, statuts multiples et couverture tracker en badge
- médias non suivis : rattachement automatique à Sonarr/Radarr
- médias non suivis : bouton de rattachement, fuseau horaire et finitions
- scan : détection des médias de la bibliothèque non suivis par Sonarr/Radarr
- corbeille : restauration complète d'une suppression, torrents compris
- corbeille : suppressions récupérables pendant une durée configurable
- sécurité : durcissement pour une instance exposée
- automatisations : mise en pause après un basculement massif des statuts
- suppression : refus des actions quand un volume n'est pas monté
- mises à jour : vérification à l'ouverture et notification de nouvelle version
Corrections
- médias : annexes NFO, dossiers vides et analyse d'un média non suivi
- rattachement : passer par l'import de dossier existant de Sonarr/Radarr
- rattachement : import du dossier existant, comme Sonarr/Radarr
- corbeille : restauration fidèle et sans perte de fichiers
- notifications : événements d'import absents de la liste de l'interface
Maintenance
- la suppression et la restauration ne touchent plus aux demandes Seer
- code mort, imports inutiles et réparation de hardlink cassée
Comparatif complet : v0.24.0...v0.25.0
Image Docker
docker pull ghcr.io/sec844/analysarr:0.25.0Plateformes : linux/amd64, linux/arm64 — disponible dans la section Packages du dépôt.
v0.24.0
Analyses ciblées : par service et par média
Analyse d'un seul média
Chaque fiche média a un bouton « Analyser ce média ». Il relit Sonarr/Radarr,
le serveur multimédia, la file d'attente et les torrents de ce média
uniquement : les nouveaux torrents apparaissent, les fichiers disparus s'en
vont, les statuts suivent. L'identifiant de la fiche ne change pas. Si
Sonarr/Radarr ne suit plus le média, sa fiche est supprimée.
Analyse par service
La flèche accolée au bouton Scanner propose sept périmètres : Radarr, Sonarr,
serveur multimédia, client torrent, file d'attente, visionnage et Seer. Le
bouton lui-même lance toujours l'analyse complète.
Ces analyses n'interrogent ni l'historique Sonarr/Radarr ni le client torrent :
les fichiers de chaque torrent sont désormais mémorisés, ce qui permet de
recalculer hardlinks, orphelins et statuts sans rappeler le client. Elles sont
donc nettement plus rapides qu'un scan complet, tout en reconstruisant les
médias avec exactement le même code.
Corrections
- Le bouton Scanner reste affiché « en cours » quand on quitte la page puis
qu'on y revient pendant une analyse. - Réglages → Planification n'affiche plus que les analyses planifiées ; les
analyses lancées à la main sont dans Réglages → Historique, avec le
périmètre analysé.
Merci à @casse-boubou pour la proposition (issue #30).
Après la mise à jour, lancez une analyse complète : le cache des médias est
reconstruit et les fichiers des torrents sont mémorisés pour les analyses par
service.
Changements
Nouveautés
- scan : une analyse par service, et corrections de l'historique et du bouton
- scan : analyses ciblées par service et par média
Maintenance
- scan : commentaire des périmètres aligné sur les services réels
- mention de l'assistance de l'IA en fin de README
Comparatif complet : v0.23.0...v0.24.0
Image Docker
docker pull ghcr.io/sec844/analysarr:0.24.0Plateformes : linux/amd64, linux/arm64 — disponible dans la section Packages du dépôt.
v0.23.0
Imports bloqués, téléchargements en souffrance et correctifs de détection
Imports bloqués
Sonarr/Radarr télécharge parfois un fichier sans réussir à le ranger dans la
bibliothèque. Le média passait alors pour absent du serveur multimédia, et son
torrent pour un orphelin à supprimer.
La file d'attente Sonarr/Radarr est désormais lue à chaque scan. Un
téléchargement bloqué donne au média le statut « Import raté », avec le motif
renvoyé par Sonarr/Radarr sur la fiche et un bouton pour relancer l'import.
Tant que l'import est bloqué, le média n'est plus signalé absent et son
téléchargement n'est jamais proposé au nettoyage. Un média sans fichier mais
bloqué à l'import apparaît maintenant dans la bibliothèque, là où il restait
invisible. Un import raté ne s'affiche que sur la fiche du média concerné :
le rattachement ne repose que sur l'identifiant donné par Sonarr/Radarr.
Téléchargements en souffrance
Un téléchargement qui n'avance plus est signalé sur la fiche du média avec son
motif. Volontairement passif : Analysarr informe et sait notifier, mais ne
supprime ni ne relance jamais un téléchargement.
Correctifs
- Les épisodes d'un fichier multi-épisodes (S03E01-E02 fusionnés) ne sont plus
signalés absents du serveur multimédia. - Jellyfin refusait les champs que seule l'API d'Emby accepte : ils ne lui sont
plus envoyés, ce qui fiabilise épisodes et jaquettes côté Jellyfin. - Un média dont il ne reste ni fichier ni torrent peut enfin être supprimé, en
le retirant de Sonarr/Radarr et de Seer. - En-tête : logo aligné sur le numéro de version, pastille de mise à jour
déplacée à côté de la version.
Après la mise à jour, lancez un scan : le cache des médias est reconstruit.
Changements
Nouveautés
- scan : signaler les téléchargements en souffrance
- import : statut « import raté », relance d'import et suppression d'un média vide
Corrections
- import : rattacher un import raté au seul média concerné
- import : relance d'import plus robuste et erreur explicite
- ui : aligner le logo sur la version et déplacer la pastille de mise à jour
- jellyfin : ne plus demander des champs que Jellyfin refuse
- scan : ne plus signaler absents les épisodes d'un fichier multi-épisodes
Maintenance
- mention de Community Applications dans le README français
- unraid : une seule copie du template, dans le dépôt dédié
- unraid : fil de support forum et publication dans Community Applications
- unraid : clients torrent supplémentaires dans le template
Comparatif complet : v0.22.0...v0.23.0
Image Docker
docker pull ghcr.io/sec844/analysarr:0.23.0Plateformes : linux/amd64, linux/arm64 — disponible dans la section Packages du dépôt.