TgoRTC 部署
本文档介绍如何一键部署 TgoRTC 主服务器。
架构说明
TgoRTC 主服务器包含完整的服务栈:
┌─────────────────────────────────────────────────────────────┐
│ 主服务器 (Master) │
│ TgoRTC Server + MySQL + Redis + LiveKit + Nginx │
└─────────────────────────────────────────────────────────────┘
系统要求
- 操作系统:Linux(推荐 Ubuntu 20.04+)
- Docker 20.10+
- Docker Compose 2.0+
- 服务器配置:最低 2核 4GB 内存
一键部署
# 国内服务器(推荐,使用镜像加速)
curl -fsSL https://gitee.com/No8blackball/tgo-rtcserver/raw/main/scripts/deploy.sh | sudo bash -s -- --cn
# 海外服务器
curl -fsSL https://raw.githubusercontent.com/TgoRTC/TgoRTCServer/main/scripts/deploy.sh | sudo bash
部署完成后
部署完成后会自动生成配置并启动服务,请记录以下关键信息(用于后续 LiveKit 节点配置):
# 查看生成的配置
cat ~/tgortc/.env
需要记录的信息:
REDIS_PASSWORD- Redis 密码LIVEKIT_API_KEY- LiveKit API KeyLIVEKIT_API_SECRET- LiveKit API Secret
服务管理
cd ~/tgortc
# 查看服务状态
sudo docker compose ps
# 查看日志
sudo docker compose logs -f
# 配置系统防火墙
./deploy.sh firewall
# 更新服务
./deploy.sh update
# 查看版本信息
./deploy.sh version
访问地址
| 服务 | 地址 |
|---|---|
| TgoRTC API | http://<服务器IP>:8080 |
| API 文档 | http://<服务器IP>:8080/swagger/index.html |
| LiveKit | ws://<服务器IP>:80 |
| 数据库管理 | http://<服务器IP>:8081 |
端口说明
| 端口 | 协议 | 用途 | 开放范围 |
|---|---|---|---|
| 80 | TCP | Nginx 负载均衡(LiveKit 入口) | 公网 |
| 8080 | TCP | TgoRTC API | 公网 |
| 8081 | TCP | Adminer 数据库管理 | 仅内网 |
| 3307 | TCP | MySQL | 仅内网 |
| 6380 | TCP | Redis | LiveKit 节点 |
| 7880 | TCP | LiveKit HTTP | 公网 |
| 7881 | TCP | LiveKit RTC TCP | 公网 |
| 3478 | UDP | TURN UDP | 公网 |
| 5349 | TCP | TURN TLS | 公网 |
| 50000-50100 | UDP | WebRTC 媒体 | 公网 |
常用命令
cd ~/tgortc
# 查看状态
./deploy.sh status
# 查看日志
sudo docker compose logs -f
# 更新服务(交互式菜单,可选快速更新/完整更新/指定版本)
./deploy.sh update
# 回滚到上一版本
./deploy.sh rollback
# 配置防火墙
./deploy.sh firewall
# 重新加载 Nginx(添加节点后)
./deploy.sh reload-nginx
# 重启服务
sudo docker compose restart
# 停止服务
sudo docker compose down
# 清理所有数据(危险!)
./deploy.sh clean
配置文件说明
.env 文件
# MySQL 配置
DB_USER=root
DB_PASSWORD=<自动生成>
DB_NAME=tgo_rtc
# Redis 配置
REDIS_PASSWORD=<自动生成>
# LiveKit 配置
LIVEKIT_API_KEY=<自动生成>
LIVEKIT_API_SECRET=<自动生成>
# Docker 镜像(二次开发时修改)
DOCKER_IMAGE=your-registry.com/your-namespace/tgortc:latest
# LiveKit 集群节点(添加节点后配置)
LIVEKIT_NODES=192.168.1.101:7880,192.168.1.102:7880
# 业务 Webhook(可选)
BUSINESS_WEBHOOK_ENDPOINTS='[{"url":"https://your-api.com/webhook","secret":"xxx"}]'
常见问题
Q1: Docker 镜像拉取失败?
# 使用 --cn 参数启用国内镜像加速
curl -fsSL ... | sudo bash -s -- --cn
Q2: 端口被占用?
# 检查端口占用
lsof -i :80
lsof -i :8080
# 停止占用的进程或修改端口
Q3: 数据库连接失败?
# 可能是旧数据残留,清理后重新部署
./deploy.sh clean
./deploy.sh
Q4: 如何查看生成的密码?
cat ~/tgortc/.env | grep PASSWORD
cat ~/tgortc/.env | grep SECRET