# LX
**Repository Path**: aimu2000/lx
## Basic Information
- **Project Name**: LX
- **Description**: lx-music同步服务docker一键部署
- **Primary Language**: Docker
- **License**: Apache-2.0
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 2
- **Created**: 2024-10-02
- **Last Updated**: 2024-10-02
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# LX-env
#### 项目简介
lx-music同步服务docker一键部署,可选择下载或构建镜像
#### 功能介绍
1. 添加了Git,每次启动前会检查项目更新,并重新构建server,在原项目架构没大变化的情况下保持功能最新
2. 关联nginx,方便配置https/隐藏原http
3. 制作了容器入口脚本,并通过每次启动的时候调用映射的run.sh方便自定义容器运行方式
#### 安装教程
1. 安装git和docker,请自行搜索你的linux版本的安装教程,不再赘述
如果是Windows请安装git和docker desktop,推荐安装Windows Terminal,安装git时请勾上 ```(NEW!)Add a Git Bash Profile to Windows Teminal``` 并在 ```设置``` 中将默认配置文件改为 ```Git Bash``` ,这样在要安装的路径下右击, ```在终端中打开``` 即可正确执行.sh脚本
2. 操作docker默认需要root权限,请提前 ```sudo -i``` 提权到root,Windows使用有权操作docker desktop的用户即可
3. 使用git拉取此项目,并进入该目录
```shell
git clone https://gitee.com/yi0086/lx ./LX && cd LX
```
4. 修改./config/config.js内的用户密码,密码不可重复
5. 执行安装脚本,进入选择界面
```shell
bash ./run.sh
```
如果不希望选择,则执行另外一个安装脚本
```bash
bash ./install.sh
```
6. 选择你要进行的操作,输入序号并回车,如果执行了第二个脚本则不需要执行此步
如果你的80或443端口已经被占用,请修改你使用的docker-compose.yaml,如使用镜像创建容器则修改image.yaml,将第18行左边的 ```80``` (如是https为第19行左边的443) 修改为未被占用的端口(1-65535),修改并保存后重新选择选项创建容器
- ```1``` 使用./Docker下的 **Dockerfile** 当场构建docker镜像,并使用 **docker compose** 创建并启动容器,代码完全透明
- ```2``` 使用上传到 **docker hub** 的镜像,并使用docker compose创建并启动容器,简单快速
- ```3``` 重启 ```lx-sync``` 容器,用户配置有变更需要应用时使用
- ```4``` 查看 ```lx-sync``` 容器日志,查看同步服务运行状态
- ```5``` 查看 ```lx-nginx``` 容器日志,查看反向代理运行状态
7. 容器脚本会当场 拉取项目 安装依赖 编译 启动服务 请等待初始化完成
8. (非必须)浏览器打开服务地址后接 ```/hello``` ,出现下面情况即为安装成功
```log
Hello~::^-^::~v3~
```
#### 使用说明
1. 安装成功后打开LX-music客户端,打开设置,找到 **数据同步** 选项
2. 已经启用了同步的先把 **启用同步** 取消掉
3. PC端把 **同步模式** 改为 **客户端模式** ,安卓端只能使用客户端模式故没有此选项
4. 将同步服务地址填入下方,格式为 **```http://服务端物理机ip或域名:映射出来的http端口```** 或 **```https://服务端物理机ip或域名:映射出来的https端口```** 如果按照默认配置的http映射到80端口/https映射到443端口,则无需接上冒号和端口,下面是填写示例
```
1.域名为lx.cn,使用https,端口为9999(443以外非https标准端口)
https://lx.cn:9999
2.ip为192.168.0.2,使用http,端口为80(http标准端口)
http://192.168.0.2
```
5. 点击开启 **启用同步** ,如果服务端启动成功并且网络畅通,此时会弹出一个输入连接码的窗口,在此处填入你在服务端设置的密码,密码正确即可连接上,此后每次启动客户端都会自动同步
6. 如果此服务端账号或此客户端第一次使用则无需额外设置,否则要选择同步方式,根据自身情况选择即可
#### https配置
1. 拥有一个属于你的域名,已经有的可以跳过此步
在域名平台 购买/领取 一个你的域名,国内大厂有 **阿里云** **腾讯云** **华为云** 等,请自行在该平台注册购买域名,新用户一般比较便宜,如不希望购买,可以去一些第三方平台申请二级域名
2. 在能签发ssl证书的平台申请ssl证书,建议在哪买的域名在哪申请,一般平台都会给dv证书的免费额度,例如华为云就有20张dv证书的免费额度,按照对应平台规则填写好信息后,等审核完成就可以下载证书和密钥的压缩包了,一般dv证书都是机器人审核,秒通过的,申请完刷新即可,这里放上阿里云的[免费购买链接](https://account.aliyun.com/login/login.htm?oauth_callback=https%3A%2F%2Fcommon-buy.aliyun.com%2F%3Fspm%3D5176.2020520163.cas.1.2arDtO%26commodityCode%3Dcas#/buy)
3. 解压下载下来的压缩包,找到其中用于nginx的文件夹,里面有证书(xxxxxxx.crt)和证书密钥(xxxxxxx.key),请将其重命名为cert.crt和cert.key,并放在 ```./nginx/ssl``` 下,如果你的证书是.pem格式的,请打开 ```nginx/https.conf``` ,搜索并替换 ```cert.crt``` 为```cert.pem```,并将你的 ```xxxxxxx.crt``` 重命名为 ```cert.pem```
4. 修改你使用的docker-compose.yaml
如使用镜像创建容器则修改image.yaml,注释第22行注释并取消第19和21行注释
如果启用了https后不希望暴露http,则注释掉第18行
#### 配置前缀转发(如果需要)
1. 在 ```http.conf``` 或 ```https.conf``` 中搜索 ```location / {``` 并全部替换成 ```location /xxx/ {``` 其中xxx为你需要的前缀,配置前缀转发后原服务地址后需要接 ```/xxx``` ,例如:
```
https://lx.cn:9999/xxx
```
#### 未来可能做的功能
1. 添加用户开注系统
2. git拉取失败自动换源
#### 交流和反馈
官方QQ群 ```830125506```