# 🚀 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 ``` 或者修改 `.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. ✅ 享受音乐! --- **祝您使用愉快!** 🎵✨ 有问题随时查看文档或联系社区支持!