{"repo":"lyswhut/lx-music-sync-server","free":true,"listed":false,"github":"https://github.com/lyswhut/lx-music-sync-server","clone":"git clone https://github.com/lyswhut/lx-music-sync-server.git","description":"运行在 Node.js 上的 LX Music 数据同步服务","language":"TypeScript","stars":829,"topics":["nodejs"],"license":"Apache-2.0","category":"media-processing","readme_excerpt":"LX Music Sync Server LX Music 数据同步服务端。本项目目前用于收藏列表数据同步，类似桌面版的数据同步服务，只不过它现在是一个独立版的服务，可以将其部署到服务器上使用。 本项目需要有一些服务器操作经验的人使用，若遇到问题欢迎反馈。 由于服务本身不提供 HTTPS 协议支持，若将服务部署在公网，请务必使用 Nginx 之类的服务做反向代理（SSL 证书需可信且证书链完整），实现客户端到服务器之间的 HTTPS 连接。 环境要求 - Node.js 16+ 使用方法 安装 Node.js Cent OS 可以运行以下命令安装： 基于 Debian、Ubuntu 发行版的系统使用以下命令安装： 安装完毕后输入以下命令，正常情况下会显示 Node.js 的版本号。 安装 PM2（非必须） PM2 是一个 Node.js 服务管理工具，可以在服务崩溃时自动重启，更多使用方式请自行百度。 注：若安装失败，则可能需要以管理员权限安装。 若没有安装 PM2，则后面 pm2 开头的命令都可以跳过。 安装依赖 若安装依赖过程中出现因 utf-8-validate 包编译失败的错误，请尝试搜索相关错误解决。若实在无法解决，则可以编辑 package.json 文件删除 dependencies 下的 utf-8-validate 后，重新运行 npm ci --omit=dev 或 npm ci 即可。 如果你是在 GitHub Releases 下载的压缩包，则解压后在项目目录执行以下命令安装依赖： 如果你是直接克隆的源码，则在本目录中运行以下命令： 配置 config.js 按照文件中的说明配置好本目录下的 config.js 文件 配置 ecosystem.config.js 中的 env production 可以在这里配置 PM2 的启动配置，具体根据你的需求配置 启动服务器 若你没有安装 PM2，则可以用 npm start 启动。 查看启动日志 若无报错相关的日志，则说明服务启动成功。 设置服务开机启动 注意：该命令对 Windows 系统无效，Windows 需用批处理的方式设置。 到这里服务已搭建完成，但是为了你的数据安全，我们 强烈建议 使用 Nginx 之类的服务为同步服务添加 TLS 保护！ 配置 Nginx 说明 代理需要配置两条规则： 1. 代理链接 URL 根路径下所有子路径的 WebSocket 请求到 LX Sync 服务； 2. 代理链接 URL 根路径下所有子路径的 HTTP 请求到 LX Sync 服务。 配置 编辑 Nginx 配置文件，在 server 下添加代理规则，如果你当前 server 块下只打算配置 LX Sync 服务，那么可以使用以下配置： 如果你当前 server 块下存在其他服务，那么可以配置路径前缀转发： 注：上面的 xxx 是你想要代理的路径前缀（可以多级）。 注意 $remote addr 的转发名字与 config.js 中的 proxy.header 对应，并同时启用 proxy.enabled （或与环境变量的 PROXY HEADER 对应），这用于校验相同 IP 多次使用错误连接码连接时的封禁。 升级新版本 若更新日志无特别说明，注意保留 你修改过 的 config.js 、 ecosystem.config.js 或 Dockerfile 之类的配置文件，以及 data 、 logs 目录即可，其他的都可以删除后再将新版本的文件复制进去，以下是更新日志无特别说明的","default_branch":null,"files":null,"tree":[],"storefront":"/r/lyswhut","claimed":false,"request_supported":{"post":"https://gitbuyer.com/r/lyswhut/lx-music-sync-server/request-supported","requests":0},"note":"indexed from public GitHub; nothing is for sale on this page. Clone it from GitHub. Paid listings live at /search."}