Jitsi
Jitsi 会议,是一个开源的,可以自己部署的会议室解决方案。简单易用,自己部署免费。
如果使用腾讯会议等国内产品,会不安全,有审查,需要实名。使用自建 Jitsi 会议,可以保护安全和隐私。
如果需要线上分享信息,小组聚会,会议,讨论敏感问题,等等,建议使用安全的会议室。避免使用微信,腾讯会议等不安全的产品。
教会成员信息,教会地点,奉献情况,聚会时间等等敏感信息泄漏,会危害教会的安全。
以下教程教你使用 docker 安装视频会议框架 Jitsi ,并配置反向代理。
以下步骤在 ubuntu 24 上成功运行。 需要会 Linux 基本使用,docker 的基本使用,web 服务器基本使用。 需要一台用公网 ip 的服务器,和一个域名,域名解析到服务器 ip
也可以参照官方文档按自己的需要部署:https://jitsi.github.io/handbook/docs/devops-guide/
安装 docker
本教程使用 docker 部署,所以需要先安装 docker
根据自己的操作系统,按照官方文档安装,例如 ubuntu:
https://docs.docker.com/engine/install/ubuntu/
# Add Docker's official GPG key:
sudo apt update
sudo apt install ca-certificates curl
sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc
# Add the repository to Apt sources:
sudo tee /etc/apt/sources.list.d/docker.sources <<EOF
Types: deb
URIs: https://download.docker.com/linux/ubuntu
Suites: $(. /etc/os-release && echo "${UBUNTU_CODENAME:-$VERSION_CODENAME}")
Components: stable
Signed-By: /etc/apt/keyrings/docker.asc
EOF
sudo apt update
# install docker
sudo apt install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
安装 jitsi
https://jitsi.github.io/handbook/docs/devops-guide/devops-guide-docker/
下载并解压
#Download and extract the latest release. DO NOT clone the git repository. See below if you are interested in running test images:
wget $(wget -q -O - https://api.github.com/repos/jitsi/docker-jitsi-meet/releases/latest | grep zip | cut -d\" -f4)
#Unzip the package:
unzip <filename>
#进入文件夹
cd jitsi-docker-jitsi-meet-*
创建 .env 配置文件
#Create a .env file by copying and adjusting env.example:
cp env.example .env
#Set strong passwords in the security section options of .env file by running the following bash script
./gen-passwords.sh
配置 .env 文件
这是我的配置,可以用,也可以根据自己需要配置
(不知道为什么,启用 websocket 会有问题,所以我禁用了)
# 启用反向代理,配置域名
PUBLIC_URL=https://example.com
ENABLE_HTTP_REDIRECT=0
DISABLE_HTTPS=1
ENABLE_LETSENCRYPT=0
# 禁用 websocket
ENABLE_SCTP=1
ENABLE_COLIBRI_WEBSOCKET=0
ENABLE_XMPP_WEBSOCKET=0
# 使用 internal auth ,只有登录用户能创建会议
ENABLE_AUTH=1
AUTH_TYPE=internal
# 匿名用户可以加入会议
ENABLE_LOBBY=1 # 可以设置用户加入后在大厅等待主持人允许才能进入
ENABLE_GUESTS=1
ENABLE_AUTO_OWNER=1
ENABLE_RECORDING=0
创建配置文件夹
#Create required CONFIG directories
#For linux:
mkdir -p ~/.jitsi-meet-cfg/{web,transcripts,prosody/config,prosody/prosody-plugins-custom,jicofo,jvb,jigasi,jibri}
启动 jitsi
docker compose up -d
会启动 4 个容器,分别是
- Jicofo:Jitsi Conference Focus ,管理会议会话
- JVB:Jitsi Video Bridge ,处理音视频流
- Prosody:XMPP 服务器,负责认证和鉴权
- Web:服务器,反向代理,提供静态文件
接下来创建用户,进入 prosody 容器创建用户
docker compose exec prosody /bin/bash
prosodyctl --config /config/prosody.cfg.lua register myuser meet.jitsi abc123
接下来即可使用 myuser 和密码 abc123 登录和创建会议
配置反向代理
我用的 caddy 配置:
域名已经解析到服务器 ip ,并开启服务器 443 端口防火墙。
{
"apps": {
"http": {
"servers": {
"meet_server": {
"listen": [":443"],
"routes": [
{
"match": [
{
"host": ["example.com", "otherdomain.com"]
}
],
"handle": [
{
"handler": "subroute",
"routes": [
{
"match": [
{
"path": ["/xmpp-websocket"]
}
],
"handle": [
{
"handler": "reverse_proxy",
"upstreams": [
{
"dial": "localhost:8000"
}
],
"headers": {
"request": {
"set": {
"Upgrade": ["{http.request.upgrade}"],
"Connection": ["upgrade"]
}
}
},
"transport": {
"protocol": "http",
"versions": ["1.1"]
}
}
]
},
{
"match": [
{
"path": ["/colibri-ws"]
}
],
"handle": [
{
"handler": "reverse_proxy",
"upstreams": [
{
"dial": "localhost:8000"
}
],
"headers": {
"request": {
"set": {
"Upgrade": ["{http.request.upgrade}"],
"Connection": ["upgrade"]
}
}
},
"transport": {
"protocol": "http",
"versions": ["1.1"]
}
}
]
},
{
"match": [
{
"path": ["/*"]
}
],
"handle": [
{
"handler": "reverse_proxy",
"upstreams": [
{
"dial": "localhost:8000"
}
],
"transport": {
"protocol": "http",
"versions": ["1.1"]
}
}
]
}
]
}
]
}
]
}
}
}
}
}
如果用 nginx ,可以参考官方给的 nginx 配置
location /xmpp-websocket {
proxy_pass http://localhost:8000/xmpp-websocket;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
}
location /colibri-ws {
proxy_pass http://localhost:8000/colibri-ws;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
}
location / {
proxy_pass http://localhost:8000/;
proxy_http_version 1.1;
}
反向代理搭建好后即可通过配置的域名访问 jitsi
使用
可以用浏览器加入会议,也可以用客户端
手机 app 下载:https://jitsi.org/downloads/
桌面版客户端下载:https://github.com/jitsi/jitsi-meet-electron
手机使用 app 体验更好,更稳定。PC 端浏览器足够
浏览器进入会议方法:
浏览器打开主页,输入会议室名,例如 aaa ,点击“开始会议”。或者直接输入 网址/会议室名 ,如 https://example.com/aaa
根据提示选择在浏览器中加入(仅手机有提示)
根据提示允许 jitsi 使用摄像头和麦克风
如果配置了 ENABLE_AUTH=1 ,则需要登录才能开启会议室,根据提示登录,或者等待管理员登录开启会议。
app 使用方法:
在设置中配置 Server URL 为自己的域名,如 https://example.com
在 Recent 的输入框里面输入会议名,进入会议
进入会议后下方工具栏可以打开或关闭麦克风和摄像头,建议不发言的人关闭摄像头和麦克风,主持人(Moderator)有较高的权限,例如可以关闭他人的麦克风。还可以共享屏幕,举手,发送文字,设置视图,等等。
对于安全性要求高的会议,可以在 security options 里面设置 enable lobby ,用户加入会议需要等待主持人允许才能进入。