Pour nous contacter : soyez au rendez-vous sur IRC ! ⋅ Parcourir notre archive musicale Dogmazic ⋅ Notre Blog ⋅ Notre Documentation
Bonjour à tous,

Le forum Musique Libre a migré !

Pas d'inquiétude, vos comptes et vos messages ont été migré ! Mais nous n'avons pas pu migrer les mots de passe, il vous faudra donc cliquer sur "J’ai oublié mon mot de passe" et suivre la procédure.

Welcome back ;)

Mise à jour de Ampache - retours bienvenus (topic unique)

Avatar de l’utilisateur
jp_h
Messages : 295
Inscription : 27 mai 2006, 10:09

Re: Mise à jour de Ampache - retours bienvenus (topic unique)

Message par jp_h »

J'en suis bouche bée !
Avatar de l’utilisateur
shangril
Messages : 3040
Inscription : 13 oct. 2010, 19:18

Re: Mise à jour de Ampache - retours bienvenus (topic unique)

Message par shangril »

Je me joins aussi à ce silence ébahi. Et pas qu'un peu.
fufroma
Site Admin
Messages : 43
Inscription : 11 juil. 2026, 14:45

Re: Mise à jour de Ampache - retours bienvenus (topic unique)

Message par fufroma »

Bon, on remet ça.

Ampache 8.1.0 est sorti cette nuit, et Dogmazic tourne dessus depuis ce matin.

https://github.com/ampache/ampache/releases/tag/8.1.0

Autant le dire tout de suite : c'est une des plus grosses mises à jour depuis des années, et elle nous concerne très fort. Ba oui, parce qu'une bonne partie, c'est nous qui l'avons écrite. Du coup certaines nouveautés sont déjà en place ici depuis quelques jours, vous les avez peut-être croisées sans le savoir.

On vous avait promis, c'est livré

Dans le message précédent, on vous parlait de deux trucs "en cours de dev, en test sur Dogmazic, et si tout va bien accepté en amont". Eh bien c'est accepté en amont. C'est dans Ampache, pour tout le monde.

Des jaquettes dessinées, pour de vrai. Fini le logo Dogmazic répété à l'infini (même si j'adore ce logo) : un album sans pochette reçoit un disque, un artiste un médaillon, une playlist une liste de pistes, un morceau orphelin une forme d'onde. Le dessin est généré à partir du nom de l'objet, donc il est stable — le même album aura toujours la même image, ce n'est pas tiré au sort à chaque chargement. Et c'est du vectoriel : 4,6 ko qui servent toutes les tailles, de la vignette au plein écran, là où une vraie pochette en 400x400 pèse 25 ko. Rien n'est stocké, ni fichier, ni base, ni cache : c'est dessiné à la volée.

Des titres d'onglets enfin utiles. L'onglet porte le nom de l'artiste ou de l'album que vous consultez, avec en option une icône qui indique le type de page. Quinze onglets ouverts, on s'y retrouve.

Une interface remise à plat

Pas une révolution, rassurez-vous, vous n'avez rien à réapprendre. Les pages objet (artiste, album, morceau, playlist, podcast, label) partagent maintenant un en-tête commun et une mise en page qui s'adapte réellement à la taille de l'écran. Ça se voit surtout aux extrêmes : sur un téléphone, et sur un très grand écran.

Les bots, deuxième round. Allez le T1000, tu traverses la rue, tu bosses. Hop hop hop.

Le pare-feu anti-bot maison (l'truc qui fait résoudre une petite énigme mathématique au navigateur avant de laisser passer) est lui aussi remonté dans Ampache officiel. Il protège le formulaire d'inscription et les téléchargements (zip et morceau seul), sa difficulté se règle, et il ne s'applique pas aux gens connectés (ou alors vous êtes pas un gens. Je t'ai dit de partir Terminator).

Sur le papier, un robot garde toujours une chance sur un million de passer au travers... ce qui, comme chacun sait, marche neuf fois sur dix. En pratique ce qu'on lui coûte, c'est du temps de calcul : trivial une fois, ruineux mille fois. On peux ruiner une fois mille personne, mais on peux pas ruiner mille fois mille personne... non. heu. Bref, ça n'arrêtera pas un attaquant déterminé, ça calme les crawlers qui martèlent bêtement. Et sur ce terrain-là, ça marche très bien. Owi.

Les performances : accrochez-vous

C'est là qu'est passé le gros du travail, et c'est franchement indécent. Cachez vous les yeux.

Petite précision d'abord, parce que sinon ça ne veut rien dire : tous les chiffres ci-dessous sont mesurés sur une copie de la vraie base de Dogmazic : 62 000 morceaux, 8 000 albums, 5 000 artistes, 3 000 playlists, 8 000 comptes. Même machine, même PHP, même base. Seul le code (et le fun) change.

