当前位置: 首页 > news >正文

openvidu私有化部署

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(完全限定域名)。

端口规则

确保在防火墙、安全组或计算机中的任何类型的网络配置中配置了所有这些规则。
入站端口规则:

协议端口描述
TCP800.0.0.0/0, ::/0将 HTTP 流量重定向到 HTTPS 和 Let’s Encrypt 验证。
TCP4430.0.0.0/0, ::/0允许访问以下内容:1、LiveKit API。2、OpenVidu 仪表板。3、OpenVidu 调用(默认应用程序)。4、 LiveKit API。TURN 和TLS 。自定义布局
UDP4430.0.0.0/0, ::/0STUN/TURN服务器通过UDP。
TCP19350.0.0.0/0, ::/0(可选),只有当你想使用Ingress服务摄取RTMP流时才需要。
TCP78810.0.0.0/0, ::/0(可选),只有当你想通过TCP允许WebRTC时才需要。
TCP78850.0.0.0/0, ::/0(可选),仅当您想使用WHIP协议摄取WebRTC时才需要。
TCP90000.0.0.0/0, ::/0(可选),仅当您想公开MinIO时才需要。
TCP50000 - 600000.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

相关文章:

openvidu私有化部署

openvidu私有化部署 简介 OpenVidu 是一个允许您实施实时应用程序的平台。您可以从头开始构建全新的 OpenVidu 应用程序&#xff0c;但将 OpenVidu 集成到您现有的应用程序中也非常容易。 OpenVidu 基于 WebRTC 技术&#xff0c;允许开发您可以想象的任何类型的用例&#xf…...

基于深度学习的视频伪造检测

基于深度学习的视频伪造检测旨在利用深度学习技术来检测和识别伪造的视频内容。伪造视频&#xff0c;尤其是深伪&#xff08;Deepfake&#xff09;视频&#xff0c;近年来随着生成对抗网络&#xff08;GAN&#xff09;技术的发展&#xff0c;变得越来越逼真和难以识别。这对个人…...

python机器人编程——开发一个pymatlab工具箱(上)

目录 一、前言二、实现过程2.1 封装属性2.2 数据流化显示2.3 输入数据的适应性 三、核心代码说明3.1 设置缓存3.2 随机信号3.3 根据设置绘图 五、总结四、源码PS.扩展阅读ps1.六自由度机器人相关文章资源ps2.四轴机器相关文章资源ps3.移动小车相关文章资源 一、前言 我们知道m…...

输入类控件

目录 1.Line Edit 代码示例: 录入个人信息 代码示例: 使用正则表达式验证输入框的数据 代码示例: 验证两次输入的密码一致 代码示例: 切换显示密码 2.Text Edit 代码示例: 获取多行输入框的内容 代码示例: 验证输入框的各种信号 3.Combo Box 代码示例: 使用下拉框模拟…...

C++20中的模块

大多数C项目使用多个翻译单元(translation units)&#xff0c;因此它们需要在这些单元之间共享声明和定义(share declarations and definitions)。headers的使用在这方面非常突出。模块(module)是一种language feature&#xff0c;用于在翻译单元之间共享声明和定义。它们是某些…...

Selenium与流行框架集成:pytest与Allure报告

Selenium与流行框架集成&#xff1a;pytest与Allure报告 在现代软件开发中&#xff0c;自动化测试是确保产品质量和快速迭代的关键。Selenium作为业界领先的Web自动化测试工具&#xff0c;其灵活性和强大的功能受到广泛认可。为了进一步提升测试效率和报告质量&#xff0c;本文…...

日撸Java三百行(day17:链队列)

目录 一、队列基础知识 1.队列的概念 2.队列的实现 二、代码实现 1.链队列创建 2.链队列遍历 3.入队 4.出队 5.数据测试 6.完整的程序代码 总结 一、队列基础知识 1.队列的概念 今天我们继续学习另一个常见的数据结构——队列。和栈一样&#xff0c;队列也是一种操…...

Android摄像头采集选Camera1还是Camera2?

Camera1还是Camera2&#xff1f; 好多开发者纠结&#xff0c;Android平台采集摄像头&#xff0c;到底是用Camera1还是Camera2&#xff1f;实际上&#xff0c;Camera1和Camera2分别对应相机API1和相机API2。Android 5.0开始&#xff0c;已经弃用了Camera API1&#xff0c;新平台…...

零基础5分钟上手亚马逊云科技AWS核心云开发/云架构 - 创建高可用数据库集群

