openvidu私有化部署
简介
OpenVidu 是一个允许您实施实时应用程序的平台。您可以从头开始构建全新的 OpenVidu 应用程序,但将 OpenVidu 集成到您现有的应用程序中也非常容易。
OpenVidu 基于 WebRTC 技术,允许开发您可以想象的任何类型的用例:一对一通话、视频会议室、大型直播活动、无人机和摄像头源的管理和处理…
OpenVidu 建立在最好的开源技术之上:LiveKit,它继承了所有出色的 SDK,将其集成到您的前端和后端应用程序中,以及 mediasoup,它从中继承了媒体路由的最佳性能和优化。
单节点部署架构
所有服务都部署在一台机器上,其中包括:
OpenVidu 服务器(兼容 LiveKit)。
Ingress入口和Egress 出口服务。
OpenVidu Dashboard,一个 Web 应用程序界面,用于可视化您的房间、入口和出口服务。
MinIO 作为用于录制文件的 S3 存储服务。
Redis 作为 OpenVidu Server 和 Ingress/Egress 服务的共享数据库。
MongoDB作为用于存储分析和监控数据的数据库。
Caddy 作为反向代理。它可以使用自签名证书、Let’s Encrypt 证书或自定义证书进行部署。
OpenVidu Call(默认应用程序模块),一个可选的即用型视频会议应用程序。
Grafana、Mimir、Promtail 和 Loki(可观测性模块)构成了一个可选的可观测性堆栈,用于监控,允许您跟踪 OpenVidu 的日志和部署统计信息。
部署准备
- 至少具有 4GB RAM 和 4 个 CPU 内核并安装了 Linux(建议使用 Ubuntu)的计算机。
- 充足的磁盘空间(建议 100GB),如果您要录制会话。
- 计算机必须具有公共 IP 和指向它的 FQDN(完全限定域名)。
端口规则
确保在防火墙、安全组或计算机中的任何类型的网络配置中配置了所有这些规则。
入站端口规则:
协议 | 端口 | 源 | 描述 |
---|---|---|---|
TCP | 80 | 0.0.0.0/0, ::/0 | 将 HTTP 流量重定向到 HTTPS 和 Let’s Encrypt 验证。 |
TCP | 443 | 0.0.0.0/0, ::/0 | 允许访问以下内容:1、LiveKit API。2、OpenVidu 仪表板。3、OpenVidu 调用(默认应用程序)。4、 LiveKit API。TURN 和TLS 。自定义布局 |
UDP | 443 | 0.0.0.0/0, ::/0 | STUN/TURN服务器通过UDP。 |
TCP | 1935 | 0.0.0.0/0, ::/0 | (可选),只有当你想使用Ingress服务摄取RTMP流时才需要。 |
TCP | 7881 | 0.0.0.0/0, ::/0 | (可选),只有当你想通过TCP允许WebRTC时才需要。 |
TCP | 7885 | 0.0.0.0/0, ::/0 | (可选),仅当您想使用WHIP协议摄取WebRTC时才需要。 |
TCP | 9000 | 0.0.0.0/0, ::/0 | (可选),仅当您想公开MinIO时才需要。 |
TCP | 50000 - 60000 | 0.0.0.0/0, ::/0 | 媒体流量 |
出站端口规则:
通常,允许所有出站流量。
安装
执行以下命令:
sh <(curl -fsSL http://get.openvidu.io/community/singlenode/latest/install.sh)
向导将引导您完成安装过程。你会被要求提供以下信息:
- 选择要使用的证书类型:
- 自签名证书:它将生成一个自签名证书。不建议将其用于生产环境,但对于测试或开发目的非常有用。
- Let’s Encrypt:它将自动为您的域生成证书。Let’s Encrypt电子邮件是必需的,稍后将在向导中询问。
- ZeroSSL:它将使用ZeroSSL自动为您的域生成证书。API Key是必需的,稍后将在向导中询问。
- Own Certificate:它会要求您提供证书和密钥文件。只需在向导要求时复制并粘贴文件的内容。
- 域名:部署时使用的域名。它必须是指向您部署OpenVidu的机器的FQDN。
- (可选)Turn域名:使用TLS协议的Turn服务器的域名。它必须是指向您部署OpenVidu的机器的FQDN,并且必须与OpenVidu域名不同。如果要连接到OpenVidu部署的用户在限制性防火墙后面,建议使用。
- 启用模块:选择需要启用的模块。您可以启用以下模块:
默认应用:OpenVidu Call,一个现成的视频会议应用。
可观察性:Grafana堆栈,包括日志和监控状态。
其余的参数是秘密、用户名和密码。如果为空,向导将为它们生成随机值。
安装过程完成后,您将看到以下消息:
> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - <
> <
> 🎉 OpenVidu Community Installation Finished Successfully! 🎉 <
> <
> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - <
OpenVidu 将安装在 systemd 服务中并配置为 systemd 服务。您可以使用以下命令启动服务:/opt/openvidu
systemctl start openvidu
如果一切顺利,所有容器都将启动并运行,无需重启,您将能够访问以下任何服务:
- OpenVidu Call (默认应用): https://openvidu.example.io/
- OpenVidu Dashboard: https://openvidu.example.io/dashboard
- MinIO: https://openvidu.example.io/minio-console
- Grafana: https://openvidu.example.io/grafana