Code : Tout sélectionner

                                             Avant                Après              Facteur
-------------------------------------------  -------------------  -----------------  ----------
Les compteurs globaux du cron                159 638 requêtes     19 requêtes        x8400
Le "Random avancé" rechargé                  62 005 requêtes      172, en 0,19 s     x360
Le tri de la page des albums populaires      685 ms               4,7 ms             x146
Le démarrage d'une application mobile        2,63 s / 8 972 req.  0,40 s / 188 req.  x6,6 / x48
Reconstruire les préférences de 500 comptes  248 s                6 s                x41
Recherche "écouté il y a plus de N jours"    7,8 s                0,4 s              x19,5
S'authentifier à l'API                       13,4 ms              0,9 ms             x15
Afficher une page album                      641 requêtes         51 requêtes        x12,6
La liste "récemment joué"                    540 ms               95 ms              x5,7
La page des albums populaires, bout en bout  0,98 s               0,30 s             x3,3
Deux commentaires sur ce tableau.

Le "Random avancé" ne figurait pas dans la colonne "lent" : il figurait dans la colonne "ne répondait jamais", et il mettait même pas une musique d'attente. Si vous rechargiez la page, il mettait la bibliothèque entière en file d'attente, un ajout à la fois. Vous avez l'image de la personne qui tape au clavier avec un seul doigt ? Pareil, mais en plus c'était un doigt de pied.

Et le pompon, tout en haut : cent cinquante-neuf mille six cent trente-huit requêtes, à chaque passage de la tache de maintenance du serveur pour mettre à jour des compteurs. Maintenant dix-neuf. Pas dix-neuf mille. Dix-neuf.

Le principe général derrière tout ça : une page lit maintenant un nombre fixe de requêtes quelle que soit sa taille. Afficher 50 morceaux ou 500 coûte le même nombre d'allers-retours en base. Dans le détail, servir une pochette n'ouvre plus une session complète, les listes de playlists servent une durée déjà calculée au lieu de la recompter ligne par ligne, les traductions sont lues depuis un cache compilé au lieu d'être redécodées à chaque page, et un visiteur qui ne lance rien n'écrit plus une seule ligne en base juste en passant par là.

La sécurité : un nombre effrayant de correctifs (bouh !)

Le Guet est passé, il a fait sa ronde, et il a trouvé un certain nombre de portes qui n'étaient pas fermées. Certaines depuis un moment. Sans tout lister :
  • des playlists et des recherches privées qui fuitaient par plusieurs points d'entrée
  • un utilisateur qui pouvait vider ou réordonner la file de lecture d'un autre
  • un compte désactivé qui continuait à fonctionner via Subsonic, WebDAV ou un flux RSS
  • une déconnexion qui ne révoquait pas réellement le cookie "se souvenir de moi"
  • plusieurs injections, plusieurs XSS, des contournements du filtrage par catalogue, et des jetons anti-CSRF manquants sur des actions de suppression
Rien à faire de votre côté, tout est déjà appliqué. Tu s'occupe de rien, je s'occupe de tout.

Partager un lien, enfin

Jusqu'ici, partager un album sur Facebook ™, WhatsApp ®, Signal ©, Telegram ℠, Mastodon ® ou Discord ™ affichait une carte générique décrivant le site, et absolument tous les liens se présentaient comme un morceau, y compris les artistes et les playlists. C'est corrigé : chaque page décrit maintenant ce qu'elle est vraiment, avec son image, y compris les pages dossier et collection. Et comme les jaquettes dessinées sont du vectoriel, que ces services ne savent pas afficher, on retrouve notre logo Dogmazic qu'on aime.

Par contre on n'a rien pu faire pour ceux qui publient sur Multimania ®, Caramail ™, AltaVista ©, Skyblog ℠, Napster ® ou Le Minitel ™. On présente nos excuses aux trois personnes concernées.

Et si ça casse ?

Soyons honnêtes : avec autant de boulot d'un coup, il n'est pas impossible que des bugs apparaissent. Comme toujours, n'hésitez pas à venir nous le signaler. Un message ici suffit, même si vous n'êtes pas sûr, même si c'est un détail. Et si le site vous répond un truc du genre "Erreur : plus de fromage. Recommencez.", c'est qu'on a touché à quelque chose : dites-le nous, on remettra du fromage ®.

Bravo à ceux qui ont lu jusqu'ici. L'archive est, comme toutes les bonnes bibliothèques, plus grande à l'intérieur qu'à l'extérieur : allez donc vous y perdre ;)
Avatar de l’utilisateur
jp_h
Messages : 295
Inscription : 27 mai 2006, 10:09

Re: Mise à jour de Ampache - retours bienvenus (topic unique)

Message par jp_h »

Mais quel geek ce (ou cette, je sait pas, vu le nom) fufroma ! Merci.
Répondre