自托管 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:~#
现在我们可以开始安装 Jitsi 了(文档在此)。
首先,我们来确保系统是最新的。
apt update
apt upgrade -y
然后安装 nginx
apt install nginx -y
现在我们可以添加 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
最后,让我们向Let's Encrypt申请我们域名的证书。
/usr/share/jitsi-meet/scripts/install-letsencrypt-cert.sh
要验证安装是否成功,请打开浏览器并在地址栏中输入您的域名,Jitsi 现在应该可以正常运行了。
确认安装正常后,接下来需要配置防火墙,以避免服务器暴露在外。我们将使用以下防火墙ufw:
ufw allow ssh
ufw allow http
ufw allow https
ufw allow 10000/udp
ufw enable
#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文件名中的域名部分替换为您的域名。
安全域的官方文档详细解释了这些更改,但以下是已配置的文件:
我已经把修改后的文件发布在这里:
/etc/jitsi/meet/apeunit.test-config.js/etc/prosody/conf.avail/apeunit.test.cfg.lua/etc/jitsi/jicofo/sip-communicator.properties
但这些参数必须根据您的域名进行更改,方法如下。首先,设置一个包含您域名的变量:
export JITSI_DOMAIN="your_domain.com"
然后更新会议配置文件:
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
然后是韵律配置文件:
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
最后是 SIP 通信器属性文件:
echo "org.jitsi.jicofo.auth.URL=XMPP:$JITSI_DOMAIN" \
>> /etc/jitsi/jicofo/sip-communicator.properties
完成这一步后,现在就可以创建用户了,使用以下命令prosodyctl register USER DOMAIN PASSWORD;在我们的示例中,我们可以使用以下命令注册用户jane:
prosodyctl register jane $JITSI_DOMAIN janepwd
目前没有用户自行注册的选项,您需要通过命令行创建用户。此外,并非所有用户都需要密码,只有创建房间的用户才需要密码。
要应用这些更改,最后一步是重启 Jitsi 服务:
systemctl restart jicofo
systemctl restart jitsi-videobridge2
systemctl restart prosody
搞定!现在,多亏了Jitsi ,您可以享受您的私人聊天服务器了!
文章来源:https://dev.to/noandrea/self-hosted-jitsi-server-with-authentication-ie7