>_ DevTrendsnl

Taal

Home

Talen

Secties

Frontend Backend Mobiel DevOps AI / ML GameDev Blockchain Beveiliging
JavaScript

Alles-in-één muziekkrachtcentrale in één Docker-container - lxserver Review

595 sterren

Een bekend scenario: je wilt naar muziek luisteren, maar de ene app werkt niet goed samen met de andere, je favoriete afspeellijsten zijn verspreid over verschillende diensten, en de desktopclient neemt de helft van je RAM in beslag. Meestal maken we het dan maar goed genoeg of beginnen we een rommeltje aan workarounds in elkaar te knutselen. Het lxserver-project biedt een elegantere oplossing — draai je eigen server die verschillende muziekbronnen samenvoegt in één handige interface.

Wat Is Dit Ding

lxserver is een uitgebreide serverversie van de populaire LX Music-speler. In essentie is het een Node.js-applicatie die een datasynchronisatieserver combineert met een volwaardige webspeler. Waar LX Music voorheen voornamelijk een desktopverhaal was, kun je het nu deployen op een thuisserver of VPS en je mediatheek vanuit elke browser openen.

Interessant genoeg heeft de auteur niet zomaar "nog een speler" gemaakt — ze hebben Subsonic-protocolondersteuning toegevoegd. Dit betekent dat je mobiele apps zoals Feishin of "音流" met je server kunt verbinden en naar muziek kunt luisteren op je smartphone alsof deze lokaal is opgeslagen.

Wat Maakt Het Geweldig In De Praktijk

Het eerste wat opvalt is de interface. Het is strak, modern en niet overladen met onnodige details. Maar de duivel zit, zoals altijd, in de details. Hier zijn een paar dingen die ik het meest nuttig vond.

Veelzijdige Zoekfunctie en Afspeellijstbeheer

Het probleem met veel zelfgehoste spelers is dat ze alleen kunnen afspelen wat je zorgvuldig naar schijf hebt gedownload. lxserver kan zoekopdrachten aggregeren over verschillende platforms. Je typt simpelweg een bandnaam in en ziet resultaten van meerdere bronnen tegelijk. Tracks die je leuk vindt kunnen worden gecombineerd in afspeellijsten, opnieuw gerangschikt door drag-and-drop, of bulksgewijs bewerkt in de afspeelwachtrij.

Cache-automatisering

Het zwakke punt van elke online speler is een slechte internetverbinding. De lxserver-ontwikkelaars hebben een automatisch caching-systeem geïmplementeerd. De speler slaat lyrics, links en audiobestanden zelfstandig op. De instellingen bevatten een speciaal cachebeheerpaneel waar je limieten kunt instellen (standaard is 2 GB) en kunt monitoren hoeveel ruimte je favoriete albums innemen.

Delen op Social Media en Theming

Een kleine maar fijne toevoeging: de speler heeft een functie voor het maken van quotecards van nummers. Je kunt kiezen voor verticaal of vierkant formaat, kleuren aanpassen om bij het albumcover te passen, en de afbeelding opslaan om te delen op social media. Ze hebben ook een heleboel thema's toegevoegd met poëtische namen zoals "Sea Shark" of "Crimson Moon."

Player interface

Technische Details

Het project is geschreven in Node.js en gebruikt Express voor de backend. WebSocket draait op de achtergrond voor real-time operaties. De architectuur is verdeeld in drie delen:

  1. Core backend verantwoordelijk voor synchronisatie en WebDAV.
  2. Beheerconsole (adminpanel).
  3. De webspeler zelf in vanilla JavaScript.

Voor wie zich zorgen maakt over veiligheid, heeft de auteur authenticatie toegevoegd. Toegang tot de speler kan worden beveiligd met een wachtwoord via omgevingsvariabelen. Dit is vooral relevant als je de server blootstelt aan de buitenwereld.

Configuratie via Omgeving

In plaats van in config.js te graven, is de gemakkelijkste manier om de server te configureren via variabelen. De meest nuttige:

  • ENABLE_WEBPLAYER_AUTH: schakelt wachtwoordbeveiligde login in.
  • WEBPLAYER_PASSWORD: het wachtwoord zelf.
  • CACHE_SIZE_LIMIT: zodat de server niet de hele schijf vult met tijdelijke bestanden.

Hoe Te Beginnen

De snelste manier is Docker. De auteur heeft kant-en-klare images voorbereid op Docker Hub en GitHub Packages. Hier is een voorbeeld van een eenvoudige docker-compose.yml die alles draait wat je nodig hebt:

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=секретный_пароль

Na het opstarten is het adminpanel beschikbaar op http://your-ip:9527, en de speler zelf op http://your-ip:9527/music.

Control panel

Nuances en Beperkingen

Het is vermeldenswaard dat het project actief in ontwikkeling is en de documentatie (vooral in het Engels) hier en daar wat summier is. De meeste instellingen zijn intuïtief, maar als je diepgaande aanpassing van bronnen wilt, moet je het scripting-systeem onder de knie krijgen.

Standaard heeft het project anonieme PostHog-telemetrie ingeschakeld voor het verzamelen van fouten en updatemeldingen. Als je paranoïde bent, kun je dit uitschakelen met de DISABLE_TELEMETRY=true parameter, maar dan weet je niet wanneer er een nieuwe versie uitkomt direct in de interface.

lxserver is een gewondige vondst voor iedereen die zijn muziekleven wil organiseren zonder gebonden te zijn aan een specifiek apparaat of betaald abonnement. Het is lichtgewicht, draait snel op in Docker en dekt de meeste behoeften van een typische muziekliefhebber.

Wie zou het moeten proberen:

  • Degenen die al de desktop LX Music gebruiken en synchronisatie willen.
  • Thuisserverbezitters die op zoek zijn naar een lichtgewicht alternatief voor zware oplossingen als Plex of Jellyfin voor muziek.
  • Aanpassingsliefhebbers en fans van third-party mobiele clients.

Het project lijkt levendig, commits komen regelmatig binnen en het aantal GitHub-sterren groeit gestaag. Het lijkt erop dat het tijd is om wat ruimte vrij te maken op de server voor muziek.

Gerelateerde projecten