写在前面

最近想给家里的群晖找点新活儿干,正好刷到 xcq0607/lxserver 这个项目。简单说,它就是在群晖上搭一个音乐服务端,然后你打开浏览器就能听歌——不用装任何 App,手机、电脑、平板都能用。歌单数据存在 NAS 本地,换设备也不怕丢。

这个项目是 LX Music 的增强版服务端。原版 lyswhut/lx-music-sync-server 只是个纯同步后端,没界面,配置也麻烦。而这个增强版在内置同步功能的基础上,加了一个完整的 Web 播放器。所以你可以把它当同步后端用,也可以直接当主力播放器用。

我的环境是群晖 DS918+DSM 7.3.2,下面一步步记录部署过程,尽量详细到小白也能跟着做。

LX Music
LX Music Server

准备工作

确认群晖环境

打开群晖的「控制面板」→「信息中心」,确认 DSM 版本。本文基于 DSM 7.3.2,其他 7.x 版本应该也差不多。

安装 Container Manager

打开「套件中心」,搜索「Container Manager」并安装。这是群晖官方的 Docker 管理工具,DSM 7.2 之后取代了旧版的 Docker 套件。

开启 SSH(推荐)

后面部分操作需要命令行,建议先开启 SSH。进「控制面板」→「终端机和 SNMP」→「终端机」,勾选「启用 SSH 功能」,端口默认 22。

创建存放目录

打开「File Station」,在 docker 共享文件夹下创建目录结构:

docker/
└── lx-music/
    ├── data/
    ├── logs/
    └── cache/

操作步骤

  1. 右键 docker 文件夹 →「新建文件夹」→ 输入 lx-music​

  2. 进入 lx-music,再新建三个子文件夹:data​logscache​

这三个目录分别用来存用户数据、运行日志和缓存文件。通过卷映射挂到容器里,这样即使容器删掉重建,数据也不会丢。


docker-compose.yml 内容

不管你用下面哪种部署方式,这个配置文件的内容是一样的。先准备好:

version: "3.8"

services:
  lx-music-server:
    image: xcq0607/lxserver:latest
    container_name: lx-music-server
    restart: unless-stopped
    ports:
      - "9527:9527"
    volumes:
      - ./data:/server/data
      - ./logs:/server/logs
      - ./cache:/server/cache
    environment:
      - NODE_ENV=production
      - FRONTEND_PASSWORD=你的管理后台密码
      - ENABLE_WEBPLAYER_AUTH=true
      - WEBPLAYER_PASSWORD=你的播放器密码

参数说明:

参数

说明

image

项目镜像,固定写 xcq0607/lxserver:latest

container_name

容器名称,自己起一个好记的

restart: unless-stopped

群晖重启后自动启动容器,除非手动停止

ports

端口映射,左边是群晖本地端口,右边是容器内部端口

volumes

卷映射,左边是群晖本地路径,右边是容器内路径

FRONTEND_PASSWORD

管理后台登录密码,必须改

WEBPLAYER_PASSWORD

Web 播放器登录密码,必须改

ENABLE_WEBPLAYER_AUTH

是否开启播放器密码验证,建议 true

⚠️ 密码一定要改! FRONTEND_PASSWORDWEBPLAYER_PASSWORD 建议设成不一样的。前者是进管理后台用的,后者是打开播放器页面用的。如果打算暴露到公网,密码设复杂一点。


部署方式一:Container Manager 的「项目」功能(推荐新手)

DSM 7.2 之后,Container Manager 新增了「项目」功能,支持图形界面管理 Docker Compose,对新手最友好。

Container Manager 的「项目」功能(推荐新手)

第一步:打开项目页面

  1. 打开「Container Manager」

  2. 左侧菜单选「项目」

  3. 点击右上角「新增」按钮

第二步:填写项目信息

弹出的对话框里填写:

  • 项目名称:lx-music(自己起一个,英文,不要有特殊字符)

  • 路径:点击「选择」按钮,浏览到 /docker/lx-music 文件夹(就是前面创建的那个)

  • 来源:选「创建 docker-compose.yml」

填完后点「下一步」。

第三步:粘贴 docker-compose.yml 内容

这时候会弹出一个编辑器窗口,让你填写 docker-compose.yml 的内容。把前面准备好的配置完整粘贴进去。注意把密码改成你自己的。

