SkillAgentSearch skills...

Lxserver

LX Music 数据同步服务端,同时支持了部分lx-music-desktop的网页端实现。

Install / Use

/learn @XCQ0607/Lxserver
About this skill

Quality Score

0/100

Supported Platforms

Universal

README

LX Music Sync Server (Enhanced Edition)

lxserver

<div align="center"> <!-- <img src="public/icon.svg" width="120" height="120" alt="Icon"> --> <!-- <br> <h1>LX Sync Server</h1> --> <p> <img src="https://img.shields.io/badge/build-passing-brightgreen?style=flat-square" alt="Build Status"> <img src="https://img.shields.io/badge/version-v1.8.0-blue?style=flat-square" alt="Version"> <img src="https://img.shields.io/badge/node-%3E%3D16-green?style=flat-square" alt="Node Version"> <img src="https://img.shields.io/github/license/XCQ0607/lxserver?style=flat-square" alt="License"> <br> <br> <a href="https://github.com/XCQ0607/lxserver/stargazers"><img src="https://img.shields.io/github/stars/XCQ0607/lxserver?style=flat-square&color=ffe16b" alt="GitHub stars"></a> <a href="https://github.com/XCQ0607/lxserver/network/members"><img src="https://img.shields.io/github/forks/XCQ0607/lxserver?style=flat-square" alt="GitHub forks"></a> <a href="https://github.com/XCQ0607/lxserver/issues"><img src="https://img.shields.io/github/issues/XCQ0607/lxserver?style=flat-square&color=red" alt="GitHub issues"></a> <a href="https://github.com/XCQ0607/lxserver/commits/main"><img src="https://img.shields.io/github/last-commit/XCQ0607/lxserver?style=flat-square&color=blueviolet" alt="Last Commit"></a> <img src="https://img.shields.io/github/commit-activity/m/XCQ0607/lxserver?style=flat-square&color=ff69b4" alt="Commit Activity"> <a href="https://github.com/XCQ0607/lxserver/releases"><img src="https://img.shields.io/github/downloads/XCQ0607/lxserver/total?style=flat-square&color=blue" alt="Total Downloads"></a> </p> </div>

帮助文档 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 播放器支持开启访问密码。

开启方式

  1. 环境变量配置(推荐 Docker 用户使用):
    • ENABLE_WEBPLAYER_AUTH=true: 开启认证
    • WEBPLAYER_PASSWORD=yourpassword: 设置访问密码
  2. 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 版本

  1. 在 GitHub Releases 下载压缩包。
  2. 解压后运行 npm install --production
  3. 执行 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 匿名数据统计,主要用于:

  1. Bug 追踪: 收集版本号、环境类型。
  2. 通知推送: 弹出 版本更新提醒紧急维护公告
  • 绝对匿名: 绝不收集 IP、用户名或具体歌单内容。
  • 关闭方法: 环境变量设置 DISABLE_TELEMETRY=true注意:关闭后将无法收到新版本通知。

🤝 贡献与致谢

📈 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

View on GitHub
GitHub Stars115
CategoryDevelopment
Updated1h ago
Forks13

Languages

JavaScript

Security Score

95/100

Audited on Mar 26, 2026

No findings