Telegram bridge: slidgram + SOCKS5 proxy, mod_privilege (XEP-0356), XEP audit

- docker-compose: сервис slidgram (Slidge->Telegram, внешний компонент XEP-0114)
- кастомный образ slidgram-proxy: SOCKS5-патч (SLIDGRAM_PROXY -> Pyrogram) для маршрутизации через VPS01
- prosody: component telegram.nixg.ru (5347), component_secret в секции Component (0.11!),
  mod_privilege + privileged_entities (roster sync мостов), mod_pubsub включён
- modules/mod_privilege.lua (community, hg.prosody.im)
- docs/slidgram/: офлайн-копия документации slidgram (slidge.im)
- README: секции 'Функциональность (XEP)' и 'Мост Telegram'; XEP-AUDIT.md (полный аудит XEP)
- STATUS.md: мост ПОДКЛЮЧЁН, privilege, аудит
This commit is contained in:
2026-08-29 14:38:25 +00:00
parent 49df2ad681
commit 3c4190402b
28 changed files with 7344 additions and 7 deletions
+26 -4
View File
@@ -26,7 +26,9 @@ modules_enabled = {
"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
@@ -76,6 +78,13 @@ http_interfaces = { "0.0.0.0" }
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";
@@ -99,6 +108,18 @@ VirtualHost "nixg.ru"
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"
@@ -118,7 +139,8 @@ Component "upload.nixg.ru" "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"
-- Мосты (Slidge) — external component (XEP-0114) для Telegram.
-- Slidge подключается к component_ports (5347) с секретом из component_secrets.
Component "telegram.nixg.ru"
component_secret = "83276db6e870f540163f271d9bd7d3a390530b9ad7b45f58"
modules_enabled = { "disco", "privilege" }