Files
icq/config/prosody.cfg.lua
T

146 lines
6.8 KiB
Lua
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
-- 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"; -- Копии сообщений на все устройства
"privilege"; -- XEP-0356 Privileged Entity (roster sync для мостов Slidge)
"pep"; -- Personal eventing (OMEMO, avatars)
"pubsub"; -- Publish-Subscribe (XEP-0060): ленты, узлы; основа PEP/bookmarks
"private"; -- Приватные хранилища XML
"blocklist"; -- Чёрный список
"vcard4"; -- vCard 4
"vcard_legacy"; -- vCard 2 (для старых клиентов)
"version"; -- Версия сервера
"uptime"; -- Время работы
"time"; -- Время
"ping"; -- XMPP Ping
-- "register"; -- In-band registration ОТКЛЮЧЕНА (allow_registration=false; создание только prosodyctl)
"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" }
-- External components (XEP-0114) для мостов (Slidge/Telegram, затем WhatsApp)
component_ports = { 5347 }
component_interfaces = { "0.0.0.0" }
component_secrets = {
["telegram.nixg.ru"] = "83276db6e870f540163f271d9bd7d3a390530b9ad7b45f58",
}
-- Глобальный 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): создание пользователей только prosodyctl register
allow_registration = false
-- TLS: сертификаты для домена (для c2s/s2s 5222/5269)
ssl = {
key = "/etc/prosody/certs/nixg.ru.key";
certificate = "/etc/prosody/certs/nixg.ru.crt";
-- Для федерации нужен полный chain + private key
}
-- Привилегии для мостов Slidge (XEP-0356): синхронизация ростера + legacy carbons
privileged_entities = {
["telegram.nixg.ru"] = {
roster = "both";
message = "outgoing";
iq = {
["http://jabber.org/protocol/pubsub"] = "both";
["http://jabber.org/protocol/pubsub#owner"] = "set";
["urn:xmpp:http:upload:0"] = "get";
};
};
}
-- 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"
-- Мосты (Slidge) — external component (XEP-0114) для Telegram.
-- Slidge подключается к component_ports (5347) с секретом из component_secrets.
Component "telegram.nixg.ru"
component_secret = "83276db6e870f540163f271d9bd7d3a390530b9ad7b45f58"
modules_enabled = { "disco", "privilege" }