253 lines
8.7 KiB
Lua
253 lines
8.7 KiB
Lua
-- ============================================================================
|
|
-- БАЗОВАЯ КОНФИГУРАЦИЯ PROSODY для wthome.ru
|
|
-- ============================================================================
|
|
|
|
-- Данные сервера
|
|
data_path = "/var/lib/prosody"
|
|
|
|
-- Администраторы
|
|
admins = { "wt@wthome.ru" }
|
|
|
|
external_addresses = { "88.204.18.107" }
|
|
|
|
-- Плагины (модули)
|
|
modules_enabled = {
|
|
-- Обязательные модули
|
|
"roster"; -- Список контактов
|
|
"saslauth"; -- Аутентификация
|
|
"tls"; -- Шифрование TLS
|
|
"disco"; -- Service Discovery (нужен для OMEMO)
|
|
--"posix"; -- POSIX функции
|
|
|
|
-- OMEMO и современные клиенты
|
|
"pep_simple"; -- Personal Eventing Protocol (ОБЯЗАТЕЛЬНО для OMEMO!)
|
|
"private"; -- Приватное хранилище
|
|
-- "vcard"; -- Визитные карточки
|
|
"pep";
|
|
"vcard_legacy";
|
|
--"pep_vcard_avatar";
|
|
--"pubsub"; -- Publish-Subscribe
|
|
|
|
-- Синхронизация и история
|
|
"carbons"; -- Message Carbons (синхронизация между устройствами)
|
|
"mam"; -- Message Archive Management (история сообщений)
|
|
"smacks"; -- Stream Management (для мобильных клиентов)
|
|
"csi_simple"; -- Client State Indication (оптимизация для мобильных)
|
|
|
|
-- Звонки (Jingle)
|
|
"turn_external"; -- Внешний TURN сервер для звонков
|
|
|
|
-- Дополнительные возможности
|
|
"register"; -- Регистрация аккаунтов
|
|
"blocklist"; -- Блокировка контактов
|
|
"bookmarks"; -- Закладки для конференций
|
|
"ping"; -- Keep-alive
|
|
"time"; -- Время сервера
|
|
"version"; -- Версия сервера
|
|
"uptime"; -- Время работы сервера
|
|
|
|
-- Web-клиенты
|
|
"websocket"; -- WebSocket для веб-клиентов
|
|
"bosh"; -- BOSH (устаревший, но для совместимости)
|
|
|
|
-- Файлы и медиа
|
|
--"http_file_share"; -- HTTP File Sharing (XEP-0363)
|
|
--"http_upload"; -- HTTP Upload (альтернатива)
|
|
"admin_shell";
|
|
"cloud_notify";
|
|
-- "s2s_auth_dane";
|
|
"s2s";
|
|
"s2s_auth_certs";
|
|
"seclabels";
|
|
"sasl_ssdp";
|
|
"sasl2";
|
|
-- "admin_web";
|
|
}
|
|
|
|
-- ============================================================================
|
|
-- ЛОГИРОВАНИЕ
|
|
-- ============================================================================
|
|
|
|
log = {
|
|
info = "*console";
|
|
error = "*console";
|
|
-- "*syslog"; -- Раскомментировать для syslog
|
|
}
|
|
|
|
-- ============================================================================
|
|
-- ДОПОЛНИТЕЛЬНЫЕ НАСТРОЙКИ БЕЗОПАСНОСТИ
|
|
-- ============================================================================
|
|
|
|
-- Rate limiting
|
|
limits = {
|
|
c2s = {
|
|
rate = "100kb/s";
|
|
};
|
|
s2sin = {
|
|
rate = "300kb/s";
|
|
};
|
|
}
|
|
|
|
security_labels = {
|
|
default_policy = "default";
|
|
policies = {
|
|
["default"] = {
|
|
classifications = {
|
|
{ name = "Unclassified", default = true },
|
|
{ name = "Confidential" },
|
|
{ name = "Secret" },
|
|
{ name = "Top Secret" }
|
|
};
|
|
};
|
|
};
|
|
}
|
|
|
|
vcard_avatar = {
|
|
sync_to_vcard = true;
|
|
sync_to_pep = true;
|
|
}
|
|
|
|
-- Отключаем ненужное
|
|
--modules_disabled = {
|
|
-- "s2s"; -- Отключить федерацию (убрать если нужна связь с другими серверами)
|
|
--}
|
|
|
|
smacks_max_unacked = 100
|
|
smacks_hibernation_time = 300
|
|
allow_unencrypted_plain_auth = false
|
|
|
|
push_notification_with_body = true
|
|
push_notification_with_sender = true
|
|
push_notification_important_body = "New message"
|
|
push_max_devices = 50
|
|
push_max_errors = 32
|
|
push_max_hibernation_timeout = 259200
|
|
|
|
-- Аутентификация
|
|
allow_registration = true -- Отключить публичную регистрацию (безопасность)
|
|
|
|
-- TLS настройки
|
|
c2s_require_encryption = true
|
|
s2s_require_encryption = true
|
|
s2s_secure_auth = true
|
|
|
|
-- Порты
|
|
interfaces = { "0.0.0.0", "::" }
|
|
c2s_ports = { 5222 }
|
|
s2s_ports = { 5269 }
|
|
http_ports = { 5280 }
|
|
https_ports = { 5281 }
|
|
|
|
-- HTTP интерфейсы для файлов и BOSH
|
|
http_interfaces = { "*" }
|
|
https_interfaces = { "*" }
|
|
|
|
-- BOSH/WebSocket настройки
|
|
consider_bosh_secure = true
|
|
consider_websocket_secure = true
|
|
--cross_domain_bosh = true
|
|
--cross_domain_websocket = true
|
|
|
|
http_cors_override = {
|
|
bosh = {
|
|
enabled = true;
|
|
origins = {
|
|
"https://wthome.ru";
|
|
};
|
|
};
|
|
websocket = {
|
|
enabled = true;
|
|
origins = {
|
|
"https://wthome.ru";
|
|
};
|
|
};
|
|
}
|
|
|
|
-- ============================================================================
|
|
-- НАСТРОЙКА ЗВОНКОВ (TURN/STUN)
|
|
-- ============================================================================
|
|
|
|
-- Настройка внешнего TURN сервера для Jingle звонков
|
|
turn_external_host = "turn.wthome.ru" -- или IP сервера
|
|
turn_external_port = 3478
|
|
turn_external_secret = "TEST-ONLY-NOT-A-REAL-SECRET"
|
|
turn_external_ttl = 86400
|
|
|
|
-- Альтернативно: если coturn на том же сервере
|
|
-- turn_external_host = "wthome.ru"
|
|
|
|
-- ============================================================================
|
|
-- НАСТРОЙКА OMEMO (через PEP)
|
|
-- ============================================================================
|
|
|
|
-- PEP настройки для OMEMO
|
|
pep_max_items = 10000
|
|
|
|
-- OMEMO работает через PEP автоматически при включенном mod_pep
|
|
-- Никаких дополнительных настроек не требуется!
|
|
|
|
-- ============================================================================
|
|
-- MAM (История сообщений)
|
|
-- ============================================================================
|
|
|
|
archive_expires_after = "never" -- never delete history archive
|
|
default_archive_policy = true -- Включить архивирование по умолчанию
|
|
|
|
-- ============================================================================
|
|
-- HTTP File Share (отправка файлов)
|
|
-- ============================================================================
|
|
|
|
-- Настройка компонента для файлов (см. ниже в VirtualHost)
|
|
--http_file_share_expires_after = 7 * 24 * 60 * 60 -- 7 дней
|
|
--http_file_share_global_quota = 1024 * 1024 * 1024 * 10 -- 10 GB
|
|
|
|
-- ============================================================================
|
|
-- ВИРТУАЛЬНЫЙ ХОСТ
|
|
-- ============================================================================
|
|
|
|
VirtualHost "wthome.ru"
|
|
authentication = "internal_hashed"
|
|
-- SSL сертификаты (Let's Encrypt или самоподписанные)
|
|
ssl = {
|
|
key = "/etc/prosody/certs/privkey.pem";
|
|
certificate = "/etc/prosody/certs/fullchain.pem";
|
|
}
|
|
|
|
-- Дополнительные модули для этого домена
|
|
modules_enabled = {
|
|
"mam"; -- Убедимся что MAM включен
|
|
}
|
|
|
|
-- ============================================================================
|
|
-- КОМПОНЕНТЫ
|
|
-- ============================================================================
|
|
|
|
-- Конференции (MUC)
|
|
Component "conference.wthome.ru" "muc"
|
|
name = "Conference Rooms"
|
|
restrict_room_creation = "local" -- Только локальные пользователи создают комнаты
|
|
max_history_messages = 100
|
|
muc_tombstones = true
|
|
|
|
-- MAM для конференций (групповой чат)
|
|
modules_enabled = {
|
|
-- "mam";
|
|
"muc_mam";
|
|
}
|
|
mam_muc_archive_expires_after = "1w"
|
|
|
|
-- Обмен файлами
|
|
Component "upload.wthome.ru" "http_file_share"
|
|
name = "File Sharing"
|
|
http_file_share_expires_after = "never" -- 7 дней
|
|
http_file_share_global_quota = 1024 * 1024 * 1024 * 100 -- 100 GB
|
|
http_file_share_size_limit = 1024 * 1024 * 1024 * 10 -- 10 GB
|
|
|
|
-- PubSub (для OMEMO и других фич)
|
|
Component "pubsub.wthome.ru" "pubsub"
|
|
name = "PubSub Service"
|
|
restrict_node_creation = false
|
|
|
|
-- Отключаем устаревшие методы аутентификации
|
|
-- disable_sasl_mechanisms = { "DIGEST-MD5", "PLAIN" } -- , "SCRAM-SHA-1" }
|