简介&#xff1a; 欢迎来到小李哥全新亚马逊云科技AWS云计算知识学习系列&#xff0c;适用于任何无云计算或者亚马逊云科技技术背景的开发者&#xff0c;让大家零基础5分钟通过这篇文章就能完全学会亚马逊云科技一个经典的服务开发架构方案。 我将每天介绍一个基于亚马逊云科…...

力扣315.计算右侧小于当前元素的个数

力扣315.计算右侧小于当前元素的个数 离散化 树状数组 const int N 100010;int tr[N],n;class Solution {public:vector<int> countSmaller(vector<int>& nums) {n nums.size();vector<int> tmp(nums);vector<int> res(n);memset(tr,0,sizeo…...

websocket,css动画和css-position、display、区别

一、websocket codereturn {// 用于存储 WebSocket 返回的状态数据statusList: [],},mounted() {this.setupWebSocket();this.startBlinking();},methods: {setupWebSocket() {// 创建 WebSocket 连接const socket = new WebSocket(ws://xxx.xxx:xxx/xxx);// WebSocket 连接成功…...

前端获取视频文件宽高信息和视频时长

安装 yarn add video-metadata-thumbnails | npm install video-metadata-thumbnails引入依赖包 import { getMetadata } from video-metadata-thumbnails使用 if (file.name.includes(mp4)) {if (file) {try {console.log(file)// 获取视频的元数据const metadata await …...

【区块链+医疗健康】基于区块链的药品类监管应用管理系统 | FISCO BCOS应用案例

退热类药品的购药信息及政企互动信息等各项数据的安全性、保密性、真实性&#xff0c;不仅影响着监管部门的科学监管、 有效监管&#xff0c;也影响着企业的经营安全、诚信口碑&#xff0c;是区域药品安全监管工作进展的直观体现。 江苏数予科技有限公司构建基于区块链的药品类…...

MySQL4多表查询 内连接

多表查询 数据准备 CREATE DATABASE db4; USE db4; -- 创建部门表 create table if not exists dept(deptno varchar(20) primary key , -- 部门号name varchar(20) -- 部门名字 );-- 创建员工表 create table if not exists emp(eid varchar(20) primary key , -- 员工编号…...

Java -数组

1.一维数组 1.1数组定义 public class Main {public static void main(String[] args) throws Exception {int[] a new int[10];float[] f new float[10];double[] d new double[10];char[] c new char[10];} } 1.2 初始化 public class Main {public static void main(S…...

.prettierrc.js 有什么用

.prettierrc.js 是 Prettier 代码格式化工具的配置文件。 1. 作用 Prettier 是一个用于统一代码风格的工具&#xff0c;它可以使代码更具可读性和一致性。.prettierrc.js 文件用于自定义 Prettier 的格式化规则。 通过配置 .prettierrc.js&#xff0c;团队中的开发者可以遵循…...

haproxy七层代理

一.haproxy的基本部署 1.RS上装nginx [rootwebserver1 ~]# dnf install nginx -y 2.再RS上写入测试信息 [rootwebserver1 ~]# echo webserver1 - 172.25.254.10 > /usr/share/nginx/html/index.html [rootwebserver1 ~]# systemctl enable --now nginx [rootwebserver…...

<数据集>柑橘缺陷识别数据集<目标检测>

数据集格式&#xff1a;VOCYOLO格式 图片数量&#xff1a;1290张 标注数量(xml文件个数)&#xff1a;1290 标注数量(txt文件个数)&#xff1a;1290 标注类别数&#xff1a;4 标注类别名称&#xff1a;[Orange-Green-Black-Spot, Orange-Black-Spot, Orange-Canker, Orange…...

Go开发后端和Vue3开发前端的前后端分离框架中自己手戳一个OA流程审批、工作流引擎给新时代一个漂亮便捷的工作流引擎

前言 在软件项目开发中&#xff0c;我们都会接触到流程审批的需要业务&#xff0c;我们以往用的最多就是如下图这种流程编辑引擎插件&#xff1a; 以上截图中的流程工具是不是大家常见的呀&#xff01;感觉很丑拿不出手呀&#xff01;在当前行业内卷及竞争激烈情况下&#xff…...

深入理解 toDto 与 toEntity:结合 Eladmin 框架的最佳实践

在现代软件开发中&#xff0c;尤其是后端开发中&#xff0c;数据传输对象&#xff08;DTO&#xff09;和实体对象的转换是一个常见且重要的操作。理解和正确实现这种转换不仅能提高代码的可维护性&#xff0c;还能提升应用的性能和安全性。本文将深入探讨 toDto 和 toEntity 方…...

生成对抗网络(GAN)实战指南:从原理到图像生成

1. 生成对抗网络(GAN)初探&#xff1a;当画家遇上鉴定师 第一次听说生成对抗网络时&#xff0c;我脑海中浮现的是一个有趣的场景&#xff1a;有个刚入行的画家在拼命模仿梵高的画作&#xff0c;而旁边坐着一位经验丰富的艺术鉴定师。画家每完成一幅仿作&#xff0c;鉴定师就会…...

实战指南:基于快马平台开发在线教育vc16188视频交互系统

实战指南&#xff1a;基于快马平台开发在线教育vc16188视频交互系统 最近在做一个在线教育项目&#xff0c;需要实现视频课程的智能分段和交互功能。经过一番摸索&#xff0c;发现用InsCode(快马)平台可以快速搭建这样一个系统。下面分享下我的实战经验。 系统架构设计 前端部…...

C++性能调优第一步:手把手教你用QueryPerformanceCounter和chrono精准测量微秒级函数耗时

C性能调优实战&#xff1a;微秒级耗时测量的艺术与科学 在追求极致性能的世界里&#xff0c;每一微秒都至关重要。高频交易系统中&#xff0c;1微秒的延迟可能意味着数百万美元的损失&#xff1b;游戏引擎里&#xff0c;帧间时间的细微波动会导致画面卡顿&#xff1b;实时音视频…...

硬件狗狗全方位硬件监控:实时掌握电脑运行状态

对于电脑用户来说&#xff0c;了解硬件的运行状态是非常重要的。 通过监控硬件的使用情况&#xff0c;用户可以及时发现问题&#xff0c;避免硬件过载&#xff0c;还可以优化系统的性能。 硬件狗狗在这方面提供了全面而实用的功能&#xff0c;帮助用户实时掌握电脑的运行状态…...

FXGL:JavaFX游戏开发的现代化架构实践

FXGL&#xff1a;JavaFX游戏开发的现代化架构实践 【免费下载链接】FXGL Java / JavaFX / Kotlin Game Library (Engine) 项目地址: https://gitcode.com/gh_mirrors/fx/FXGL FXGL是一个基于JavaFX构建的现代化游戏开发框架&#xff0c;为Java开发者提供了完整的游戏开发…...

如何用Dism++解决Windows系统维护难题:高效全面的实用指南

如何用Dism解决Windows系统维护难题&#xff1a;高效全面的实用指南 【免费下载链接】Dism-Multi-language Dism Multi-language Support & BUG Report 项目地址: https://gitcode.com/gh_mirrors/di/Dism-Multi-language Windows系统使用一段时间后&#xff0c;往往…...

光伏电站正在“看不见”地亏钱:峰值报不准、爬坡跟不上、回落抓不住,问题到底出在哪?

关键词&#xff1a; 光伏功率预测、新能源功率预测、电力现货交易、爬坡事件、辐照度预测2026年的春天&#xff0c;光伏电站的运营者们发现了一个越来越尴尬的现象&#xff1a;设备越换越高效&#xff0c;组件越装越密&#xff0c;电表转得越来越快——但月底一算账&#xff0c…...

保姆级教程:用Python解析大疆无人机照片EXIF,实现正射影像像素坐标定位

大疆无人机正射影像像素级地理定位实战指南 从航拍到测绘&#xff1a;解锁影像元数据的空间密码 当大疆无人机的快门按下瞬间&#xff0c;传感器记录的远不止是可见光信息。每一张正射影像都像被精心封装的时间胶囊&#xff0c;内部藏着完整的空间坐标、飞行姿态和相机参数。这…...

MaaYuan使用指南

MaaYuan使用指南 【免费下载链接】MaaYuan 代号鸢 / 如鸢 一键长草小助手 项目地址: https://gitcode.com/gh_mirrors/ma/MaaYuan MaaYuan是一款基于MaaFramework开发的跨平台游戏自动化工具&#xff0c;专为《代号鸢》和《如鸢》玩家设计。通过图像识别和模拟控制技术&…...

Unity3D WEBGL避坑指南:从AssetBundle初始化到PDF显示的全流程解决方案

Unity3D WEBGL开发实战&#xff1a;AssetBundle与PDF显示的深度优化方案 在跨平台游戏开发领域&#xff0c;Unity3D的WEBGL导出功能为开发者打开了浏览器端部署的大门。然而&#xff0c;从桌面端到WEBGL平台的转换远非简单的导出操作&#xff0c;特别是当项目涉及AssetBundle动…...