>_ DevTrendspl

Język

Strona główna

Języki

Sekcje

Frontend Backend Mobilne DevOps AI / ML GameDev Blockchain Bezpieczeństwo
JavaScript

Wszystko w jednym: potężny odtwarzacz muzyczny w jednym kontenerze Docker - recenzja lxserver

595 gwiazdki

Znana sytuacja: chcesz posłuchać muzyki, ale jedna aplikacja nie dogaduje się z drugą, Twoje ulubione playlisty są rozrzucone po różnych serwisach, a klient desktopowy zżera połowę RAM-u. Zazwyczaj w takich przypadkach albo jakoś sobie radzimy, albo zaczynamy sklejać chaotyczne obejścia. Projekt lxserver oferuje bardziej eleganckie rozwiązanie — uruchamiasz własny serwer, który skleja różne źródła muzyki w jeden wygodny interfejs.

Co to właściwie jest

lxserver to rozszerzona wersja serwerowa popularnego odtwarzacza LX Music. Zasadniczo jest to aplikacja Node.js łącząca serwer synchronizacji danych z pełnoprawnym odtwarzaczem webowym. Podczas gdy LX Music był wcześniej głównie rozwiązaniem desktopowym, teraz możesz wdrożyć go na serwerze domowym lub VPS i uzyskać dostęp do biblioteki mediów z dowolnej przeglądarki.

Ciekawe jest to, że autor nie zrobił „kolejnego odtwarzacza" — dodał obsługę protokołu Subsonic. Oznacza to, że możesz połączyć aplikacje mobilne, takie jak Feishin czy „音流", z swoim serwerem i słuchać muzyki na smartfonie, jakby była zapisana lokalnie.

Co czyni go świetnym w praktyce

Pierwszą rzeczą, która rzuca się w oczy, jest interfejs. Jest czysty, nowoczesny i nie zaśmiecony niepotrzebnymi detalami. Ale diabeł, jak zawsze, tkwi w szczegółach. Oto kilka rzeczy, które uznałem za najbardziej przydatne.

Wszechstronne wyszukiwanie i zarządzanie playlistami

Problem z wieloma samodzielnie hostowanymi odtwarzaczami polega na tym, że mogą odtwarzać tylko to, co starannie pobrałeś na dysk. lxserver potrafi agregować wyszukiwanie na różnych platformach. Po prostu wpisujesz nazwę zespołu i widzisz wyniki z wielu źródeł jednocześnie. Utwory, które Ci się podobają, można łączyć w playlisty, zmieniać ich kolejność metodą przeciągnij i upuść lub masowo edytować w kolejce odtwarzania.

Automatyzacja cache

Słabym punktem każdego odtwarzacza online jest słabe połączenie internetowe. Twórcy lxserver zaimplementowali automatyczny system cache. Odtwarzacz sam zapisuje teksty piosenek, linki i pliki audio. W ustawieniach znajduje się dedykowany panel zarządzania cache, w którym możesz ustawić limity (domyślnie 2 GB) i monitorować, ile miejsca zajmują Twoje ulubione albumy.

Udostępnianie społecznościowe i motywy

Mały, ale miły dodatek: odtwarzacz ma funkcję tworzenia kart cytatów z piosenek. Możesz wybrać format pionowy lub kwadratowy, dostosować kolory do okładki albumu i zapisać obraz do udostępnienia w mediach społecznościowych. Dodano również mnóstwo motywów z poetyckimi nazwami, takimi jak „Sea Shark" czy „Crimson Moon".

Interfejs odtwarzacza

Szczegóły techniczne

Projekt jest napisany w Node.js i używa Express jako backendu. WebSocket działa w tle do operacji w czasie rzeczywistym. Architektura jest podzielona na trzy części:

  1. Backend podstawowy odpowiedzialny za synchronizację i WebDAV.
  2. Konsola zarządzania (panel administracyjny).
  3. Sam odtwarzacz webowy w czystym JavaScript.

Dla osób dbających o bezpieczeństwo, autor dołączył autoryzację. Dostęp do odtwarzacza może być chroniony hasłem za pomocą zmiennych środowiskowych. Jest to szczególnie istotne, jeśli wystawiasz serwer na świat.

Konfiguracja przez środowisko

config.js, najłatwiejszym sposobem konfiguracji serwera są zmienne. Najbardziej przydatne z nich:

  • ENABLE_WEBPLAYER_AUTH: włącza logowanie chronione hasłem.
  • WEBPLAYER_PASSWORD: samo hasło.
  • CACHE_SIZE_LIMIT: aby serwer nie zapełnił całego dysku plikami tymczasowymi.

Jak zacząć

Najszybsza droga to Docker. Autor przygotował gotowe obrazy na Docker Hub i GitHub Packages. Oto przykład prostego docker-compose.yml, który uruchomi wszystko, czego potrzebujesz:

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

Po uruchomieniu panel administracyjny będzie dostępny pod adresem http://your-ip:9527, a sam odtwarzacz pod http://your-ip:9527/music.

Panel sterowania

Niuansy i ograniczenia

Warto zauważyć, że projekt jest aktywnie rozwijany, a dokumentacja (szczególnie w języku angielskim) jest w niektórych miejscach nieco skąpa. Większość ustawień jest intuicyjna, ale jeśli chcesz głębokiej personalizacji źródeł, będziesz musiał zgłębić system skryptów.

Domyślnie projekt ma włączoną anonimową telemetrię PostHog do zbierania błędów i powiadomień o aktualizacjach. Jeśli jesteś paranoikiem, możesz ją wyłączyć za pomocą parametru DISABLE_TELEMETRY=true, ale wtedy nie będziesz wiedział, kiedy pojawi się nowa wersja bezpośrednio w interfejsie.

lxserver to świetne znalezisko dla każdego, kto chce uporządkować swoje życie muzyczne bez przywiązywania się do konkretnego urządzenia lub płatnej subskrypcji. Jest lekki, szybko uruchamia się w Dockerze i zaspokaja większość potrzeb typowego miłośnika muzyki.

Kto powinien spróbować:

  • Osoby już korzystające z desktopowego LX Music i chcące synchronizacji.
  • Właściciele serwerów domowych szukający lekkiej alternatywy dla ciężkich Plex lub Jellyfin do muzyki.
  • Entuzjaści personalizacji i fani zewnętrznych aplikacji mobilnych.

Projekt wygląda na żywy, commity pojawiają się regularnie, a liczba gwiazdek na GitHub stale rośnie. Wygląda na to, że czas zrobić miejsce na serwerze na muzykę.

Powiązane projekty