Подразумевается, что вы знаете, что такое 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.
Благодарю. Ваша инструкция очень помогла.