CentOS 7.6 自建 LiveKit 部署指南

1. 环境要求

项 建议
系统 CentOS 7.6 x86_64
公网 IP 必备(云主机)
域名 建议 livekit.yourdomain.com(生产需 HTTPS/WSS)
开放端口 TCP 7880(信令)、TCP 7881、UDP 50000-60000、TURN 3478/5349
Docker 20+ / docker-compose v1 或 v2

CentOS 7 默认内核较旧,强烈建议用 Docker + host 网络,不要用复杂的 bridge NAT。

2. 安装 Docker(CentOS 7)

复制代码
yum install -y yum-utils
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
yum install -y docker-ce docker-ce-cli containerd.io
systemctl enable --now docker
​
# compose 插件或独立二进制均可
curl -L "https://github.com/docker/compose/releases/download/v2.29.7/docker-compose-$(uname -s)-$(uname -m)" \
  -o /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose

若官方源慢,可换国内镜像后再装。

3. 准备配置目录

复制代码
mkdir -p /opt/livekit
cd /opt/livekit

3.1 livekit.yaml

coturn 已关闭 时,请打开 LiveKit 内置 TURN(turn.enabled: true),跨运营商/公司网更稳。 若以后再开 coturn 抢 3478,再把 turn.enabled 改回 false。

复制代码
port: 7880
log_level: info
​
rtc:
  tcp_port: 7881
  port_range_start: 50000
  port_range_end: 60000
  use_external_ip: true
​
keys:
  # secret 必须 ≥32 字符
  APIoaKey: "请换成openssl_rand_hex_32生成的至少32位密钥"
​
# coturn 已停用:启用 LiveKit 内置 TURN
turn:
  enabled: true
  udp_port: 3478
  # 无独立 TURN 域名/证书时可先不开 TLS
  # tls_port: 5349
  # domain: turn.yourdomain.com

生成强密钥:

复制代码
openssl rand -hex 32

启动LiveKit:

复制代码
cd /opt/livekit
docker-compose pull
docker-compose down
docker-compose up -d
docker-compose logs -f --tail=100

3.2 docker-compose.yaml

复制代码
services:
  livekit:
    # 建议使用最新稳定版,与 livekit-client 2.x 匹配(勿用过旧的 1.8.x)
    image: livekit/livekit-server:v1.13.5
    network_mode: host
    restart: unless-stopped
    volumes:
      - ./livekit.yaml:/etc/livekit.yaml:ro
    command: --config /etc/livekit.yaml

客户端是 livekit-client@2.21 时,服务器请用 v1.9+ ,推荐 v1.13.5 。1.8.4 会先 404 /rtc/v1 再回退,容易「已连接但无画面」。

健康检查(本机):

复制代码
curl -i http://127.0.0.1:7880
# 或
ss -lntp | grep 7880

4. 防火墙 / 安全组

复制代码
# firewalld 示例
firewall-cmd --permanent --add-port=7880/tcp
firewall-cmd --permanent --add-port=7881/tcp
firewall-cmd --permanent --add-port=3478/udp
firewall-cmd --permanent --add-port=3478/tcp
firewall-cmd --permanent --add-port=50000-60000/udp
firewall-cmd --reload

云厂商控制台同步放行上述端口。

5. HTTPS / WSS(生产必做)

浏览器与 App WebView 在 HTTPS 页面下要求 wss://。推荐用 nginx 反代:

nginx.conf:

复制代码
livekit.yourdomain.com {
  proxy_pass 127.0.0.1:7880
}

确认后客户端使用:

复制代码
wss://livekit.yourdomain.com

6. 配置 后端

编辑 web/src/main/resources/application.yml(或 application-prod.yml):

复制代码
livekit:
  enabled: true
  url: wss://livekit.yourdomain.com   # 开发可临时 ws://公网IP:7880
  api-key: APIoaKey
  api-secret: replace_with_32chars_or_longer_secret
  token-ttl-seconds: 7200

api-key / api-secret 必须与 livekit.yaml 的 keys 一致。

重启后端后:

  • POST /api/v1/webrtc/private/call|accept|token 返回 { url, roomName, token, mediaMode: "sfu" }

  • 群呼同理:/api/v1/webrtc/group/*

7. 最小验证(可选)

本机装 LiveKit CLI:

复制代码
# 生成测试 token(需与 keys 一致)
# 或用官方 meeting demo 指向你的 wss 地址

也可用 LiveKit Meet 示例 自定义 server URL 做连通性测试(需公网可达的 wss)。

相关推荐
xh didida44 分钟前
Linux -- 基础IO
linux·服务器·开发语言·c++
心易行者1 小时前
Agent应用+API端点商业化进阶实战:从单体智能体到可付费调用的API全流程
运维·服务器·人工智能·python·apache
科技研学社2 小时前
精度决胜品质:羽绒服缝制工艺标准与自动化精度对标解析
运维·自动化
夜之眷属2 小时前
Core dump 崩溃排查:JVM 宕机后,那份 core 文件怎么用 gdb 还原现场
java·运维·服务器·jvm
Initialize293082 小时前
Redis 内存打满、连接数飙红?运维排查四步法
运维
zly35002 小时前
centos7 mount设备挂载 /dev/sda1/硬盘挂载
linux·运维·服务器
零基础1232 小时前
FinalShell 使用教程:从安装到高效运维
运维·经验分享·笔记·finalshell
帷幕落秋2 小时前
Docker的两种安装
运维·docker·容器
工业一体机老司机2 小时前
工业一体机选购后的系统部署:Ubuntu下Docker容器化运行与GPIO配置
linux·ubuntu·docker·人机交互