Skip to main content

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 ,用户加入会议需要等待主持人允许才能进入。