自建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/
所以到底这是个啥?
简单来说,这是一个二合一的快乐方案:
-
数据同步服务端:完美支持 LX Music 客户端的同步功能。
-
Web 管理面板:可视化管理用户、数据、日志,还能快照回滚。
-
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 - pdone/lx-music-source: 洛雪音乐源
洛雪音乐源
--【陆】--: xcq:
-v $(pwd)/data:/app/data \
这里不太对哈,容器里是/server/data
--【柒】--:
棒!!!!
--【捌】--:
接口返回的什么歌词显示的就是什么歌词,目前咪咕音乐歌词有问题我还没完全修复,咪咕音乐用musicsdk返回的音乐歌词只有一个时间标签,因此咪咕音乐每行歌词间隔3s固定了
--【玖】--:
感谢大佬!
--【拾】--:
感谢大佬
--【拾壹】--:
可以用域名吧?
可不可以搜到专辑?
--【拾贰】--:
厉害啊佬
--【拾叁】--:
感谢佬分享!
--【拾肆】--:
更新v1.1.0了,还是有bug的,需要慢慢发现修复
--【拾伍】--:
看着很不错
--【拾陆】--:
感谢,已修复
--【拾柒】--:
用上了,还不错
--【拾捌】--:
好喜欢佬友这个,尤其是9527端口
--【拾玖】--:
这个好,感谢佬分享!
自建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/
所以到底这是个啥?
简单来说,这是一个二合一的快乐方案:
-
数据同步服务端:完美支持 LX Music 客户端的同步功能。
-
Web 管理面板:可视化管理用户、数据、日志,还能快照回滚。
-
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 - pdone/lx-music-source: 洛雪音乐源
洛雪音乐源
--【陆】--: xcq:
-v $(pwd)/data:/app/data \
这里不太对哈,容器里是/server/data
--【柒】--:
棒!!!!
--【捌】--:
接口返回的什么歌词显示的就是什么歌词,目前咪咕音乐歌词有问题我还没完全修复,咪咕音乐用musicsdk返回的音乐歌词只有一个时间标签,因此咪咕音乐每行歌词间隔3s固定了
--【玖】--:
感谢大佬!
--【拾】--:
感谢大佬
--【拾壹】--:
可以用域名吧?
可不可以搜到专辑?
--【拾贰】--:
厉害啊佬
--【拾叁】--:
感谢佬分享!
--【拾肆】--:
更新v1.1.0了,还是有bug的,需要慢慢发现修复
--【拾伍】--:
看着很不错
--【拾陆】--:
感谢,已修复
--【拾柒】--:
用上了,还不错
--【拾捌】--:
好喜欢佬友这个,尤其是9527端口
--【拾玖】--:
这个好,感谢佬分享!

