Vue lecture

Checkrr : Contrôle et réparation de bibliothèque

Decypharr intègre une option de réparation automatique mais quand on agrège plusieurs sources locales et/ou distantes, il est pratique d’avoir un outil de contrôle de ses bibliothèques.

Checkrr d’aetaric permet de contrôler à intervalles réguliers le contenu des bibliothèques liées à des instances Radarr, Sonarr, Lidarr. Si un fichier manque, l’info est relayé au bon outil qui remet dans la boucle du téléchargement.

Le genre d’outil qui ne consomme rien, ne fait pas de bruit mais peut s’avérer très pratique.

Pour l’installer en Docker il faut auparavant créer la base de données et le fichier de configuration, dans le dossier de son choix. Chez moi c’est /home/aerya/docker/checkrr

touch checkrr.db
touch checkrr.yaml


On peut maintenant remplir le fichier de configuration. Y’a une version longue et une version courte, j’ai fait mon mix avec :

Mes bibliothèques

Les extensions ignorées. C’est là qu’il faut bien regarder ce qu’on, prévoir large, sous peine d’avoir beaucoup de fichier non pris en compte, ça change rien mais ça fait des erreurs et du log pour Checkrr

Mes instances de Radarr et Sonarr

Des notifications Discord en cas de problème/réparation
L’activation de la WebUI

lang: "fr-FR"
checkrr:
  checkpath: 
    - "/media/Films/"
    - "/media/Séries/"
  database: ./checkrr.db
  debug: true
  cron: "@daily"
  ignorehidden: true
  ignorepaths:
    - 'media/ignored'
  ignoreexts:
    - .txt
    - .nfo
    - .nzb
    - .url
    - .xml
    - .jpg
    - .jpeg
    - .mp3
arr:
  radarr:
    process: true
    service: radarr
    address: "https://radarr.domaine.tld"
    apikey: "xxx"
    baseurl: /
    port: 443
    ssl: true
    mappings:
      "/mnt/Bibliothèques/Films/": "/media/Films/"
  sonarr:
    process: true
    service: sonarr
    address: "https://sonarr.domaine.tld"
    apikey: "xxx"
    baseurl: /
    port: 443
    ssl: true
    mappings:
      "/mnt/Bibliothèques/Séries/": "/media/Séries/"
logs:
  stdout:
    out: stdout
    formatter: default
notifications:
  discord:
    url: "https://canary.discord.com/api/webhooks/xxx"
    notificationtypes: 
      - reacquire
      - unknowndetected
      - startrun
      - endrun
webserver:
  port: 8585
  baseurl: "/"


Et le compose qui va avec

services:
  checkrr:
    container_name: checkrr
    image: aetaric/checkrr:latest
    restart: always
    volumes:
      - /home/aerya/docker/checkrr/checkrr.yaml:/etc/checkrr.yaml
      - /home/aerya/docker/checkrr/checkrr.db:/checkrr.db
      - /mnt/Bibliothèques:/media
    ports:
      - 8585:8585
    environment:
      - TZ=Europe/Paris
    labels:
      - com.centurylinklabs.watchtower.enable=true


De cette manière Checkrr tourne 1 fois par jour (minuit) mais on peut également le lancer manuellement via l’interface.

checkrr1

Les logs

+---------------------+---------------+
| Files Checked       |         10503 |
| Hash Matches        |             0 |
| Hashes Mismatched   |             0 |
| Submitted to Sonarr |             0 |
| Submitted to Radarr |             0 |
| Submitted to Lidarr |             0 |
| Video Files         |             0 |
| Audio Files         |           167 |
| Text or Other Files |           214 |
| Unknown Files       |             3 |
| Elapsed Time        | 23.253042916s |


J’ai malheureusement, ou heureusement, aucun cas de réparation à montrer en exemple. Je ne manquerai pas d’éditer l’article si ça arrivait.
Pour Heimdall ou autre dashboard, cxtal propose une icône.

