Lxserver
LX Music 数据同步服务端,同时支持了部分lx-music-desktop的网页端实现。
Install / Use
/learn @XCQ0607/LxserverREADME
LX Music Sync Server (Enhanced Edition)
帮助文档 Documentation | 同步服务器 SyncServer | 更新日志 Changelog | English
本项目内置了一个功能强大的 Web 播放器,让你可以随时随地在浏览器中享受音乐。同时,它也是一个增强版的 LX Music 数据同步服务端。
✨ Web 播放器核心特性
1. 现代化界面
采用清爽的现代化 UI 设计,支持深色模式,提供极致的视觉体验。
<p align="center"> <img src="md/player.png" width="800" alt="Web Player Interface"> </p>2. 多源搜索
支持聚合搜索各大音乐平台的资源,想听什么搜什么。
<p align="center"> <img src="md/search.png" width="800" alt="Search Interface"> </p>3. 内容与播放列表
支持多平台歌单的浏览、搜索与一键播放,提供直观的歌单详情面板,包含封面、作者、简介等完整信息。播放队列支持拖拽排序、批量管理及快速定位当前播放。
<p align="center"> <img src="md/musiclist.png" width="800" alt="歌单浏览"> </p> <p align="center"> <img src="md/musiclist-detail.png" width="400" alt="歌单详情"> <img src="md/playlist.png" width="400" alt="播放队列管理"> </p>4. 强大的播放控制
支持播放模式切换、音质选择、歌词显示、睡眠定时、播放倍数等功能。
<p align="center"> <img src="md/controller.png" width="800" alt="Controller"> </p>5. 缓存管理
内置全自动化缓存系统,可自动保存歌词、链接及歌曲文件,通过专门的缓存控制面板实现颗粒化管理,极大提升弱网环境下的播放流畅度。
<p align="center"> <img src="md/cache.png" width="800" alt="缓存自动化管理"> </p>6. 歌词卡片分享
新增歌词卡片分享功能,支持自定义卡片比例(竖版/横版/方版)、色彩风格(深色/浅色/专辑色)及歌词行数,一键生成精美海报,支持旋转缩放。
<p align="center"> <img src="md/share.png" width="800" alt="歌词卡片社交分享"> </p>7. 主题定制与系统功能
支持多套现代化主题(如森之韵、深海鲨、暖阳意、绯红月等),并可根据系统自动切换暗亮模式。系统设置支持自动更新网络歌单、账号设置自动备份及多维度代理配置,确保播放顺滑稳定。
<p align="center"> <img src="md/theme.png" width="400" alt="现代化主题切换"> <img src="md/settings.png" width="400" alt="全方位系统配置"> </p>8. 自定义源管理
支持导入自定义源脚本,扩展更多音乐来源。
<p align="center"> <img src="md/source.png" width="800" alt="Source Management"> </p>🔒 访问控制与安全
为了保护你的隐私,Web 播放器支持开启访问密码。
开启方式
- 环境变量配置(推荐 Docker 用户使用):
ENABLE_WEBPLAYER_AUTH=true: 开启认证WEBPLAYER_PASSWORD=yourpassword: 设置访问密码
- Web 界面配置: 登录管理后台(默认端口 9527),进入 "系统配置",勾选 "启用 Web 播放器访问密码" 并设置密码。
📱 移动端适配
Web 播放器针对移动端进行了深度优化,手机浏览器访问也能获得原生 App 般的体验。
🚀 快速启动
本项目基于 Node.js 开发,支持多种部署方式。
方式一:使用 Docker (推荐)
docker run -d \
-p 9527:9527 \
-v $(pwd)/data:/server/data \
-v $(pwd)/logs:/server/logs \
--name lx-sync-server \
--restart unless-stopped \
ghcr.io/xcq0607/lxserver:latest
方式二:直接运行 (Git Clone)
# 1. 克隆项目
git clone https://github.com/XCQ0607/lxserver.git && cd lxserver
# 2. 安装依赖并编译
npm ci && npm run build
# 3. 启动服务
npm start
方式三:使用 Release 版本
- 在 GitHub Releases 下载压缩包。
- 解压后运行
npm install --production。 - 执行
npm start启动。
3. 访问说明
- Web 播放器:
http://your-ip:9527/music - 同步管理后台:
http://your-ip:9527(默认密码:123456)
🏗️ 项目架构
本项目基于 Node.js 采用前后端分离架构:
- Backend (Express + WebSocket): 核心同步逻辑与 WebDAV 备份。
- Console (Vanilla JS): 位于根目录,负责用户与数据管理。
- WebPlayer (Vanilla JS): 位于
/music目录,负责音乐播放业务。
🛠️ 配置说明
可以直接编辑 config.js。环境变量优先级最高:
| 环境变量 | 对应配置项 | 说明 | 默认值 |
| ---------------------------------- | -------------------------------- | --------------------------------------------------------------- | ------------------ |
| 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 |
| CONFIG_PATH | - | 指定外部配置文件的绝对路径 | - |
| DATA_PATH | - | 指定数据存储目录的绝对路径 | ./data |
| LOG_PATH | - | 指定日志输出目录的绝对路径 | ./logs |
| PROXY_HEADER | proxy.header | 代理转发 IP 头 (如 x-real-ip) | - |
| USER_ENABLE_ROOT | user.enableRoot | 启用根路径 (开启后连接URL即为 ip:port,不允许不同用户密码相同) | false |
| USER_ENABLE_PATH | user.enablePath | 启用用户路径 (开启后连接URL需为 ip:port/用户名,允许密码相同) | true |
| 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 |
| WEBPLAYER_PASSWORD | player.password | Web 播放器访问密码 | 123456 |
| DISABLE_TELEMETRY | disableTelemetry | 是否禁用匿名数据统计,系统更新提示以及系统公告提示 | false |
| ENABLE_PUBLIC_USER_RESTRICTION | user.enablePublicRestriction | 是否启用公开用户权限限制 (限制上传、删除公开源、缓存到服务器等) | true |
| LIST_ADD_MUSIC_LOCATION_TYPE | list.addMusicLocationType | 添加歌曲到列表时的位置 (top / bottom) | top |
| LX_USER_<用户名> | users 数组 | 快速添加用户,值为该用户的密码 (如 LX_USER_test=123) | - |
提示:目前服务支持
启用根路径(URL配置为ip:port) 和启用用户路径(URL配置为ip:port/username) 两种数据同步连接方式。如果没有启用用户路径,则必须保证每一个同步用户的鉴权密码不重复。
🛡️ 数据收集与隐私说明
本项目集成了 PostHog 匿名数据统计,主要用于:
- Bug 追踪: 收集版本号、环境类型。
- 通知推送: 弹出 版本更新提醒 与 紧急维护公告。
- 绝对匿名: 绝不收集 IP、用户名或具体歌单内容。
- 关闭方法: 环境变量设置
DISABLE_TELEMETRY=true。注意:关闭后将无法收到新版本通知。
🤝 贡献与致谢
- 修改自 lyswhut/lx-music-sync-server。
- Web 播放器逻辑参考 lx-music-desktop。
- 接口实现基于
musicsdk。
📈 Star History
<a href="https://star-history.com/#XCQ0607/lxserver&Date"> <picture> <source media="(prefers-color-scheme: dark)" srcset="https://api.star-history.com/svg?repos=XCQ0607/lxserver&type=Date&theme=dark" /> <source media="(prefers-color-scheme: light)" srcset="https://api.star-history.com/svg?repos=XCQ0607/lxserver&type=Date" /> <img alt="Star History Chart" src="https://api.star-history.com/svg?repos=XCQ0607/lxserver&type=Date" /> </picture> </a>📄 开源协议
Apache License 2.0 copyright (c) 2026 xcq0607
Related Skills
node-connect
336.5kDiagnose OpenClaw node connection and pairing failures for Android, iOS, and macOS companion apps
frontend-design
82.9kCreate distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, or applications. Generates creative, polished code that avoids generic AI aesthetics.
openai-whisper-api
336.5kTranscribe audio via OpenAI Audio Transcriptions API (Whisper).
commit-push-pr
82.9kCommit, push, and open a PR