粘贴完成后,点击「验证」,Container Manager 会检查 YAML 格式是否正确。如果格式没问题,会显示验证通过。

第四步:启动项目

验证通过后,勾选「创建项目后立即启动」,然后点「完成」。

Container Manager 会自动拉取镜像、创建容器、启动服务。这个过程大概 1-2 分钟,取决于网络速度。

第五步:确认状态

  1. 左侧选「项目」,看 lx-music 项目状态是不是「运行中」

  2. 再点左侧「容器」,看 lx-music-server 容器状态是不是「正在运行」

  3. 浏览器打开 http:// 群晖 IP:9527,输入密码测试能否进入管理后台


部署方式二:SSH 命令行 + Docker Compose

适合习惯用命令行的用户,操作效率高,以后修改配置也方便。

SSH 命令行 + Docker Compose

第一步:上传配置文件

用 SSH 客户端(如 PuTTY、Termius)连接群晖,或者用群晖自带的「终端机」套件,执行:

cd /volume1/docker/lx-music

注意:/volume1/ 是群晖默认的存储空间路径,如果你的数据存在其他卷(比如 /volume2/),请对应修改。

然后用 vi 或 nano 创建 docker-compose.yml 文件,把上面准备好的内容粘贴进去。保存退出。

第二步:启动容器

在同目录下执行:

docker-compose up -d

第一次运行会自动拉取镜像,大概需要 1-2 分钟,取决于网络速度。看到类似下面的输出就是成功了:

[+] Running 2/2
 ✔ Network lx-music_default  Created
 ✔ Container lx-music-server  Started

第三步:查看日志确认

docker logs -f lx-music-server

正常应该能看到服务启动的日志,没有报错就行。按 Ctrl+C 退出日志查看。

第四步:访问验证

浏览器打开 http:// 群晖 IP:9527,应该能看到登录页面。输入 FRONTEND_PASSWORD 设置的密码,进去就是管理后台。

如果打不开,检查以下几点:

  • 容器是否在运行:进 Container Manager →「容器」,看 lx-music-server 状态是不是「正在运行」

  • 端口是否冲突:群晖上 9527 端口默认空闲,但如果装过其他服务可能占用

  • 防火墙是否放行:群晖「控制面板」→「安全性」→「防火墙」,确认 9527 端口允许访问


部署方式三:Container Manager 手动创建容器

如果你不想用 Compose,也可以手动一步步创建容器。这种方式配置分散,以后修改不太方便,但适合想深入了解每个参数的用户。

Container Manager 手动创建容器

第一步:拉取镜像

  1. 打开「Container Manager」

  2. 左侧选「注册表」

  3. 搜索框输入 xcq0607/lxserver

  4. 找到后点击「下载」,标签选 latest

  5. 等下载完成

第二步:创建容器

  1. 左侧选「映像」,找到刚下载的 xcq0607/lxserver:latest,点击「运行」

  2. 弹出配置向导,按下面步骤填:

常规设置

  • 容器名称:lx-music-server

  • 勾选「启用自动重新启动」

端口设置

  • 点击「新增」,本地端口填 9527,容器端口填 9527

存储空间设置
点击「新增文件夹」,添加三条映射:

本地路径

容器路径

/docker/lx-music/data

/server/data

/docker/lx-music/logs

/server/logs

/docker/lx-music/cache

/server/cache

填本地路径时,点「浏览」按钮,选择你前面创建的对应文件夹。

环境变量
点击「新增变量」,添加以下四条:

变量名

NODE_ENV

production

FRONTEND_PASSWORD

你的管理后台密码

ENABLE_WEBPLAYER_AUTH

true

WEBPLAYER_PASSWORD

你的播放器密码

  1. 点「完成」,容器会自动启动

  2. 去「容器」页面确认状态是「正在运行」

第三步:访问验证

浏览器打开 http:// 群晖 IP:9527,输入密码测试能否进入管理后台。



Web 播放器使用指南

Web 播放器有以下核心特性:

现代化界面

采用清爽的现代化 UI 设计,支持深色模式。播放页是左右分栏设计,左侧专辑封面(带毛玻璃沉浸效果),右侧歌词区。当前唱到的歌词会用高亮色标注。

播放界面
播放界面

多源搜索