Loading

  •  

Swaparr : dégager les Torrents bloqués des *arrs (stalled)


Utilisateurs de qBittorrent, combien de fois avons-nous vu un .torrent marqué « stalled » ? Un téléchargement bloqué pour X raison et Sonarr ou Radarr qui attend… attend… encore et toujours…

Les *arrs n’ont pas d’outil de détection des téléchargements bloqués.

Swaparr comble cette lacune, très simplement.


Pour lancer le Docker, on met les instances qu’on souhaite, je teste avec les 2 que j’ai. J’ai mis les IP:port mais on peut mettre une URL sans le backslash de fin

services:
  radarr:
    image: ghcr.io/thijmengthn/swaparr:latest
    container_name: swaparr-radarr
    restart: unless-stopped
    environment:
      - BASEURL=http://192.168.0.163:7878
      - APIKEY=xxx        
      - PLATFORM=radarr
      - MAX_STRIKES=3
      - SCAN_INTERVAL=10m
      - MAX_DOWNLOAD_TIME=
      - IGNORE_ABOVE_SIZE=25GB
      - REMOVE_FROM_CLIENT=true
      - DRY_RUN=false
  sonarr:
    image: ghcr.io/thijmengthn/swaparr:latest
    container_name: swaparr-sonarr
    restart: unless-stopped
    environment:
      - BASEURL=http://192.168.0.163:8989
      - APIKEY=xxx         
      - PLATFORM=sonarr
      - MAX_STRIKES=3
      - SCAN_INTERVAL=10m  
      - MAX_DOWNLOAD_TIME=2h  
      - IGNORE_ABOVE_SIZE=25GB
      - REMOVE_FROM_CLIENT=true
      - DRY_RUN=false

J’ai tout laissé par défaut mais on peut régler les variables

NameDefaultDescription
BASEURLhttp://127.0.0.1:7878The URL of a radarr, sonarr or other starr instance.
APIKEY7f3a8..cbc07The API key of a radarr, sonarr or other starr instance.
PLATFORMradarrIndicates the type of starr platform, either radarr, sonarr, lidarr, readarr or whisparr.
MAX_STRIKES3Maximum number of strikes a download can accumulate before it is removed.
SCAN_INTERVAL10mHow often Swaparr checks for stalled downloads.
MAX_DOWNLOAD_TIME2hMaximum allowed download time before it’s considered stalled.
IGNORE_ABOVE_SIZE25GBFiles larger than this size will be ignored and not monitored.
REMOVE_FROM_CLIENTtrueRemove from both queue and download client (default) OR false only the queue of a starr instance.
DRY_RUNfalseSandbox mode; try Swaparr without it performing destructive actions on your instances.

Swaparr gère les clients de téléchargement BitTorrent liés aux *arrs, toute les 10 minutes avec cette configuration.
Et l’instance *arr pourra donc aller chercher un autre .torrent

aerya@StreamBox:~$ sudo docker logs swaparr-radarr

 ── Swaparr ───── 

╭─╮ Platform: radarr
│ │ Max strikes: 3
│ │ Scan interval: 10m
│ │ Max download time: 2h
│ │ Ignore above size: 25GB
╰─╯ Remove from client: true

╭─╮ Be part of Swaparr's journey ⭐ Star us on GitHub!
╰─╯ Your support strengthens the open-source community.

 ──────────────── 


╭──────────────────────────────────────────────────────────────────────────╮
│                            No downloads found                            │
╰──────────────────────────────────────────────────────────────────────────╯

 ─ Checking again in 10m..


╭──────────────────────────────────────────────────────────────────────────╮
│                            No downloads found                            │
╰──────────────────────────────────────────────────────────────────────────╯

 ─ Checking again in 10m..


╭──────────────────────────────────────────────────────────────────────────╮
│                            No downloads found                            │
╰──────────────────────────────────────────────────────────────────────────╯

 ─ Checking again in 10m..

Loading

  •