>_ DevTrendszh

语言

首页

语言

板块

前端 后端 移动端 DevOps AI / ML 游戏开发 区块链 安全
JavaScript

单容器全能音乐中心 - lxserver 评测

595 星标

一个常见的场景:你想听音乐,但一个应用和另一个配合不好,你最喜欢的播放列表分散在不同的服务中,而且桌面客户端占用了你一半的内存。通常在这种情况下,我们要么将就着用,要么开始拼凑一堆临时方案。lxserver 项目提供了一条更优雅的路径——部署你自己的服务器,将不同的音乐源整合到一个方便的界面中。

这是什么

lxserver 是流行 LX Music 播放器的扩展服务器版本。从本质上讲,它是一个 Node.js 应用程序,结合了数据同步服务器和功能完整的网页播放器。虽然 LX Music 之前主要是桌面端应用,但现在你可以将它部署在家庭服务器或 VPS 上,从任何浏览器访问你的媒体库。

有趣的是,作者并没有简单地做“又一个播放器”——他们添加了 Subsonic 协议支持。这意味着你可以连接 Feishin 或“音流”等移动端应用到你的服务器,像本地存储一样在智能手机上听音乐。

实际使用中的亮点

首先吸引你注意的是界面。它干净、现代,没有不必要的杂乱。但魔鬼总是在细节中。以下是我发现最有用的几个功能。

多功能搜索和播放列表管理

许多自托管播放器的通病是只能播放你仔细下载到磁盘的内容。lxserver 可以跨不同平台聚合搜索。你只需输入一个乐队名称,就能同时看到来自多个来源的结果。你喜欢的曲目可以组合成播放列表,通过拖放重新排序,或在播放队列中进行批量编辑。

缓存自动化

任何在线播放器的弱点都是网络连接不佳。lxserver 开发者实现了自动缓存系统。播放器会自动保存歌词、链接和音频文件。设置中包含一个专门的缓存管理面板,你可以设置限制(默认 2 GB)并监控你喜欢的专辑占用了多少空间。

社交分享和主题

一个小但贴心的功能:播放器有创建歌曲引用卡片的功能。你可以选择竖版或方形格式,自定义颜色以匹配专辑封面,然后保存图片分享到社交媒体。他们还添加了大量富有诗意的命名主题,如“海鲨”或“绯红之月”。

Player interface

技术细节

该项目使用 Node.js 编写,后端使用 Express。WebSocket 在底层运行以实现实时操作。架构分为三个部分:

  1. 负责同步和 WebDAV 的核心后端。
  2. 管理控制台(管理面板)。
  3. 使用原生 JavaScript 编写的网页播放器。

对于关注安全性的人,作者加入了授权功能。可以通过环境变量对播放器的访问进行密码保护。如果你将服务器暴露给外部网络,这一点尤为重要。

通过环境变量配置

无需深入研究 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 star 数量也在稳步增长。看来是时候在服务器上为音乐腾出一些空间了。

相关项目