Использованные источники
0. Системные требования
- Firewall с следующими открытыми портами:
- 5000/tcp (передача файлов)
- 5222/tcp (подключение клиента)
- 5269/tcp (федерация, подключение сервера к серверу)
- 5281/tcp (по желанию, но рекомендуется)
Debian 12 с последними обновлениями
Все команды выполняются пользователем root
, если не указано иначе.
1. Установка
Выполните эти команды:
wget https://prosody.im/files/prosody.sources -O/etc/apt/sources.list.d/prosody.sources apt update apt install prosody lua5.4 liblua5.4-0 liblua5.4-dev luarocks certbot usermod -aG shadow prosody usermod -aG ssl-cert prosody luarocks install luaposix git clone https://github.com/devurandom/lua-pam && cd lua-pam make LUA_VERSION=5.4 cp pam.so /usr/lib/ prosodyctl install --server=https://modules.prosody.im/rocks/ mod_auth_pam
2. Настройка
Начните редактировать файл /etc/prosody/prosody.cfg.lua
.
Следуйте этим инструкциям, заменяя example.net
на доменное имя, привязанное к вашему серверу.
Найдите строку, начинающуюся с слова admins
, и добавьте ваше будущее имя пользователя в фигурные скобки подобным образом:
admins = { "admin@example.net" }
Где admin
- это ваше имя пользователя в вашей системе.
Дальше найдите строку --"mam";
и удалите два дефиса, сделайте то же самое с строкой --"turn_external";
, находящейся ниже.
Теперь перейдите к строке authentication = "internal_hashed"
и замените internal_hashed
на pam
.
Перейдите к строке, начинающейся с storage
и поменяйте sql
на internal
(по желанию, в этой инструкции я не рассматриваю настройку с базами данных)
По желанию в строке archive_expires_after = "1w"
замените 1w
на never
, чтобы истории переписок не удалялись каждую неделю.
Найдите строку, начинающуюся с VirtualHost
и замените localhost
на example.net
.
Если вам нужны многопользовательские переписки, на следующей строке добавьте следущее:
Component "muc.lotigara.ru" "muc" modules_enabled = { "muc_mam", "vcard_muc" }
Последнюю строку можете опустить, если вам не нужно сохранение истории многопользовательских переписок.
Если нужна возможность загружать файлы на ваш сервер, дополните конфигурацию следующими строками:
Component "uf.lotigara.ru" "http_file_share" http_file_share_size_limit = 512 * 1024 * 1024 --измеряется в байтах http_file_share_expire_after = 60 * 60 * 24 * 31 * 1000 --измеряется в секундах
В данном случае, лимит размера файла - это 512 МиБ (0,5 ГиБ), а удаляться файлы будут через ~1000 лет. Если требуется изменить какое-либо из этих свойств, смотрите комментарии (в Lua они начинаются с двух дефисов) и пробуйте изменять значения.