支持聚合搜索各大音乐平台的资源。搜索框右上角可以切换音源平台(网易云、QQ 音乐、酷狗、酷我、咪咕)。默认显示「热门搜索」,跟各平台的热搜榜同步。

搜索界面
搜索界面

内容与播放列表

支持多平台歌单的浏览、搜索与一键播放。歌单详情面板包含封面、作者、简介等完整信息。播放队列支持拖拽排序、批量管理及快速定位当前播放。

歌单浏览
歌单列表

首次打开

浏览器访问 http:// 群晖 IP:9527,输入 WEBPLAYER_PASSWORD 设置的密码。

输入密码界面
输入密码界面

底部控制条的功能包括:

  • 播放 / 暂停、上一首 / 下一首

  • 播放模式:顺序播放、随机播放、单曲循环

  • 倍速播放

  • 音量调节

  • 下载按钮(可以下载当前播放的歌曲)

  • 歌词按钮(显示 / 隐藏歌词)

  • 评论按钮(查看歌曲评论)

  • 播放队列按钮(打开当前播放列表)

播放控制界面
播放控制界面

歌单浏览

点左侧「歌单」,能看到各平台推荐的歌单,带封面、标题、作者、播放量。点进去可以查看歌单详情,包含完整歌曲列表,一键播放全部。

歌单浏览
歌单浏览

播放队列管理

点击底部控制条右侧的列表图标,打开播放队列。支持拖拽排序、批量删除、快速定位当前播放歌曲。

播放队列
播放队列

深色模式

播放器支持深色模式,在设置里可以切换。


音源配置:不配置就搜不到歌

这是最关键的一步,很多人部署完发现搜不到歌,就是这里没弄。

这个项目本身不带音源,需要手动导入第三方音源脚本。根据项目文档,音源导入在管理后台的「系统配置」→「自定义源管理」里操作。

获取音源

音源是 .js 格式的脚本文件,通常由社区维护。获取渠道:

  • GitHub 上搜索 lx-music-source 相关仓库

  • 各种 NAS 交流群、技术论坛

导入音源

进管理后台 →「系统配置」→「自定义源管理」,有两种导入方式:

方式一:上传本地文件

  1. 点击「上传脚本文件」

  2. 选择你下载好的 .js 音源文件

  3. 上传完成

方式二:从 URL 导入

  1. 点击「从 URL 导入」

  2. 输入音源脚本的远程地址

  3. 点「开始导入」

导入成功后,列表里会显示音源信息:名称、作者、大小、版本号,以及支持的平台标签(比如「网易」「QQ」「酷狗」「酷我」「咪咕」)。

启用音源

重点:导入后默认是「已禁用」状态!

必须点击状态按钮,把它改成「已启用」。很多人部署完搜不到歌,就是因为漏了这一步。

启用后,回到播放器页面,搜索功能就正常了。

音源备份

这是我常用的音源,是其他网友分享的,大家需要就自取:

  • 百度网盘:https://pan.baidu.com/s/1vsRmTWIEuVDJrzWsPVFxUA?pwd=2mmd

  • UC 网盘:https://drive.uc.cn/s/23ceaa898d9a4?public=1

音源脚本由第三方维护,可能会失效。如果某天搜不到歌,大概率是音源挂了,需要换新的。


歌单同步:打通桌面端和移动端

这个项目本质上是 LX Music 的同步服务端。如果你已经在用 LX Music 桌面版或移动版,可以把这个服务端作为同步后端,实现多设备歌单统一。

桌面端设置

  1. 打开 LX Music 桌面版

  2. 进「设置」→「同步」

  3. 开启「启用同步」

  4. 同步服务地址填 http:// 群晖 IP:9527

  5. 用户名和密码填管理后台里创建的用户

  6. 点击「连接测试」,成功后会自动同步

移动端设置

  1. 打开 LX Music 移动版

  2. 进「设置」→「同步」

  3. 同样填群晖地址和用户名密码

  4. 连接成功后数据自动同步

网页端同步

网页播放器本身也支持登录。用同步用户登录后,收藏的歌单会存在群晖的 data 目录里。你在电脑浏览器上收藏的歌,手机浏览器打开同一个地址登录后也能看到。


常见问题排查

1. 容器启动失败,日志报端口冲突

现象:docker-compose up -d 后容器起不来,日志里有 bind: address already in use​

