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

自建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/

:thinking: 所以到底这是个啥?

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

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

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

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

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

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

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

2.快照回滚

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

3.WebDAV 云备份

支持把你的珍贵歌单数据自动备份到 WebDAV 网盘(坚果云、Alist、Nextcloud 等)

4.内置 Web 播放器

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

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

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

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

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

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

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









这里用的和官方一样的逻辑,你上传自己的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

:handshake: 致谢

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

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


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

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

137 Likes

看着很不错

3 Likes

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

2 Likes

这歌中文翻的太差了 :tieba_087:

2 Likes

这个好,感谢佬分享!

感谢大佬!

1 Like

棒!!!!

1 Like

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

2 Likes

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

8 Likes

用上了,还不错

1 Like

厉害啊佬

1 Like

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

2 Likes

厉害啊佬

1 Like

感谢大佬

2 Likes

感谢佬分享!

1 Like

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

1 Like

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

1 Like

太棒了吧,大佬

2 Likes

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

2 Likes

感谢,已修复