发布于 2026-01-06 0 阅读
0

自托管 Jitsi 服务器,带身份验证,新手 :D

自托管 Jitsi 服务器,带身份验证

菜鸟 :D

2021年3月更新:本教程仍然适用于当前的Jitsi版本,但配置文件中的一些新设置尚未更新。


随着新冠病毒的传播,越来越多的人待在家里,对许多人来说,最关键的事情之一就是能够与家人、朋友和同事保持联系。

我们Ape Unit公司已经习惯了远程和分布式办公,但目前的情况意味着我们必须付出更多努力……

由于我们参与开源项目,并且我们已经在使用Jitsi ,因此我们选择部署一个 Jitsi 实例供内部使用。由于Jitsi 社区论坛上有很多关于安装和配置的需求,这里提供一个关于如何运行自己的服务器的分步教程。

完成本教程后,您将拥有自己的已启用身份验证的 Jisti 服务器。

开始之前

本教程假设您具备技术方面的基本知识,特别是假设您熟悉 linux shell、ssh和 dns。

成本

该方案的运行成本取决于服务器选择和域名,在本例中,我们将使用Hetzner 云实例,起价为 2.49 欧元/月。

话不多说,让我们开始吧!

1. 设置新服务器(使用 Hetzner)

登录(或在 Hetzner 上创建帐户),然后:

  • 前往云端主页
  • 选择你想要的项目(通常情况下Default
  • 点击“添加服务器”

在“创建服务器”页面中,请确保

  • 选择Ubuntu 20.04作为镜像(第 2 点)
  • 添加您的公钥(第 7 点)

然后点击“创建并立即购买”。

如果您添加了 SSH 密钥,请确保已在机器的 SSH 配置中启用它(更多信息请参见此处)。如果您未添加 SSH 密钥,您将收到一封包含服务器 root 密码的电子邮件,您需要在首次登录时更改该密码。另外,公钥认证比密码认证更可取

服务器创建只需一分钟或更短时间,完成后请记下服务器的IP 地址。

#2. 将域名指向新创建的服务器

在这一步中,我们假设您已经注册了一个域名(您可以在Namecheap上注册一个)。在本教程中,我们将使用该域名apeunit.test作为我们的域名。

在您的域名 DNS 配置中添加以下记录:

  • 类型:A
  • 主持人:@
  • 值:IP 地址(来自 Hetzner 服务器)

注意:DNS 解析可能需要几分钟时间。

#3. Jitsi 安装

服务器启动并运行后,我们来设置一下!
如果之前的步骤都顺利,您应该可以使用以下命令登录服务器:

$ ssh root@apeunit.test
The authenticity of host 'apeunit.test (10.0.0.1)' can't be established.
ECDSA key fingerprint is SHA256:Q1rLmH7vuBalRJGv7sasTJy+ZtS3yOf4A34artGjUI.
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
Warning: Permanently added 'apeunit.test,10.0.0.1' (ECDSA) to the list of known hosts.
Welcome to Ubuntu 18.04.4 LTS (GNU/Linux 4.15.0-91-generic x86_64)

 * Documentation:  https://help.ubuntu.com
 * Management:     https://landscape.canonical.com
 * Support:        https://ubuntu.com/advantage
root@server:~#
Enter fullscreen mode Exit fullscreen mode

现在我们可以开始安装 Jitsi 了(文档在此)。

首先,我们来确保系统是最新的。

apt update
apt upgrade -y
Enter fullscreen mode Exit fullscreen mode

然后安装 nginx

apt install nginx -y
Enter fullscreen mode Exit fullscreen mode

现在我们可以添加 Jitsi 软件仓库并安装 Jitsi 组件。安装过程中,系统会提示您输入要使用的域名,此时请输入您在步骤 2 中选择/注册的域名。第二个问题是您是否要生成自签名证书或提供您自己的证书;请选择默认选项(生成自签名证书)。

echo 'deb https://download.jitsi.org stable/' >> /etc/apt/sources.list.d/jitsi-stable.list
wget -qO -  https://download.jitsi.org/jitsi-key.gpg.key | apt-key add -
apt update && apt install jitsi-meet -y
Enter fullscreen mode Exit fullscreen mode

最后,让我们向Let's Encrypt申请我们域名的证书。

/usr/share/jitsi-meet/scripts/install-letsencrypt-cert.sh
Enter fullscreen mode Exit fullscreen mode

要验证安装是否成功,请打开浏览器并在地址栏中输入您的域名,Jitsi 现在应该可以正常运行了。

确认安装正常后,接下来需要配置防火墙,以避免服务器暴露在外。我们将使用以下防火墙ufw

ufw allow ssh
ufw allow http 
ufw allow https 
ufw allow 10000/udp
ufw enable
Enter fullscreen mode Exit fullscreen mode

#4 启用 Jitsi 身份验证

启用身份验证只需编辑三个文件:

  • /etc/jitsi/meet/apeunit.test-config.js
  • /etc/prosody/conf.avail/apeunit.test.cfg.lua
  • /etc/jitsi/jicofo/sip-communicator.properties

注意:前两个文件名中,请将apeunit.test文件名中的域名部分替换为您的域名。

安全域的官方文档详细解释了这些更改,但以下是已配置的文件:

我已经把修改后的文件发布在这里:

但这些参数必须根据您的域名进行更改,方法如下。首先,设置一个包含您域名的变量:

export JITSI_DOMAIN="your_domain.com"
Enter fullscreen mode Exit fullscreen mode

然后更新会议配置文件:

curl  https://gist.githubusercontent.com/noandrea/5ff6b212273af95103996c0e71f0cdf2/raw/d14979d5b31af324c5823b3d3c8683a6c762f518/apeunit.test-config.js -s | \
sed  "s/apeunit.test/$JITSI_DOMAIN/g" \
> /etc/jitsi/meet/$JITSI_DOMAIN-config.js
Enter fullscreen mode Exit fullscreen mode

然后是韵律配置文件:

curl https://gist.githubusercontent.com/noandrea/5ff6b212273af95103996c0e71f0cdf2/raw/d14979d5b31af324c5823b3d3c8683a6c762f518/apeunit.test.cfg.lua -s | \
sed  "s/apeunit.test/$JITSI_DOMAIN/g" | \
sed  "s/JICOFO_SECRET/$(grep -e '^JICOFO_SECRET=.*' /etc/jitsi/jicofo/config | cut -d '=' -f2)/g" | \
sed  "s/TURN_SECRET/$(< /dev/urandom tr -dc _A-Z-a-z-0-9 | head -c${1:-8})/g" \
> /etc/prosody/conf.avail/$JITSI_DOMAIN.cfg.lua
Enter fullscreen mode Exit fullscreen mode

最后是 SIP 通信器属性文件:

echo "org.jitsi.jicofo.auth.URL=XMPP:$JITSI_DOMAIN" \
>> /etc/jitsi/jicofo/sip-communicator.properties
Enter fullscreen mode Exit fullscreen mode

完成这一步后,现在就可以创建用户了,使用以下命令prosodyctl register USER DOMAIN PASSWORD;在我们的示例中,我们可以使用以下命令注册用户jane

prosodyctl register jane $JITSI_DOMAIN janepwd
Enter fullscreen mode Exit fullscreen mode

目前没有用户自行注册的选项,您需要通过命令行创建用户。此外,并非所有用户都需要密码,只有创建房​​间的用户才需要密码。

要应用这些更改,最后一步是重启 Jitsi 服务:

systemctl restart jicofo
systemctl restart jitsi-videobridge2
systemctl restart prosody
Enter fullscreen mode Exit fullscreen mode

搞定!现在,多亏了Jitsi ,您可以享受您的私人聊天服务器了!

文章来源:https://dev.to/noandrea/self-hosted-jitsi-server-with-authentication-ie7