>_ DevTrendsfr

Langue

Accueil

Langages

Sections

Frontend Backend Mobile DevOps AI / ML GameDev Blockchain Sécurité
JavaScript

Un hub musical tout-en-un dans un seul conteneur Docker - Critique de lxserver

595 étoiles

Un scénario familier : vous voulez écouter de la musique, mais une application ne s'entend pas avec une autre, vos playlists préférées sont dispersées entre différents services, et le client desktop dévore la moitié de votre RAM. Habituellement dans ces cas-là, on fait avec ou on commence à bricoler un tas de rustines. Le projet lxserver propose une solution plus élégante — lancez votre propre serveur qui rassemble différentes sources musicales dans une interface pratique.

Qu'est-ce que c'est

lxserver est une version serveur étendue du lecteur LX Music populaire. Fondamentalement, c'est une application Node.js qui combine un serveur de synchronisation de données et un lecteur web complet. Alors que LX Music était auparavant surtout une histoire de bureau, vous pouvez maintenant le déployer sur un serveur domestique ou un VPS et accéder à votre bibliothèque multimédia depuis n'importe quel navigateur.

Curieusement, l'auteur n'a pas simplement créé « un autre lecteur » — il a ajouté le support du protocole Subsonic. Cela signifie que vous pouvez connecter des apps mobiles comme Feishin ou « 音流 » à votre serveur et écouter de la musique sur votre smartphone comme si elle était stockée localement.

Ce qui le rend formidable en pratique

La première chose qui attire l'œil est l'interface. Elle est épurée, moderne, et pas surchargée de détails inutiles. Mais le diable, comme toujours, est dans les détails. Voici quelques choses que j'ai trouvées les plus utiles.

Recherche polyvalente et gestion des playlists

Le problème avec de nombreux lecteurs auto-hébergés est qu'ils ne peuvent lire que ce que vous avez soigneusement téléchargé sur le disque. lxserver peut agréger la recherche sur différentes plateformes. Vous tapez simplement le nom d'un groupe et vous voyez les résultats de plusieurs sources à la fois. Les pistes que vous aimez peuvent être combinées en playlists, réordonnées par glisser-déposer, ou modifiées en masse dans la file d'attente de lecture.

Automatisation du cache

Le point faible de tout lecteur en ligne est une mauvaise connexion internet. Les développeurs de lxserver ont implémenté un système de cache automatique. Le lecteur enregistre automatiquement les paroles, les liens et les fichiers audio. Les paramètres incluent un panneau dédié à la gestion du cache où vous pouvez définir des limites (par défaut 2 Go) et surveiller l'espace que prennent vos albums préférés.

Partage social et thèmes

Un petit plus appréciable : le lecteur dispose d'une fonctionnalité pour créer des cartes de citation à partir des chansons. Vous pouvez choisir le format vertical ou carré, personnaliser les couleurs pour correspondre à la pochette de l'album, et enregistrer l'image pour partager sur les réseaux sociaux. Ils ont également ajouté une collection de thèmes aux noms poétiques comme « Sea Shark » ou « Crimson Moon ».

Interface du lecteur

Détails techniques

Le projet est écrit en Node.js et utilise Express pour le backend. WebSocket fonctionne en arrière-plan pour les opérations en temps réel. L'architecture est divisée en trois parties :

  1. Backend principal responsable de la synchronisation et WebDAV.
  2. Console de gestion (panneau d'administration).
  3. Le lecteur web lui-même en JavaScript vanilla.

Pour ceux qui s'inquiètent de la sécurité, l'auteur a inclus l'autorisation. L'accès au lecteur peut être protégé par mot de passe via des variables d'environnement. C'est particulièrement pertinent si vous exposez le serveur au monde extérieur.

Configuration via l'environnement

Au lieu de fouiller dans config.js, le moyen le plus simple de configurer le serveur est d'utiliser des variables. Les plus utiles :

  • ENABLE_WEBPLAYER_AUTH : active la connexion protégée par mot de passe.
  • WEBPLAYER_PASSWORD : le mot de passe lui-même.
  • CACHE_SIZE_LIMIT : pour que le serveur ne remplisse pas tout le disque avec des fichiers temporaires.

Comment démarrer

La méthode la plus rapide est Docker. L'auteur a préparé des images prêtes à l'emploi sur Docker Hub et GitHub Packages. Voici un exemple d'un docker-compose.yml simple qui lancera tout ce dont vous avez besoin :

version: '3'
services:
  lx-sync-server:
    image: xcq0607/lxserver:latest
    container_name: lx-sync-server
    restart: unless-stopped
    ports:
      - "9527:9527"
    volumes:
      - ./data:/server/data
      - ./cache:/server/cache
      - ./music:/server/music
    environment:
      - NODE_ENV=production
      - ENABLE_WEBPLAYER_AUTH=true
      - WEBPLAYER_PASSWORD=секретный_пароль

Après le démarrage, le panneau d'administration sera disponible à http://your-ip:9527, et le lecteur lui-même à http://your-ip:9527/music.

Panneau de contrôle

Avertissements et limitations

Il convient de noter que le projet est en développement actif, et la documentation (surtout en anglais) est parfois un peu clairsemée. La plupart des paramètres sont intuitifs, mais si vous voulez une personnalisation approfondie des sources, vous devrez comprendre le système de scripts.

Par défaut, le projet a la télémétrie PostHog anonyme activée pour collecter les erreurs et les notifications de mise à jour. Si vous êtes paranoïaque, vous pouvez la désactiver avec le paramètre DISABLE_TELEMETRY=true, mais vous ne saurez pas quand une nouvelle version sort directement dans l'interface.

lxserver est une trouvaille formidable pour tous ceux qui veulent organiser leur vie musicale sans être liés à un appareil spécifique ou un abonnement payant. C'est léger, se lance rapidement dans Docker, et couvre la plupart des besoins d'un amateur de musique typique.

Qui devrait essayer :

  • Ceux qui utilisent déjà le LX Music desktop et veulent la synchronisation.
  • Les propriétaires de serveurs maison cherchant une alternative légère aux mastodontes que sont Plex ou Jellyfin pour la musique.
  • Les enthousiastes de la personnalisation et les fans des apps mobiles tierces.

Le projet semble vivant, les commits arrivent régulièrement, et le nombre d'étoiles GitHub ne cesse de croître. Il semble que ce soit le moment de dégager de l'espace sur le serveur pour la musique.

Projets similaires