跳到主要内容

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 Key
  • LIVEKIT_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 APIhttp://<服务器IP>:8080
API 文档http://<服务器IP>:8080/swagger/index.html
LiveKitws://<服务器IP>:80
数据库管理http://<服务器IP>:8081

端口说明

端口协议用途开放范围
80TCPNginx 负载均衡(LiveKit 入口)公网
8080TCPTgoRTC API公网
8081TCPAdminer 数据库管理仅内网
3307TCPMySQL仅内网
6380TCPRedisLiveKit 节点
7880TCPLiveKit HTTP公网
7881TCPLiveKit RTC TCP公网
3478UDPTURN UDP公网
5349TCPTURN TLS公网
50000-50100UDPWebRTC 媒体公网

常用命令

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

相关链接