LiveKit 部署实战:从本地 Demo 到生产的 5 个关键决策
【免费下载链接】livekitEnd-to-end realtime stack for connecting humans and AI项目地址: https://gitcode.com/GitHub_Trending/li/livekit
想找一套能立刻跑起来的实时音视频方案?LiveKit 值得看一眼:开源、免费,SFU 媒体路由和房间管理都是现成的。这篇文章面向刚接触它的开发者和运维新手,带你走完 LiveKit 部署全流程:本地 3 步跑通 demo,再对照清单上生产,5 个关键决策可以直接抄作业。
选型速览:开源版免费到什么程度
先说结论:免费得很彻底。
- 授权是 Apache 2.0,商用不收费,没有房间数、会议时长、带宽这类用量限制;
- 核心能力全保留:分布式 WebRTC SFU(选择性转发单元)、房间管理、JWT 鉴权、UDP/TCP/TURN 多链路网络栈;
- 高级特性也没砍:simulcast 多流、说话人检测、选择性订阅、Webhook、VP9/AV1 SVC 编码,都在开源版里;
- 部署形态是单个 Go 二进制,Docker 或 Kubernetes 都能直接跑。
和托管云服务比,你少的只是运维服务,功能本身不缺。
动手前:LiveKit 开源版环境要求自检
LiveKit 是媒体转发服务,开销主要花在转发上。动手前把下表过一遍,免得跑起来再扩容:
| 指标 | 开发环境(可以省) | 生产环境(必须) |
|---|---|---|
| CPU | 4 核起步 | 8 核或更多 |
| 内存 | 8GB | 16GB 以上 |
| 上行带宽 | 10Mbps 稳定宽带 | 10Mbps 以上,低延迟线路 |
| 系统 | 主流 Linux 发行版即可 | 专用媒体节点,规模大时多节点分布式 |
4 核 8G 的虚拟机跑 demo 完全够;生产要按预期并发估算——每多一路 1080P 视频转发,CPU 占用都会明显上升,先压测再定规格。
部署主路径:先本地,再生产
3 步跑通本地环境
第一步,克隆代码:
git clone https://gitcode.com/GitHub_Trending/li/livekit cd livekit第二步,准备配置。仓库里的 config-sample.yaml 就是模板,必配三项:
port(默认 7880):信令和 RoomService 主端口,客户端先连它;keys:API key/secret 对,用于签发 JWT 入会令牌,没有它没人能进房间;rtc.port_range_start/end(默认 50000-60000):UDP 媒体端口段,防火墙必须放行,缺了它"有信令没画面"。
可选项两个:redis.address配上就自动进入分布式模式,客户端连哪个节点都会路由到同一房间,单机不用配;prometheus_port(6789)开出来给监控拉指标,本地可以不开。
第三步,构建并运行。仓库根目录的 Dockerfile 会把二进制打进 alpine 镜像,启动后只跑livekit-server一个进程。不想装 Go 环境的话,Docker 构建最省事。以上三步,就是完整的 LiveKit 本地部署教程。
生产环境的 4 条硬性检查
- 安全:主端口放到负载均衡器后终结 TLS;UDP 媒体传输本身走 WebRTC 加密,不用二次加密,但
tcp_port必须直接暴露在节点上; - 并发调优:UDP 媒体端口数建议不少于 vCPU 数,转发吞吐和这个直接挂钩;
- 监控:开启
prometheus_port,deploy/grafana/livekit-server-overview.json 里有现成 Grafana 面板,导入就能看; - 备份:媒体流本身不落盘,要备份的是 API keys、房间默认配置和 Webhook 地址——丢了它们,重建后令牌和事件通知全部失效。
⚠️ 开发和生产的差异就一句话:开发可以不开 Redis、不开监控、密钥随便填;生产这三项一条都不能省。
它适合解决什么问题
- 在线教育:大教室场景下 SFU 让每人只推一路流,带宽成本不随人数翻倍;注意配好 TURN 回退,复杂 NAT 下的学生才进得来;
- 企业视频会议:房间管理和踢人/静音等 moderation API 开箱即用,管控逻辑不用自己写;超大型会议再考虑多节点分布式;
- 游戏内语音:UDP 直连延迟低,适合房间语音频道;移动端弱网记得开
tcp_port回退保底。
远程医疗、社交连麦同理,都能直接用,合规相关的加密存储要求需要自己补齐。
避坑清单:上线前逐条勾掉
- 防火墙没放行 UDP 端口段:表现为能登录、画面黑,第一个查它;
keys还在用示例值:任何人都能伪造入会令牌,生产密钥要重新生成并加密保管;tcp_port放在了负载均衡后面:ICE over TCP 必须直连节点,放后面回退直接失效;- Redis 没设密码:分布式模式下它存着房间路由状态,裸奔等于房间全暴露;
- 6789 指标端口对公网开放:它只应该对内网监控可见。
先照"3 步跑通本地环境"把 demo 拉起来:两个人进一个房间、互看得见,链路就算通了。再对照避坑清单和生产检查逐项勾掉,全绿就上生产。LiveKit 部署的复杂度基本都在网络边界上,端口和密钥处理干净,后面就是稳态运行。
【免费下载链接】livekitEnd-to-end realtime stack for connecting humans and AI项目地址: https://gitcode.com/GitHub_Trending/li/livekit
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考