-- Тестовый конфиг Prosody 13.0 (параллельный стенд для проверки mod_privilege) -- Домен: test.nixg.ru · Порты: 15222 (c2s) / 15269 (s2s) / 15280 (http) -- Запущен отдельно от прода (icq-prosody на 5222/5269/5280) data_path = "/var/lib/prosody" plugin_paths = { "/etc/prosody/modules" } log = { debug = "/var/log/prosody/prosody.log"; error = "/var/log/prosody/prosody.err"; } admins = { "admin@test.nixg.ru" } modules_enabled = { "roster"; -- Список контактов "saslauth"; -- Аутентификация "tls"; -- TLS "dialback"; -- s2s dialback "disco"; -- Service discovery "carbons"; -- Копии сообщений на все устройства "pep"; -- Personal eventing (OMEMO, avatars) "admin_shell"; -- временно: prosodyctl shell для диагностики "private"; -- Приватные хранилища XML "blocklist"; -- Чёрный список "vcard4"; -- vCard 4 "vcard_legacy"; -- vCard 2 "version"; -- Версия сервера "uptime"; -- Время работы "time"; -- Время "ping"; -- XMPP Ping "register"; -- In-band registration (для теста можно включить) "adhoc"; -- ad-hoc команды "admin_adhoc"; -- админ-команды "bosh"; -- BOSH "csi"; -- Client State Indication "offline"; -- Хранение оффлайн-сообщений "presence"; -- Присутствие "mam"; -- Message Archive Management "websocket"; -- WebSocket "server_contact_info"; } -- Порты (локальные, чтобы не конфликтовать с продом icq-prosody) c2s_ports = { 15222 } s2s_ports = { 15269 } c2s_interface = "0.0.0.0" s2s_interface = "0.0.0.0" http_ports = { 15280 } http_interfaces = { "0.0.0.0" } -- Компоненты (XEP-0114) — в 13.0 сервис 'component' слушает только default 5347 -- (опция component_ports удалена из кода 13.0). Проброс: хост 15347 -> контейнер 5347. -- ВАЖНО: (1) внешний компонент объявляется блоком Component БЕЗ модуля, иначе -- mod_component не загрузится и порт 5347 не будет слушаться; -- (2) component_interfaces обязана быть в ГЛОБАЛЬНОЙ секции (выше VirtualHost/Component), -- иначе Prosody молча игнорирует её и listener висит на 127.0.0.1. component_interfaces = { "0.0.0.0" } Component "telegram.test.nixg.ru" component_secret = "test-secret-telegram-123" modules_enabled = { "privilege" } -- чтобы mod_privilege реагировал на component-authenticated -- Тестовый домен VirtualHost "test.nixg.ru" authentication = "internal_hashed" storage = "internal" allow_registration = true -- для теста можно регистрироваться in-band modules_enabled = { "privilege" } -- XEP-0356: модуль должен жить на VirtualHost, чтобы видеть privileged_entities -- Привилегии для проверки mod_privilege (XEP-0356) privileged_entities = { ["telegram.test.nixg.ru"] = { roster = "both"; message = "outgoing"; iq = { ["http://jabber.org/protocol/pubsub"] = "both"; ["http://jabber.org/protocol/pubsub#owner"] = "set"; }; }; } -- PubSub как компонент (XEP-0060; в 13.0 модуль pubsub в VirtualHost не грузится) Component "pubsub.test.nixg.ru" "pubsub" modules_enabled = { "pubsub" }