自建LX Music同步服务增强版:带Web管理后台+网页版播放器,一键部署!

2026-04-11 13:361阅读0评论SEO教程
  • 内容介绍
  • 文章标签
  • 相关推荐
问题描述:

自建LX Music同步服务增强版:带Web管理后台+网页版播放器,一键部署!

各位佬友,大家平常听歌用洛雪音乐(LX Music)吗?我感觉大部分应该用过,但是肯定大家也想多端同步一下歌单数据,但是去部署一下那个同步服务器可能是部署在公共 PaaS 平台上的时候,就不好管理里面的数据,可能要连接数据库之类的很麻烦不好数据持久化。但是大家有同步需求的话肯定有自己的webdav服务器,所以我就想基于lx-music-sync-server先做一个带有前端面板的服务器,可以在线管理数据之类的,加上webdav同步。原本只是一个简单的功能也没受到什么关注之类的,正好最近又没啥事情,就在此基础上加了一个在线播放的功能。因此在家开发了整整2天。大家可能觉得很快?因为大量使用了AI生成技术,但是对我来说也不短了,是整整2天,这些天啥事没做有时间就开发这个,睡觉都是在4点多,可能是太想把这个完成了吧。最后做出来的效果挺不错的,想给各位佬友分享一下这个项目,有条件的可以自己部署一下。

基于 lyswhut/lx-music-sync-server 搓出来的增强版同步服务端

项目地址:https://github.com/XCQ0607/lxserver

文档网址:https://xcq0607.github.io/lxserver/

所以到底这是个啥?

简单来说,这是一个二合一的快乐方案:

  1. 数据同步服务端:完美支持 LX Music 客户端的同步功能。

  2. Web 管理面板:可视化管理用户、数据、日志,还能快照回滚。

  3. Web 播放器:内置了一个网页版的 LX Music(参考了桌面版实现),随时随地在浏览器听歌。

全部功能打包在一个 Docker 镜像里,一键部署,开箱即用!

1.可视化仪表盘 & 用户管理

告别黑框框,服务状态一目了然。支持直接在网页上添加/删除用户,管理多人使用非常方便。
仪表盘1920×1098 94.9 KB

用户管理1920×1098 84.6 KB

2.快照回滚

手滑把歌单删了?客户端同步出问题了?
后台自动生成快照,支持一键回滚到历史状态,不仅能回滚,还能把快照下载下来导入回客户端。
快照管理1920×1098 215 KB

3.WebDAV 云备份

支持把你的珍贵歌单数据自动备份到 WebDAV 网盘(坚果云、Alist、Nextcloud 等)
WEBDAV同步2560×1464 191 KB

4.内置 Web 播放器

这个是我最喜欢的功能!看了官方桌面版的API接口,就拿过来用了,用浏览器就能听歌。

  • 多源搜索:想听啥搜啥。

  • 歌单同步:登录后自动同步你收藏的歌单到LX客户端

  • PWA 支持:手机安上就是个独立 App。

  • 歌曲可视化:可视化歌曲

  • 评论区展示:可以看歌曲评论

  • 更多功能查看README,具体更新到功能可能不会同步到README,可以看changelog看什么版本更新了什么功能

Web播放器1920×1055 182 KB
喜欢2560×1406 214 KB
搜索2560×1406 280 KB
设置11046×843 81.7 KB
设置2821×988 119 KB
设置3812×1043 91.5 KB
设置4808×795 89.8 KB
评论863×1126 159 KB
jPGoVefokx60gCxDKD33CFx9qXiAkn351920×1069 368 KB

这里用的和官方一样的逻辑,你上传自己的js自定义源文件在云端运行。这里使用了vm2库来创建沙箱环境,这是一个专门用于在 Node.js 中运行不受信任代码的库。 仅暴露了console Buffer JSON Math等基础 JavaScript 对象,有 沙箱白名单机制执行超时限制, 连网络请求也是受控制的状态,不用担心影响到服务器。

如何食用?

最推荐 Docker 一键部署,支持 amd64 和 arm64:

docker run -d \ -p 9527:9527 \ -v $(pwd)/data:/server/data \ --name lx-sync-server \ --restart unless-stopped \ ghcr.io/xcq0607/lxserver:latest

部署好后访问 http://IP:9527 即可。

Docker 部署环境变量:

环境变量 对应配置项 说明 默认值
PORT port 服务端口 9527
BIND_IP bindIP 绑定 IP 0.0.0.0
FRONTEND_PASSWORD frontend.password Web 管理界面访问密码 123456
SERVER_NAME serverName 同步服务名称 My Sync Server
MAX_SNAPSHOT_NUM maxSnapshotNum 保留的最大快照数量 10
PROXY_HEADER proxy.header 代理转发 IP 头 (如 x-real-ip) -
WEBDAV_URL webdav.url WebDAV 地址 -
WEBDAV_USERNAME webdav.username WebDAV 用户名 -
WEBDAV_PASSWORD webdav.password WebDAV 密码 -
SYNC_INTERVAL sync.interval WebDAV 自动备份间隔(分钟) 60
ENABLE_WEBPLAYER_AUTH player.enableAuth 是否启用 Web 播放器访问密码 false
ENABLE_WEBPLAYER_AUTH player.enableAuth 是否启用 Web 播放器访问密码 false
WEBPLAYER_PASSWORD player.password Web 播放器访问密码 123456
DISABLE_TELEMETRY disableTelemetry 是否禁用匿名数据统计,系统更新提示以及系统公告提示 false

致谢

本项目在巨人的肩膀上完成:

  • 核心同步逻辑基于 lyswhut/lx-music-sync-server

  • Web 播放器实现参考及接口支持来自 lyswhut/lx-music-desktop

感谢 lyswhut 大佬开发了这么好用的工具!


各位佬友如果觉得这个项目不错,求去 GitHub 点个 Star ,或者给帖子点点赞 ,感谢大家支持!

如果有 Bug 或者建议,欢迎在下面或者 Issue 提出来~

网友解答:
--【壹】--:

厉害啊佬


--【贰】--:

这歌中文翻的太差了


--【叁】--:

这个好,正好我电脑手机都是用的洛雪


--【肆】--:

太棒了吧,大佬


--【伍】--:

一些音源,需要的佬友可以看看:

github.com

GitHub - pdone/lx-music-source: 洛雪音乐源

洛雪音乐源


--【陆】--: xcq:

-v $(pwd)/data:/app/data \

这里不太对哈,容器里是/server/data


--【柒】--:

棒!!!!


--【捌】--:

接口返回的什么歌词显示的就是什么歌词,目前咪咕音乐歌词有问题我还没完全修复,咪咕音乐用musicsdk返回的音乐歌词只有一个时间标签,因此咪咕音乐每行歌词间隔3s固定了


--【玖】--:

感谢大佬!


--【拾】--:

感谢大佬


--【拾壹】--:

可以用域名吧?
可不可以搜到专辑?


--【拾贰】--:

厉害啊佬


--【拾叁】--:

感谢佬分享!


--【拾肆】--:

更新v1.1.0了,还是有bug的,需要慢慢发现修复


--【拾伍】--:

看着很不错


--【拾陆】--:

感谢,已修复


--【拾柒】--:

用上了,还不错


--【拾捌】--:

好喜欢佬友这个,尤其是9527端口


--【拾玖】--:

这个好,感谢佬分享!