# MeshRay Docker 部署指南 ## 快速部署 ### 1. 准备配置文件 复制示例配置文件并根据需要修改: ```bash cp ../../configs/config.example.yaml ./config.yaml ``` ### 2. 修改配置(可选) 编辑 `config.yaml` 文件,特别是 STUN/TURN 服务器配置: ```yaml # STUN 服务器配置 stun: # 默认 STUN 服务器列表(国内和国外) default_servers: # 国内 STUN 服务器 - stun:stun.qq.com:3478 - stun:stun.miwifi.com:3478 - stun:stun.bige0.com:3478 # 国外 STUN 服务器(Google) - stun:stun.l.google.com:19302 - stun:stun1.l.google.com:19302 - stun:stun2.l.google.com:19302 - stun:stun3.l.google.com:19302 - stun:stun4.l.google.com:19302 # 国外 STUN 服务器(其他) - stun:stun.cloudflare.com:3478 - stun:stun.nextcloud.com:443 - stun:stun.sipgate.net:3478 - stun:stun.antisip.com:3478 - stun:stun.sonetel.com:3478 - stun:stun.voipgate.com:3478 # STUN 服务器选择策略 # auto: 自动选择(优先国内,延迟低的优先) # domestic: 仅使用国内服务器 # international: 仅使用国外服务器 # custom: 仅使用自定义服务器 selection_strategy: auto # 是否启用 STUN 服务器自动测试 auto_test: true # STUN 测试间隔(秒) test_interval: 300 # STUN 超时时间(秒) timeout: 5 # TURN 服务器配置(可选) turn: # 默认 TURN 服务器 # 如果配置了 TURN 服务器,将作为 STUN 穿透失败时的回退方案 default_servers: [] # 示例配置: # - url: turn:turn.example.com:3478 # username: user # credential: pass # auth_type: credential ``` ### 3. 启动服务 ```bash # 创建必要目录 mkdir -p data logs # 启动服务 docker-compose up -d # 查看日志 docker-compose logs -f ``` ### 4. 访问服务 打开浏览器访问:http://your-server-ip:9531 ## 配置说明 ### STUN 服务器配置 #### 国内 STUN 服务器(推荐) - `stun:stun.qq.com:3478` - 腾讯 STUN 服务器 - `stun:stun.miwifi.com:3478` - 小米 STUN 服务器 - `stun:stun.bige0.com:3478` - 国内公共 STUN 服务器 #### 国外 STUN 服务器 - `stun:stun.l.google.com:19302` - Google STUN 服务器 - `stun:stun.cloudflare.com:3478` - Cloudflare STUN 服务器 - `stun:stun.nextcloud.com:443` - Nextcloud STUN 服务器 #### 选择策略 - `auto`: 自动选择(优先国内,延迟低的优先) - `domestic`: 仅使用国内服务器(适合国内用户) - `international`: 仅使用国外服务器(适合海外用户) - `custom`: 仅使用自定义服务器 ### TURN 服务器配置 TURN 服务器用于 STUN 穿透失败时的中继方案,支持以下鉴权方式: - `credential`: 用户名密码(自建 coturn) - `token`: Token(商业服务如 Twilio、Xirsys) - `secret`: Shared Secret(信令签发) ## 常用命令 ```bash # 启动服务 docker-compose up -d # 停止服务 docker-compose down # 重启服务 docker-compose restart # 查看日志 docker-compose logs -f # 查看服务状态 docker-compose ps # 更新镜像 docker-compose pull docker-compose up -d ``` ## 故障排查 ### 1. 服务无法启动 ```bash # 查看日志 docker-compose logs # 检查配置文件 cat config.yaml ``` ### 2. STUN 穿透失败 ```bash # 检查 STUN 服务器配置 grep -A 20 "stun:" config.yaml # 修改选择策略 # 将 selection_strategy 改为 domestic 或 international ``` ### 3. 端口冲突 ```bash # 修改 docker-compose.yml 中的端口映射 ports: - "9532:9531" # 改为其他端口 ``` ## 高级配置 ### 使用 host 网络模式(推荐) 对于需要更好网络性能的场景,可以使用 host 网络模式: 1. 编辑 `docker-compose.yml` 2. 取消注释 `network_mode: host` 3. 注释掉 `ports` 配置 4. 重启服务 ```yaml services: meshray: # ... network_mode: host # ports: # - "9531:9531" ``` ### 自定义 STUN 服务器 如果需要使用自己的 STUN 服务器: ```yaml stun: default_servers: - stun:your-stun-server.com:3478 selection_strategy: custom ``` ### 配置 TURN 服务器 ```yaml turn: default_servers: - url: turn:your-turn-server.com:3478 username: your-username credential: your-password auth_type: credential ``` ## 注意事项 1. **首次启动**:首次启动会自动生成管理员密码,请查看日志获取 2. **数据持久化**:配置文件、数据和日志都通过 volume 挂载,确保数据安全 3. **网络性能**:建议使用 host 网络模式以获得最佳性能 4. **STUN 选择**:国内用户建议使用 `domestic` 策略,海外用户建议使用 `international` 策略