Подразумевается, что вы знаете, что такое Jitsi Meet и для чего он нужен. Ниже я приведу инструкции по установке и настройке, которые решают проблему несовместимости Lua 5.2 и Lua 5.1. На возможных проблемах с сертификатами я останавливаться не буду, если у вас вдруг что-то идёт не так — напишите в комментариях, попробуем разобраться вместе. Как правило, установка проходит без проблем, они начинаются дальше. 🙂
Итак, поехали:
wget -qO - https://download.jitsi.org/jitsi-key.gpg.key | apt-key add -
sh -c "echo 'deb https://download.jitsi.org stable/' > /etc/apt/sources.list.d/jitsi-stable.list"
apt-get -y update && apt-get -y install jitsi-meet certbot
apt install git cmake luarocks libssl-dev liblua5.2
wget http://packages.prosody.im/debian/pool/main/p/prosody-trunk/prosody-trunk_1nightly1273-1~buster_amd64.deb
dpkg -i prosody-trunk_1nightly1273-1~buster_amd64.deb
apt-get install jitsi-meet-tokens prosody-modules lua5.2 liblua5.2 luarocks libssl-dev
luarocks install basexx
Добавим в конец файла /etc/prosody/prosody.cfg.lua строчку:
Include "conf.d/*.cfg.lua"
Также отключим обязательное шифрование между клиентом и сервером:
c2s_require_encryption = false
Поставим модуль lua-cjson:
luarocks download lua-cjson
luarocks unpack lua-cjson-2.1.0.6-1.src.rock
В файле lua-cjson-2.1.0.6-1/lua-cjson/lua_cjson.c поменяем строку 743:
len = lua_objlen(l, -1);
на
len = lua_rawlen(l, -1);
И выполним установку модуля:
cd lua-cjson-2.1.0.6-1/lua-cjson
luarocks make
Требуемый модуль luajwtjitsi не работает в Debian с Lua 5.1, используем доработанную версию:
cd
git clone https://github.com/ASolomatin/luajwt.git
cd luajwt
Внесём изменения в файл luajwtjitsi-1.3-7.rockspec:
source = {
url = "git://github.com/ASolomatin/luajwt/",
tag = "replace_luacrypto"
}
dependencies = {
"lua >= 5.2",
"luaossl >= 20190731-0",
"lua-cjson >= 2.1.0",
"lbase64 >= 20120807-3"
}
После этого выполним установку модуля:
luarocks install luajwtjitsi-1.3-7.rockspec
После всех этих манипуляций перезапустим prosody:
systemctl restart prosody
Убедимся, что в /var/log/prosody/prosody.err не ошибок. Теперь у вас должна заработать аутентификация с помощью JWT токенов.
Более подробная документация про токены — https://github.com/jitsi/lib-jitsi-meet/blob/master/doc/tokens.md.