JitsiMeet docker 部署及设置 jw 授权
jitsi 是一款开源的视屏会议软件,最大支持 75 人同时在线。本文将介绍如何在 windows 的 docker 中安装和使用 jitsi。
安装步骤
安装 docker-desktop
从 Download Docker Desktop | Docker 下载安装
下载 docker-jitsi-meet
从 latest release 下载安装文件,该文件为源码,下载后解压到自己希望安装的目录即可。
新建所需配置目录
1 | # 从命令行进入到安装的目录,假设目录为:D:\Develop\TestTemp\docker-jitsi-meet-stable-8615 |
在 bash 中,可以使用下列命令创建目录:
1 | mkdir -p ~/.jitsi-meet-cfg/{web,transcripts,prosody/config,prosody/prosody-plugins-custom,jicofo,jvb,jigasi,jibri} |
修改 .env 配置文件
将目录中的 env.example
文件重命名为
.env
,使用记事本打开编辑,以下仅列出修改的部分:
增加 xmpp 密码:
1 | # linux 中,在 .env 目录中执行 |
修改其它配置:
1 | # 修改docker对外暴露的端口 |
启动 docker-compose.yml
docker-compose up -d
防火墙开放端口
docker-jitsi-meeting 中的通信结构如下图所示
80,443/tcp
是 UI 的 web 端口80,443 通过 修改 .env 配置文件 章节进行指定,本文中分别修改为:7080,7043
10000/udp
是 RTP media 端口,即 Jitsi Vedio Bridge 使用的端口
通过以下命令新建防火墙入站规则:
windows 中:
1 | # 开放 tcp |
ubuntu 中:
1 | sudo ufw allow 7043/tcp |
配置端口转发
若服务器位于 NAT 中,需要在 NAT 中配置端口转发,将外网的
80/tcp,443/tcp,10000/udp
端口分别转发到服务器对应的端口上。
配置 nginx 反向代理
有时候外网的80,443
被 nginx 占用了,我们需要设置 nginx
反向代理 jitsi,此时需要将 10000/udp
转发到 docker
所在服务器,然后在 nginx 中添加如下设置:
1 | # nginx.conf 主文件 |
完成上述步骤的设置后,即可通过 https://yourdomain
来进行访问了
jwt 认证
jitsi 默认任何人都可以创建房间,为了使自建的 jitsi 资源不被恶意使用,需要限制创建房间的权限。
通过 修改 .env 配置文件
来添加权限认证,当 ENABLE_AUTH=1
后,只有有合法正确的
jwt
值时,才可以新建房间。
jwt 的 payload 内容如下:
1 | { |
可以通过 JSON Web Tokens -
jwt.io 来生成 token,然后按在 url 后面添加
jwt=your-token
参数来传递授权。
例如:https://your-domain/room-name?jwt=your-token
通过 IFrame 集成进现有系统
可以使用 IFrame API与现有系统进行集成。
加载
external_api
1
<script src='https://<your-domain>/external_api.js'></script>
实例化 api
1
api = new JitsiMeetExternalAPI(domain, options)
- domain 不带协议号(https/http)
- options 见 IFrame API | Jitsi Meet
jitsi 相关镜像简介
base
Debian stable base image with the S6 Overlay for process control and the Jitsi repositories enabled. All other images are based on this one.
base-java
Same as the above, plus Java (OpenJDK).
web
Jitsi Meet web UI, served with nginx.
Jitsi Meet 的 web 界面
prosody
Prosody, the XMPP server.
用于即时通讯的开源库
jicofo
Jicofo, the XMPP focus component.
jvb
Jitsi Videobridge, the video router.
Jitsi 的视屏中转中心,处理视屏流的分发
jigasi
Jigasi, the SIP (audio only) gateway.
jibri
Jibri, the broadcasting infrastructure.
参考
lib-jitsi-meet/doc/tokens.md at master · jitsi/lib-jitsi-meet · GitHub
Self-Hosting Guide - Docker | Jitsi Meet
A tutorial on how to customize the Jitsi meet front end - Meetrix.IO