494 lines
9.1 KiB
Markdown
Executable File
494 lines
9.1 KiB
Markdown
Executable File
# 🚀 Meow Music Server - 本地部署指南
|
||
|
||
## 📋 系统要求
|
||
|
||
### 必需环境
|
||
- **Go语言**: 1.19 或更高版本
|
||
- **操作系统**: Windows / Linux / macOS
|
||
- **浏览器**: Chrome / Firefox / Edge / Safari (现代浏览器)
|
||
|
||
### 可选工具(用于音频处理功能)
|
||
- **FFmpeg**: 用于音频压缩和转换
|
||
- **FFprobe**: 用于获取音频时长
|
||
|
||
---
|
||
|
||
## 🔧 Windows 本地部署
|
||
|
||
### 步骤 1: 检查 Go 环境
|
||
|
||
打开命令提示符(CMD)或 PowerShell,检查 Go 是否已安装:
|
||
|
||
```bash
|
||
go version
|
||
```
|
||
|
||
**如果未安装 Go:**
|
||
1. 访问 https://golang.org/dl/
|
||
2. 下载 Windows 安装包
|
||
3. 运行安装程序
|
||
4. 重新打开终端验证安装
|
||
|
||
### 步骤 2: 进入项目目录
|
||
|
||
```bash
|
||
cd d:\esp32-music-server\Meow\MeowEmbeddedMusicServer
|
||
```
|
||
|
||
### 步骤 3: 安装依赖
|
||
|
||
```bash
|
||
go mod tidy
|
||
```
|
||
|
||
### 步骤 4: 配置环境变量(可选)
|
||
|
||
复制配置文件模板:
|
||
```bash
|
||
copy .env.example .env
|
||
```
|
||
|
||
编辑 `.env` 文件(使用记事本或其他编辑器):
|
||
```env
|
||
# 服务器端口
|
||
PORT=2233
|
||
|
||
# 网站信息
|
||
WEBSITE_NAME_CN=我的音乐服务器
|
||
WEBSITE_NAME_EN=My Music Server
|
||
|
||
# API 源(默认已配置,无需修改)
|
||
API_SOURCES=kuwo
|
||
API_SOURCES_1=netease
|
||
API_SOURCES_2=migu
|
||
API_SOURCES_3=baidu
|
||
```
|
||
|
||
### 步骤 5: 启动服务器
|
||
|
||
**方式 1:使用启动脚本(推荐)**
|
||
```bash
|
||
start.bat
|
||
```
|
||
|
||
**方式 2:手动启动**
|
||
```bash
|
||
go run .
|
||
```
|
||
|
||
### 步骤 6: 访问应用
|
||
|
||
服务器启动后,在浏览器中访问:
|
||
|
||
- **新版用户界面**: http://localhost:2233/app
|
||
- **经典界面**: http://localhost:2233/
|
||
|
||
### 步骤 7: 首次使用
|
||
|
||
1. 打开浏览器访问 http://localhost:2233/app
|
||
2. 点击"注册"创建账户
|
||
3. 填写用户名、邮箱和密码
|
||
4. 注册成功后自动登录
|
||
5. 开始搜索和收藏音乐!
|
||
|
||
---
|
||
|
||
## 🐧 Linux / macOS 部署
|
||
|
||
### 步骤 1: 检查 Go 环境
|
||
|
||
```bash
|
||
go version
|
||
```
|
||
|
||
**如果未安装:**
|
||
```bash
|
||
# Ubuntu/Debian
|
||
sudo apt update
|
||
sudo apt install golang-go
|
||
|
||
# macOS (使用 Homebrew)
|
||
brew install go
|
||
|
||
# CentOS/RHEL
|
||
sudo yum install golang
|
||
```
|
||
|
||
### 步骤 2: 进入项目目录
|
||
|
||
```bash
|
||
cd /path/to/MeowEmbeddedMusicServer
|
||
```
|
||
|
||
### 步骤 3: 安装依赖
|
||
|
||
```bash
|
||
go mod tidy
|
||
```
|
||
|
||
### 步骤 4: 配置环境
|
||
|
||
```bash
|
||
cp .env.example .env
|
||
nano .env # 或使用 vim/其他编辑器
|
||
```
|
||
|
||
### 步骤 5: 启动服务器
|
||
|
||
```bash
|
||
go run .
|
||
```
|
||
|
||
或者后台运行:
|
||
```bash
|
||
nohup go run . > server.log 2>&1 &
|
||
```
|
||
|
||
### 步骤 6: 访问应用
|
||
|
||
在浏览器中打开:
|
||
- http://localhost:2233/app
|
||
|
||
---
|
||
|
||
## 🏗️ 生产环境部署
|
||
|
||
### 编译可执行文件
|
||
|
||
**Windows:**
|
||
```bash
|
||
go build -o meow-music-server.exe
|
||
meow-music-server.exe
|
||
```
|
||
|
||
**Linux/macOS:**
|
||
```bash
|
||
go build -o meow-music-server
|
||
./meow-music-server
|
||
```
|
||
|
||
### 使用 systemd 服务(Linux)
|
||
|
||
创建服务文件 `/etc/systemd/system/meow-music.service`:
|
||
|
||
```ini
|
||
[Unit]
|
||
Description=Meow Music Server
|
||
After=network.target
|
||
|
||
[Service]
|
||
Type=simple
|
||
User=your_username
|
||
WorkingDirectory=/path/to/MeowEmbeddedMusicServer
|
||
ExecStart=/path/to/MeowEmbeddedMusicServer/meow-music-server
|
||
Restart=on-failure
|
||
RestartSec=10
|
||
|
||
[Install]
|
||
WantedBy=multi-user.target
|
||
```
|
||
|
||
启动服务:
|
||
```bash
|
||
sudo systemctl daemon-reload
|
||
sudo systemctl start meow-music
|
||
sudo systemctl enable meow-music
|
||
```
|
||
|
||
查看状态:
|
||
```bash
|
||
sudo systemctl status meow-music
|
||
```
|
||
|
||
---
|
||
|
||
## 🌐 局域网访问配置
|
||
|
||
### 步骤 1: 找到本机 IP 地址
|
||
|
||
**Windows:**
|
||
```bash
|
||
ipconfig
|
||
```
|
||
查找 "IPv4 地址",例如:192.168.1.100
|
||
|
||
**Linux/macOS:**
|
||
```bash
|
||
ifconfig
|
||
# 或
|
||
ip addr show
|
||
```
|
||
|
||
### 步骤 2: 修改 .env 配置
|
||
|
||
```env
|
||
WEBSITE_URL=http://192.168.1.100:2233
|
||
EMBEDDED_WEBSITE_URL=http://192.168.1.100:2233
|
||
```
|
||
|
||
### 步骤 3: 防火墙设置
|
||
|
||
**Windows 防火墙:**
|
||
1. 控制面板 → Windows Defender 防火墙
|
||
2. 高级设置 → 入站规则 → 新建规则
|
||
3. 选择"端口" → TCP → 特定本地端口 → 2233
|
||
4. 允许连接 → 完成
|
||
|
||
**Linux (UFW):**
|
||
```bash
|
||
sudo ufw allow 2233/tcp
|
||
sudo ufw reload
|
||
```
|
||
|
||
### 步骤 4: 其他设备访问
|
||
|
||
在同一局域网的其他设备浏览器中访问:
|
||
```
|
||
http://192.168.1.100:2233/app
|
||
```
|
||
|
||
---
|
||
|
||
## 📁 目录结构说明
|
||
|
||
部署后的目录结构:
|
||
|
||
```
|
||
MeowEmbeddedMusicServer/
|
||
├── main.go # 主程序入口
|
||
├── user.go # 用户认证模块
|
||
├── playlist.go # 歌单管理
|
||
├── api.go # 音乐搜索API
|
||
├── helper.go # 工具函数
|
||
├── struct.go # 数据结构
|
||
├── go.mod # Go依赖配置
|
||
├── .env # 环境配置(需创建)
|
||
├── start.bat # Windows启动脚本
|
||
│
|
||
├── theme/ # 前端界面
|
||
│ ├── music-app.html # 新版用户界面
|
||
│ └── index.html # 经典界面
|
||
│
|
||
├── files/ # 数据存储目录(自动创建)
|
||
│ ├── users.json # 用户数据
|
||
│ ├── user_playlists.json # 用户歌单
|
||
│ └── playlists.json # 全局歌单(兼容)
|
||
│
|
||
└── cache/ # 音乐缓存(自动创建)
|
||
└── music/ # 下载的音乐文件
|
||
```
|
||
|
||
---
|
||
|
||
## 🔍 故障排除
|
||
|
||
### 问题 1: 端口被占用
|
||
|
||
**错误信息**: `bind: address already in use`
|
||
|
||
**解决方法**:
|
||
|
||
**Windows:**
|
||
```bash
|
||
# 查看占用端口的进程
|
||
netstat -ano | findstr :2233
|
||
|
||
# 结束进程(替换PID)
|
||
taskkill /PID <进程ID> /F
|
||
```
|
||
|
||
**Linux/macOS:**
|
||
```bash
|
||
# 查看占用端口的进程
|
||
lsof -i :2233
|
||
|
||
# 结束进程
|
||
kill -9 <PID>
|
||
```
|
||
|
||
或者修改 `.env` 文件使用其他端口:
|
||
```env
|
||
PORT=3000
|
||
```
|
||
|
||
### 问题 2: 无法访问页面
|
||
|
||
**检查清单**:
|
||
- [ ] 服务器是否正常启动?
|
||
- [ ] 浏览器地址是否正确?
|
||
- [ ] 防火墙是否允许端口访问?
|
||
- [ ] 端口号是否正确(默认2233)?
|
||
|
||
### 问题 3: 依赖下载失败
|
||
|
||
**错误信息**: `go: downloading ... failed`
|
||
|
||
**解决方法**:
|
||
|
||
设置 Go 代理(中国大陆用户):
|
||
```bash
|
||
# Windows PowerShell
|
||
$env:GOPROXY="https://goproxy.cn,direct"
|
||
|
||
# Windows CMD
|
||
set GOPROXY=https://goproxy.cn,direct
|
||
|
||
# Linux/macOS
|
||
export GOPROXY=https://goproxy.cn,direct
|
||
```
|
||
|
||
永久设置:
|
||
```bash
|
||
go env -w GOPROXY=https://goproxy.cn,direct
|
||
```
|
||
|
||
### 问题 4: 找不到 .env 文件
|
||
|
||
**解决方法**:
|
||
|
||
如果 `.env` 文件不存在,服务器会使用默认配置。可以手动创建:
|
||
|
||
```bash
|
||
# Windows
|
||
copy .env.example .env
|
||
|
||
# Linux/macOS
|
||
cp .env.example .env
|
||
```
|
||
|
||
### 问题 5: 搜索不到音乐
|
||
|
||
**可能原因**:
|
||
- API源暂时不可用
|
||
- 网络连接问题
|
||
- 歌曲名称输入错误
|
||
|
||
**解决方法**:
|
||
1. 检查网络连接
|
||
2. 尝试不同的歌曲名称
|
||
3. 等待片刻后重试
|
||
4. 查看服务器日志确认API响应
|
||
|
||
---
|
||
|
||
## 📊 性能优化
|
||
|
||
### 1. 编译优化
|
||
|
||
```bash
|
||
# 编译时优化
|
||
go build -ldflags="-s -w" -o meow-music-server
|
||
```
|
||
|
||
### 2. 缓存目录
|
||
|
||
定期清理 `cache/` 目录中的旧文件,避免占用过多磁盘空间。
|
||
|
||
### 3. 数据备份
|
||
|
||
定期备份 `files/` 目录:
|
||
```bash
|
||
# Windows
|
||
xcopy /E /I files files_backup
|
||
|
||
# Linux/macOS
|
||
cp -r files files_backup
|
||
```
|
||
|
||
---
|
||
|
||
## 🔒 安全建议
|
||
|
||
### 1. 修改默认端口
|
||
|
||
编辑 `.env` 文件:
|
||
```env
|
||
PORT=8080 # 使用非默认端口
|
||
```
|
||
|
||
### 2. 使用强密码
|
||
|
||
注册时使用:
|
||
- 至少8个字符
|
||
- 包含大小写字母
|
||
- 包含数字和特殊字符
|
||
|
||
### 3. 局域网隔离
|
||
|
||
如果仅本机使用,不要配置局域网访问。
|
||
|
||
### 4. 定期更新
|
||
|
||
```bash
|
||
git pull origin main
|
||
go mod tidy
|
||
```
|
||
|
||
---
|
||
|
||
## 📞 获取帮助
|
||
|
||
### 遇到问题?
|
||
|
||
1. **查看日志**: 服务器启动后的控制台输出
|
||
2. **检查文档**: 阅读 `USER_SYSTEM_README.md`
|
||
3. **社区支持**: 喵波音律-音乐家园QQ群:865754861
|
||
4. **GitHub Issues**: 在项目仓库提交问题
|
||
|
||
### 常用命令
|
||
|
||
```bash
|
||
# 查看Go版本
|
||
go version
|
||
|
||
# 查看项目依赖
|
||
go list -m all
|
||
|
||
# 清理编译缓存
|
||
go clean -cache
|
||
|
||
# 重新下载依赖
|
||
go mod download
|
||
```
|
||
|
||
---
|
||
|
||
## ✅ 部署检查清单
|
||
|
||
部署前请确认:
|
||
|
||
- [ ] Go 已安装(1.19+)
|
||
- [ ] 项目代码已下载
|
||
- [ ] 依赖已安装(go mod tidy)
|
||
- [ ] .env 文件已配置(可选)
|
||
- [ ] 端口 2233 未被占用
|
||
- [ ] 防火墙允许端口访问
|
||
- [ ] 浏览器版本较新
|
||
|
||
部署后验证:
|
||
|
||
- [ ] 服务器成功启动
|
||
- [ ] 可以访问 http://localhost:2233/app
|
||
- [ ] 可以注册新用户
|
||
- [ ] 可以搜索音乐
|
||
- [ ] 可以创建歌单
|
||
- [ ] 可以播放音乐
|
||
|
||
---
|
||
|
||
## 🎉 开始使用
|
||
|
||
部署完成后,按照以下步骤开始:
|
||
|
||
1. ✅ 访问 http://localhost:2233/app
|
||
2. ✅ 注册您的账户
|
||
3. ✅ 搜索喜欢的音乐
|
||
4. ✅ 创建个人歌单
|
||
5. ✅ 享受音乐!
|
||
|
||
---
|
||
|
||
**祝您使用愉快!** 🎵✨
|
||
|
||
有问题随时查看文档或联系社区支持!
|