Files
icq/config/prosody.cfg.lua
T
estorozhenko 49df2ad681 docs: push-уведомления — отложено, варианты в WALKTHROUGH 10.4
- Попытка включить mod_unified_push (apt prosody-modules) → НЕ грузится: требует util.jwt (API 0.12), контейнер 0.11.9. Откатил, error из логов ушёл.
- Зафиксированы 2 варианта для будущей реализации: (1) XEP-0357 mod_push/mod_push_offline/mod_push_muc из hg (нативный push для Conversations/Monal, под 0.11); (2) UnifiedPush после апгрейда до 0.12.
- Уточнён комментарий mod_admin_web в конфиге (XMPP ad-hoc, НЕ веб-панель).
2026-08-29 08:45:23 +00:00

124 lines
5.7 KiB
Lua

-- Prosody configuration for ICQ (nixg.ru)
-- Домен: nixg.ru (JID юзеров user@nixg.ru)
-- Веб-клиент (Converse.js) остаётся на https://chat.nixg.ru, WS → xmpp.nixg.ru
-- Каталог: /opt/icq
-- Пути
data_path = "/var/lib/prosody"
plugin_paths = { "/etc/prosody/modules" }
-- Логи (глобальная секция)
log = {
info = "/var/log/prosody/prosody.log";
error = "/var/log/prosody/prosody.err";
-- info = "console"; -- раскомментируй для вывода в docker logs
}
-- Администрирование
admins = { "admin@nixg.ru" }
-- Модули (включая стандартные)
modules_enabled = {
-- Generally required
"roster"; -- Список контактов
"saslauth"; -- Аутентификация
"tls"; -- TLS
"dialback"; -- s2s dialback
"disco"; -- Service discovery
"carbons"; -- Копии сообщений на все устройства
"pep"; -- Personal eventing (OMEMO, avatars)
"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"; -- админ-команды
"admin_web"; -- XMPP ad-hoc админ-команды (adminsub; НЕ веб-панель — см. разд. 10 WALKTHROUGH)
"bosh"; -- BOSH (HTTP long-polling, для mod_admin_web)
-- Messaging / Chat
"csi"; -- Client State Indication (экономия батареи)
-- "smacks"; -- Stream Management (community-модуль, пока нет)
"offline"; -- Хранение оффлайн-сообщений
"presence"; -- Присутствие
-- Message archive
"mam"; -- Message Archive Management (XEP-0313)
-- HTTP (для веб-клиентов)
"websocket"; -- WebSocket для веб-клиентов
-- Прочее
"server_contact_info"; -- Контактная информация сервера
}
-- Отключить модули, которые не нужны/мешают
modules_disabled = {
-- "s2s"; -- (раскомментируй, чтобы отключить федерацию, но она нужна!)
}
-- Порты и интерфейсы
c2s_ports = { 5222 }
s2s_ports = { 5269 }
-- Слушать на всех интерфейсах (в контейнере)
c2s_interface = "0.0.0.0"
s2s_interface = "0.0.0.0"
-- HTTP (websocket + BOSH + upload)
http_ports = { 5280 }
http_interfaces = { "0.0.0.0" }
-- HTTPS-порт для HTTP Upload (mod_http_upload требует TLS) — с LE-сертификатом
https_ports = { 5281 }
https_interfaces = { "0.0.0.0" }
-- Глобальный SSL для HTTPS-порта (LE-серт nixg.ru, SAN: nixg.ru + xmpp.nixg.ru)
ssl = {
key = "/etc/prosody/certs/nixg.ru.key";
certificate = "/etc/prosody/certs/nixg.ru.crt";
}
-- Разрешить WebSocket-подключения с нашего веб-клиента (страница на chat.nixg.ru)
cross_domain_websocket = { "https://chat.nixg.ru", "https://xmpp.nixg.ru" }
-- Домен (JID юзеров: user@nixg.ru)
VirtualHost "nixg.ru"
-- Аутентификация: внутренняя (mod_auth_internal_hashed)
authentication = "internal_hashed"
-- Хранилище (встроенное, файлы)
storage = "internal"
-- Включить регистрацию (in-band)
allow_registration = true
-- TLS: сертификаты для домена (для c2s/s2s 5222/5269)
ssl = {
key = "/etc/prosody/certs/nixg.ru.key";
certificate = "/etc/prosody/certs/nixg.ru.crt";
-- Для федерации нужен полный chain + private key
}
-- MUC-компонент (групповые чаты) conference.nixg.ru
Component "conference.nixg.ru" "muc"
name = "ICQ Family Chat"
restrict_room_creation = false -- все могут создавать комнаты
max_history_messages = 200
-- Доп. модули MUC: vcard_muc (аватары комнат, XEP-0153 в MUC), muc_moderation (XEP-0425 модерация)
modules = { "vcard_muc", "muc_moderation" }
-- HTTP Upload (XEP-0363) — mod_http_upload (community-модуль, установлен из apt prosody-modules,
-- скопирован в ./modules/mod_http_upload/. Работает как Component (НЕ в modules_enabled).
Component "upload.nixg.ru" "http_upload"
http_upload_file_size_limit = 10 * 1024 * 1024 -- 10 MB (лимит HTTP-парсера Prosody)
http_upload_expire_after = 7 * 24 * 60 * 60 -- хранить 7 дней
http_upload_require_authentication = true -- только авторизованные
http_upload_path = "/var/lib/prosody/http_upload"
-- Внешний URL (без :5281) — Caddy на vps02 проксирует upload.nixg.ru → 10.8.0.2:5281
http_external_url = "https://upload.nixg.ru"
-- Мосты (mautrix) добавим на Этапе 3 — компоненты регистрируются через
-- Prosody mod_component / отдельную конфигурацию. Пока не подключаем.
-- Component "telegram.chat.nixg.ru" "xmpp_component"
-- Component "whatsapp.chat.nixg.ru" "xmpp_component"