原因:群晖上 9527 端口被其他服务占用了。

解决:修改 docker-compose.yml​ 里的端口映射,把左边的本地端口改成别的,比如 19527

ports:
  - "19527:9527"

然后访问 http:// 群晖 IP:19527。

2. 卷映射报权限错误

现象:容器日志里出现 EACCES: permission denied

原因:群晖共享文件夹权限不足,容器无法读写映射的目录。

解决:

  1. 打开「File Station」

  2. 右键 docker/lx-music 文件夹 →「属性」→「权限」

  3. 点击「新增」,用户选 Everyone,勾选「读取」和「写入」

  4. 勾选「应用到这个文件夹、子文件夹和文件」

  5. 保存后重启容器

3. 搜不到歌

现象:播放器里搜索没有任何结果

排查步骤:

  1. 确认音源已导入(后台 → 系统配置 → 自定义源管理)

  2. 确认音源状态是「已启用」,不是「已禁用」

  3. 确认当前选择的音源平台支持你要搜的歌

  4. 如果以上都没问题,可能是音源脚本失效了,需要换源

4. 外网访问不了

现象:内网能打开,外网用域名或公网 IP 访问不了

排查步骤:

  1. 确认路由器做了端口转发,把外部端口映射到群晖的 9527

  2. 确认群晖防火墙放行了这个端口(控制面板 → 安全性 → 防火墙)

  3. 如果用了反向代理,检查代理规则是否正确

5. 密码忘了怎么办

如果忘了管理后台密码,直接修改 docker-compose.yml 里的 FRONTEND_PASSWORD,然后重启容器:

cd /volume1/docker/lx-music
docker-compose down
docker-compose up -d

外网访问与 HTTPS(进阶)

如果只想在内网用,上面的配置已经够用了。但如果想在外面也能听歌,建议做以下配置。

方案一:端口转发(简单但不安全)

在路由器里做端口转发,把外网的某个端口(比如 9527)映射到群晖内网的 9527。然后外网用 http:// 公网 IP:9527 访问。

缺点:HTTP 明文传输,密码容易被截获。只适合临时用用。

方案二:群晖反向代理 + HTTPS(推荐)

群晖自带反向代理和 Let's Encrypt 证书,配置如下:

  1. 进「控制面板」→「登录门户」→「高级」→「反向代理服务器」

  2. 点击「新增」

  3. 来源设置:

    • 协议:HTTPS

    • 主机名:music.yourdomain.com(你自己的域名)

    • 端口:443(443 被封换其他的)

  4. 目的地设置:

    • 协议:HTTP

    • 主机名:localhost​

    • 端口:9527​

  5. 保存

然后去「控制面板」→「安全性」→「证书」,申请 Let's Encrypt 证书,绑定到 music.yourdomain.com

配置完成后,外网用 https://music.yourdomain.com:端口号 访问,安全且方便。


日常维护

更新镜像

作者可能会发布新版本,更新方法:

cd /volume1/docker/lx-music
docker-compose pull
docker-compose up -d

数据存在卷映射的目录里,更新不会丢失。

备份数据

定期把 /docker/lx-music/data/ 目录备份一下,里面存着用户数据和歌单。可以用群晖的「Hyper Backup」套件自动备份到另一块硬盘或者云端。

查看资源占用

进 Container Manager →「容器」→ 选中 lx-music-server,可以看到 CPU 和内存占用。根据项目文档,这个服务资源占用很低。


写在最后

这个项目对 NAS 用户来说挺实用的,部署简单,资源占用低,关键是打通了多设备的听歌体验。不用在手机上装一堆音乐 App,打开浏览器就能搞定。

适合人群:

  • 有群晖或其他 NAS,愿意折腾的

  • 不想装太多 App,喜欢网页端轻量体验的

  • 希望歌单数据自己掌控,不依赖第三方平台的

不适合:

  • 追求极致无损音质的发烧友(网页播放器的音质取决于音源质量)

  • 完全不想动手配置的懒人

如果部署过程中遇到问题,可以先对照上面的「常见问题排查」部分自查。还是搞不定的话,建议去项目 GitHub 的 Issues 区看看。


相关链接

本项目地址

https://github.com/xcq0607/lxserver

桌面客户端

https://github.com/lyswhut/lx-music-desktop

移动客户端

https://github.com/lyswhut/lx-music-mobile