← 返回 TimeAmber
logo NodeSeekbeta

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

🤔 所以到底这是个啥?

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

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

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

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

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

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

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

2.快照回滚

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

3.WebDAV 云备份

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

4.内置 Web 播放器

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

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

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

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

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

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

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

image
image
image
image
image
image
image
image
jPGoVefokx60gCxDKD33CFx9qXiAkn35

这里用的和官方一样的逻辑,你上传自己的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 大佬开发了这么好用的工具!


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

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

12
12
论坛快捷回帖:
请选择
内容
预览
对照
AC娘
洋葱头
小黄鸡
Fluent
App