PlugArr 0.3.0
Deux services de plus, cables et verifies contre des instances reelles : Audiobookshelf et Seerr. Quatorze au total.
Et un defaut de PlugArr trouve en les integrant, qui touchait tout le monde depuis le debut.
Les identifiants des *arr n'etaient pas appliques sans redemarrage
PUT config/host repond 202, accuse reception, et ne change rien avant que l'application reparte. Sonarr et Radarr restaient donc inaccessibles avec les identifiants annonces, alors que tout paraissait pose : methode d'authentification relue a « forms », mot de passe present.
Ecarte par l'experience plutot que par raisonnement : ce n'est pas une question de caracteres speciaux dans le mot de passe genere — un mot de passe purement alphanumerique etait refuse exactement pareil. Un redemarrage, et la connexion passe.
C'est le meme piege que pour la cle API, ou seule la reecriture du config.xml suivie d'un redemarrage fonctionnait. L'etape redemarre desormais le conteneur et reverifie.
Audiobookshelf
Il remplit books et audiobooks, les deux bibliotheques que PlugArr rangeait depuis la 0.1.12 sans que personne ne les lise. Compte, deux bibliotheques et leurs analyses, poses et relus.
Les medias sont montes en lecture seule : il lit, il n'organise pas. Et /metadata est un volume distinct de /config — les confondre gonflerait les sauvegardes de centaines de Mo pour rien.
Trois pieges releves contre une instance reelle, et deux d'entre eux etaient des artefacts de ma propre mesure avant d'etre compris :
- il met quarante secondes a demarrer — migrations, declencheurs SQLite, ANALYZE. Sonde plus tot,
/repond 404 et on conclut a une image cassee ; - sa base SQLite se lit avec son journal
-wal, ou pas du tout. Sans lui, la tableusersparait vide pendant que/statusannonceisInit: true; POST /initne rend AUCUN jeton. 200 avec un corps vide, la ou l'accueil de Silo en renvoie deux. Sans connexion explicite ensuite, l'appel suivant repond 401.
Seerr
Successeur commun de Jellyseerr et d'Overseerr. Il declare Sonarr et Radarr, dossier anime compris, puis ferme son accueil en dernier : l'inverse laisserait une instance qui se croit prete et ne peut rien demander.
Son compte administrateur EST le compte Jellyfin. PlugArr ne lui genere aucun mot de passe : en annoncer un serait mentir.
Son image embarque sa propre specification OpenAPI et valide chaque corps contre elle. Confortable — un champ manquant est nomme dans la reponse — mais elle ment par omission, et chaque message renvoyait ailleurs que la cause :
| erreur recue | cause reelle |
|---|---|
INVALID_URL |
hostname est l'hote SEUL ; port, useSsl, urlBase sont lus mais non declares |
NO_ADMIN_USER |
serverType est obligatoire, la specification le donne pour facultatif |
hostname already configured |
l'adresse n'est acceptee qu'UNE fois — l'omettre au premier appel rend l'erreur inverse |
Trois essais reels et la lecture de son code compile pour les trouver.
Verifie, pas suppose
Installation complete depuis l'executable, relue depuis les applications :
15/15 liens etablis
Sonarr sonarr:8989 dossier=/data/media/tv anime -> /data/media/anime
Radarr radarr:7878 dossier=/data/media/movies disponibilite -> released
accueil ferme : True
Restent a venir
Shelfarr — desormais possible, il a besoin d'Audiobookshelf comme destination. Puis Shelfmark.
DroppedNeedle reste bloque, et pas par moi : il telecharge par slskd ou SABnzbd, aucun des deux au catalogue. L'inscrire aujourd'hui donnerait un service incapable de telecharger quoi que ce soit.
769 tests. Feuille de route : ROADMAP.md.