Jitsi 见面会 是一个 开源视频会议软件 您可以自行托管。 它是 Google Meet 或 Zoom 等专有服务的良好替代品。
Jitsi Meet 可以与其他开源工具集成,例如 下一云, 火箭聊天 或 Synapse(矩阵实现)为您提供全面的解决方案。
有一些限制, Jitsi Meet 可以免费使用 在他们的服务器上。 对于高级功能,您可以选择 Jitsi 即服务 来自 Jitsi 开发人员。 您也可以将其部署在您自己的服务器上? 我会在自托管部分帮助你。
使用 Docker 部署 Jitsi Meet
使用 Docker 部署 Jitsi 非常简单。 我将向您展示 Jitsi 部署的步骤。 我将介绍反向代理和常规方法。
先决条件
在继续之前,有一些事情需要注意。
Docker和容器的基础知识: 这不是必须的,就像我们所有的教程一样,但很高兴拥有。
自定义域: 此部署不会提供 IP 服务,也就是说,我将引导您完成在具有 HTTPS 的实际域(或子域)下的部署。 像 HTTP:// 这样的部署[some IP]:[some port] 适合测试,但在这些指南中没有任何用途。
Linux 服务器,无论是物理服务器还是云服务器: 我建议使用 锂节点 但您可以使用任何其他提供商,例如 数字海洋、Vultr 或 UpCloud。 在 AWS 下部署可能是非常特定于平台的,我不会在这里讨论。
按照 官方推荐,具有 4 GB 内存和双核处理器的服务器将适合大约 10-20 个用户。
可选地,我们的反向代理设置: 如果你想把它放在反向代理后面,这样你就可以在同一台服务器上部署多个 Web 服务。 如果 Jitsi 是唯一将在服务器上运行的应用程序,则不需要反向代理。
更改 DNS 记录
拥有一个域名是不够的。 您需要确保 DNS 记录也到位。 对于本教程,我将使用一个我已经使用了很长时间的域 openexperiment.in。
确保将域的所有实例从示例更改为您的域。
一旦你有了一个域并部署了一个服务器(不是用 Jitsi,只是服务器),收集服务器的 IP 地址(IPv4 和 IPv6 两者),并分别为每个添加 A 和 AAAA 记录。 完成后,您还需要添加 CNAME 记录。 您可以添加特定的子域或像我一样添加通配符条目(如果您将其托管在主域上)。
如果您仍然感到困惑,请参阅下面的屏幕截图。 我模糊了实际的 IP 地址(我很隐秘……嘘)。
您可能需要等待一段时间才能使 DNS 更改生效。 您可以使用 ping 命令进行检查。
ping
域,直到您看到像这样的服务器的 IP 地址 –
❯ ping openexperiment.in -4
PING openexperiment.in (xxx.xxx.xxx.xxx) 56(84) bytes of data.
^C64 bytes from xxx.xxx.xxx.xxx: icmp_seq=1 ttl=55 time=36.6 ms
--- openexperiment.in ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 36.610/36.610/36.610/0.000 ms
您还可以使用 dig 命令检查 DNS 记录。
dig openexperiment.in +nocmd +nocomments
您应该会看到类似以下内容
❯ dig openexperiment.in +nocmd +nocomments
;openexperiment.in. IN A
openexperiment.in. 2970 IN A xxx.xxx.xxx.xxx
;; Query time: 1 msec
;; SERVER: 127.0.0.53#53(127.0.0.53)
;; WHEN: Sun Mar 07 11:38:20 IST 2021
;; MSG SIZE rcvd: 62
了解 Jitsi Meet 组件
在继续前进之前,我相信了解这些组件是什么、为什么它们很重要以及您将在此部署中使用哪些组件会很有帮助。
如果你不关心这个,显然跳到本文的部署部分。
jitsi/网络:最新: 您在浏览器上看到的 Jitsi Meet 的 Web UI 位于此图像中。 连同用于网络服务器的 Nginx。
jitsi/韵律:最新: 这是 XMPP 服务器,负责音频/视频通话或文本聊天。 这可以说是Jitsi的心脏。
jitsi/jicofo:最新: XMPP 服务器的焦点组件,负责管理参与者和视频桥之间的视频会话,换句话说,这就是管理会议的东西。 这是 Jitsi 的另一个强制性组件。
jitsi/jvb:最新: Jitsi Videobridge 负责将传入的视频通道转发给所有参与者。
这些是运行 Jitsi 部署的必需部分,我只会在本指南中使用它们。 还有其他组件,例如 Jibri、Jigasi,但由于它们是可选的,所以我暂时将它们排除在外。
读够了,是时候动手做一些工作了。
如果您打算将其与反向代理一起部署,请确保在使用此代理之前进行了设置。
克隆 docker-jitsi-meet 存储库
这个存储库 包含我们将需要进行此部署的所有文件(显然有一些修改)。
克隆存储库并更改您的 PWD
到克隆的目录。
git clone https://github.com/jitsi/docker-jitsi-meet jitsi
cd jitsi
开始修改环境变量
由于您使用的是 Docker,因此您必须修改一些环境变量。 首先复制 example 配置文件。
cp env.example .env
现在打开 .env
文件,然后查看前 6 个环境变量。
由于所有这些组件基本上都是在容器中运行的某种服务器,因此您需要一种方法来确保服务器确实是它们所说的那样。 出于这个原因,这些秘密就在那里。 客户端必须在建立连接之前先进行身份验证。
您不必自己设置这些秘密。 那里已经有一个脚本可以让您的生活更轻松。 在存储库目录中运行以下命令
./gen-passwords.sh
运行后,您可以重新打开 .env
文件,并应填写秘密。
您不需要此部署的所有这些秘密,但请保留它们,无需删除或注释掉它们。
现在这里将分为三个小节,一个用于公共变量分配(反向代理或无反向代理),另一个用于反向代理,最后一个用于无反向代理。 所有这些都转到 .env 文件。
公共变量(用于反向代理和非反向代理方法)
以下是两种部署方法共有的变量,您可以将它们添加到 .env 文件中。
配置: 您可以更改它的值,但这不是必需的。 该变量的值是主机中的一个目录,该目录将绑定安装在容器中以存储持久数据。 所以修改它完全取决于你。
PUBLIC_URL: Jitsi 域将被托管(使用协议)。 在我的情况下,价值是 https://meet.openexperiment.in
ENABLE_AUTH: 你要认证吗? 通过身份验证,用户必须输入用户名和密码才能加入或创建会议。 如果是这样,请取消注释此行并确保将其设置为 1。
AUTH_TYPE: 如果您将 ENABLE_AUTH 设置为 1,则将此设置为“内部”。 在本文中,我不会讨论 LDAP 或 JWT 身份验证。
RESTART_POLICY: 容器的重启策略。 默认是 unless-stopped
. 我更喜欢 always
或者 on-failure
.
郑州: 将此设置为系统的时区。 由于我的服务器在 UTC 时区运行,我不必更改它。
非反向代理方法的变量
如果您不使用反向代理,则应将这些变量添加到 .env 文件中:
HTTP_PORT, HTTPS_PORT: 将它们分别更改为 80 和 443。 这些是您的容器将绑定到的端口。
ENABLE_LETSENCRYPT: 将此设置为 1,您需要 HTTPS。
LETSENCRYPT_DOMAIN & LETSENCRYPT_EMAIL: 您的实例将托管的域,以及您用于证书相关通知的电子邮件 ID。
ENABLE_HTTP_REDIRECT: 将此设置为 1,HTTP 流量必须中继到 HTTPS。
ENABLE_HSTS: 这将在某种程度上强制浏览器使用受信任的连接。 将此设置为 1。
反向代理所需的变量
如果您选择了反向代理,则应将这些变量添加到 .env 文件中:
DISABLE_HTTPS: 由于 HTTPS 将由您的反向代理的 Web 服务器处理,因此您不需要从 Jitsi 本身启用 HTTPS。
ENABLE_HTTP_REDIRECT: 没有必要,将其设置为 0。HTTP/HTTPS 将由我们的反向代理处理。
VIRTUAL_HOST & LETSENCRYPT_HOST: 这些变量默认情况下不存在。 添加这些,对于值,使用将托管您的实例的域名。 欲了解更多信息,请阅读我的 尊敬的代理人 文章。
[ONLY IF USING REVERSE PROXY] 修改撰写文件
打开文件 docker-compose.yml
在您最喜欢的文本编辑器中。
唯一需要编辑的服务定义是 Web 服务。 根据以下列表进行修改
- 删除端口部分。 您不再需要将容器中的任何端口绑定到主机。
- 添加另一个网络,与反向代理配置中使用的网络相同。
- 像这样在撰写文件的末尾定义网络
networks:
net:
external: true
假设网络名称是 net
,将其更改为您设置的任何内容。
- 添加环境变量
VIRTUAL_HOST
&LETSENCRYPT_HOST
像这样
- VIRTUAL_HOST
- LETSENCRYPT_HOST
部署容器
完成所有编辑后,您可以部署 Jitsi docker-compose up -d
命令。
如果您选择了反向代理方法,请确保您的反向代理容器正在运行。
您几乎完成了 Jitsi Meet 部署,除了最后一步是为您的 Jitsi 服务器创建经过身份验证的用户。
创建经过身份验证的用户
如果您启用了身份验证(使用 ENABLE_AUTH
),您需要先注册用户,然后才能使用 Jitsi。
这样做很简单。 转到克隆的存储库目录并运行类似于以下的命令
docker-compose exec prosody prosodyctl --config=/config/prosody.cfg.lua register [USERNAME] meet.jitsi [PASSWORD]
您还可以使用 unregister
像我在这里显示的命令:
docker-compose exec prosody prosodyctl --config=/config/prosody.cfg.lua unregister [USERNAME] meet.jitsi
最后,您可以继续在 Web 浏览器中的指定 URL 上检查 Jitsi Meet 前端:
仍有问题或建议? 请随时发表评论。
如果您喜欢本教程并希望看到我们制作更多此类有用的内容,请考虑选择 Pro 会员资格或 做一次捐赠 支持我们:)