>_ DevTrendsja

言語

ホーム

言語

セクション

フロントエンド バックエンド モバイル DevOps AI / ML ゲーム開発 ブロックチェーン セキュリティ
JavaScript

1つのDockerコンテナで音楽のすべてを - lxserverレビュー

595 スター

よくあるシナリオです:音楽を聴きたいのに、あるアプリが他のアプリとうまく連携してくれない、お気に入りのプレイリストが様々なサービスに散らばっている、デスクトップクライアントがRAMの半分を消費している。こんな場合、私たちは諦めるか、ごちゃごちゃした回避策を無理やり作り出すかのどちらかになります。lxserverプロジェクトはもっと洗練された道を提供します—異なる音楽ソースを1つの便利なインターフェースに統合する独自のサーバーを立ち上げるだけです。

このシステムは何か

lxserverは、人気の高いLX Musicプレイヤーのサーバー拡張版です。本質的には、データ同期サーバーとフル機能のWebプレイヤーを組み合わせたNode.jsアプリケーションです。LX Musicは以前はほとんどデスクトップ向けの製品でしたが、今はホームサーバーやVPSにデプロイして、どのブラウザからでもメディアライブラリにアクセスできるようになりました。

興味深いことに、作者は「ただの別のプレイヤー」を作ったわけではありません—Subsonicプロトコルサポートを追加しました。つまり、Feishinや「音流」などのモバイルアプリをサーバーに接続して、ローカルに保存されているかのようにスマートフォンで音楽を聴くことができます。

実際の良い点

まず目を引くのはインターフェースです。クリーンでモダンで、不必要な詳細に惑わされません。しかし、魔鬼は常に細部に宿ります。私が最も有用だと感じた点をいくつか紹介します。

多用途な検索とプレイリスト管理

多くの自己ホスト型プレイヤーの問題は、注意深くディスクにダウンロードしたものだけを再生できるということです。lxserverは異なるプラットフォーム間での検索集約が可能です。バンド名を入力するだけで、複数のソースからの結果を一度に見られます。好みのトラックはプレイリストにまとめたりドラッグ&ドロップで並べ替えたり、再生キューで一括編集したりできます。

キャッシュの自動化

オンラインプレイヤーの弱点は、通信品質が悪い接続です。lxserver開発者は自動キャッシュシステムを実装しました。プレイヤーが歌詞、リンク、音声ファイルを自動的に保存します。設定には専用のキャッシュ管理パネルがあり、制限(デフォルトは2GB)を設定したり、お気に入りのアルバムがどの程度の容量を占めているか監視したりできます。

ソーシャル共有とテーマ

小さくても嬉しい機能として、プレイヤーには曲からの引用カードを作成する機能があります。縦型または正方形のフォーマットを選べ、アルバムカバーをイメージした色をカスタマイズして、SNSで共有する画像を保存できます。「Sea Shark」や「Crimson Moon」などの詩的な名前のテーマ也有很多追加されています。

Player interface

技術的な詳細

このプロジェクトはNode.jsで書かれており、バックエンドにExpressを使用しています。リアルタイム操作にはWebSocketが内部で動作しています。アーキテクチャは3つの部分に分かれています:

  1. 同期とWebDAVを担当するコアバックエンド。
  2. 管理コンソール(管理パネル)。
  3. バニラJavaScriptによるWebプレイヤー自体。

セキュリティを気にする人のために、作者は認証を含めました。プレイヤーへのアクセスは環境変数経由でパスワード保護できます。これはサーバーを外部に公開する場合は特に重要です。

環境変数による設定

config.jsを掘り下げる代わりに、サーバーを設定する最も簡単な方法は環境変数です。最も有用なものは以下の通りです:

  • ENABLE_WEBPLAYER_AUTH:パスワード保護ログインを有効にします。
  • WEBPLAYER_PASSWORD:実際のパスワード。
  • CACHE_SIZE_LIMIT:サーバーが一時ファイルでディスク全体を埋め尽くさないようにする。

始め方

最も 빠른方法はDockerです。著者はDocker HubとGitHub Packagesに готовые образыを用意しています。必要なものをすべて立ち上げるシンプルなdocker-compose.ymlの例です:

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

起動後、管理パネルはhttp://your-ip:9527で、プレイヤー自体はhttp://your-ip:9527/musicで利用可能になります。

Control panel

注意点と制限事項

このプロジェクトは積極的に開発中で、ドキュメント(特に英語版)はところどころやや不十分であることに注意が必要です。ほとんどの設定は直感的ですが、ソースの深いカスタマイズが必要な場合は、スクリプトシステムを把握する必要があります。

デフォルトでは、エラー収集とアップデート通知のための匿名PostHogテレメトリーが有効になっています。心配性な場合は、DISABLE_TELEMETRY=trueパラメータで無効にできますが、そうするとインターフェース内で直接新しいバージョンが来たときにわからなくなります。

lxserverは、特定のデバイスや有料サブスクリプションに縛られず音楽生活を整理したい任何人にとって素晴らしい発見です。軽量で、Dockerで素早く立ち上がり、一般的な音楽愛好家のほとんどのニーズをカバーします。

試してみるべき人:

  • すでにデスクトップ版のLX Musicを使っていて、同期機能を求めている人。
  • 音楽用に重量級のPlexやJellyfinの軽量な代替手段を探しているホームサーバー所有者。
  • カスタマイズ愛好家やサードパーティのモバイルクライアントのファン。

このプロジェクトは生きていて、コミットは定期的に行われており、GitHubのスター数も着実に伸びています。サーバーに音楽用のスペースをクリアする時が来たようです。

関連プロジェクト