
(封面图源Jitsi官网
TL;DR
最近有需要多设备同时音视频串流的需求,但市场上的会议软件对这类需求的限制有点多,看了一圈,决定搭一个jitsi meet。这里我们使用docker部署,不部署到裸机上。
开始部署
为docker compose设置代理
假设你的服务器127.0.0.1:1145有一个http代理服务,编辑/etc/systemd/system/docker.service.d/http-proxy.conf文件,写入如下内容:
1 2 3 4
| [Service] Environment="HTTP_PROXY=http://127.0.0.1:1145" Environment="HTTPS_PROXY=http://127.0.0.1:1145" Environment="NO_PROXY=localhost,127.0.0.1"
|
准备文件
⚠️注意:
请确保你有一个域名及其证书,不然会出现无法连接到服务的情况。
假设你的域名是example.your.domain。
下载最新构建并将其解压:
1 2
| wget $(wget -q -O - https://api.github.com/repos/jitsi/docker-jitsi-meet/releases/latest | grep zip | cut -d\" -f4) unzip <filename>
|
进入解压好的文件夹,把配置文件复制一份:
然后编辑配置文件.env,按需做出更改,我的更改如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
| # 访问端口,http端口的访问会被自动重定向到https HTTP_PORT=8000 HTTPS_PORT=8443 # 系统时区 TZ=Asia/Shanghai # 你的会议访问入口,就是你从客户端浏览器访问网页的地址,填入你的域名 PUBLIC_URL=https://example.your.domain:10086 # 后端JVM内存限制 JICOFO_MAX_MEMORY=3072m VIDEOBRIDGE_MAX_MEMORY=3072m # 启用主持人密码 ENABLE_AUTH=1 # 允许访客,如果主持人密码和允许访客都启用了,访客会一直在等待界面直到主持人登陆会议 ENABLE_GUESTS=1 # 主持人密码认证方式 AUTH_TYPE=internal # 启用websocket连接 ENABLE_XMPP_WEBSOCKET=0
|
然后生成一下其他的密钥并创建配置文件夹:
1 2
| ./gen-passwords.sh mkdir -p ~/.jitsi-meet-cfg/{web,transcripts,prosody/config,prosody/prosody-plugins-custom,jicofo,jvb,jigasi,jibri}
|
接下来用nginx反代到HTTPS_PORT,注意是HTTPS不是HTTP,并添加你自己的域名证书。
用docker开始部署!
添加和删除主持人
首先要进入jitsi-docker-main-prosody容器的命令行:
⚠️注意:
这里容器具体名字还需要二次确认,因为在实际部署的时候容器后面可能会出现随机数字,如-1、_1之类的。
1
| docker exec -it jitsi-docker-main-prosody /bin/bash
|
添加主持人:
1
| prosodyctl --config /config/prosody.cfg.lua register admin meet.jitsi mySecurePass123
|
删除主持人:
1
| prosodyctl --config /config/prosody.cfg.lua unregister admin meet.jitsi
|