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
+17 -2
View File
@@ -106,7 +106,8 @@ chromium --headless --no-sandbox --disable-gpu --enable-logging=stderr --virtual
- TXT-записи `_acme-challenge.nixg.ru` и `_acme-challenge.xmpp.nixg.ru` в панели Jino (вручную)
- Сертификат: /etc/letsencrypt/live/nixg.ru/ → скопирован в /opt/icq/certs/nixg.ru.{crt,key}
- Проверено снаружи: c2s 5222 и s2s 5269 отдают LE (issuer=Let's Encrypt, SAN nixg.ru+xmpp.nixg.ru), TLS 1.3
- Истекает 2026-11-26; certbot настроил автопродление — НО при dns-01 вручную автопродление НЕ сработает без повторного добавления TXT! Продление: `sudo certbot renew --manual-auth-hook /bin/true --manual-cleanup-hook /bin/true` (после добавления TXT). TODO: настроить напоминание/скрипт.
- Истекает 2026-11-26; certbot настроил автопродление — НО при dns-01 вручную автопродление НЕ сработает без повторного добавления TXT! Продление: `sudo certbot renew --manual-auth-hook /bin/true --manual-cleanup-hook /bin/true` (после добавления TXT).
- ✅ Напоминание НАСТРОЕНО как ТИХИЙ watchdog (2026-08-29): Hermes cron-джоба ca2a23a34905, ежедневно 10:00 UTC, no_agent, доставка в Telegram (DM). Скрипт /opt/hermes/.hermes/scripts/check_icq_cert.sh (THRESHOLD=45 дн.): пока до истечения > 45 дней — молчит (пустой stdout, ничего не шлётся); при <= 45 дней шлёт в TG инструкцию продления (TXT в Jino → certbot renew ×2 → копия в certs/ → restart prosody). Первое ожидаемое срабатывание ≈ 12.10.2026 (истечение 26.11).
- [x] **HTTP Upload (XEP-0363) — ВЫПОЛНЕНО ✅ (2026-08-28)**
- Модуль: `mod_http_upload` из Ubuntu-пакета `prosody-modules` (apt) → скопирован в ./modules/
- Prosody: `Component "upload.nixg.ru" "http_upload"`, лимит 10MB, хранение 7 дней, require_authentication,
@@ -147,7 +148,21 @@ chromium --headless --no-sandbox --disable-gpu --enable-logging=stderr --virtual
Веб-админки в Prosody 0.11 нет в коробке — при желании ставить отдельный UI. Функционально не блокер.
- Ошибки «http_upload MUST happen with TLS» в prosody.err — ИСТОРИЧЕСКИЕ (28 авг 20:01, до настройки LE-серта);
за рестарт 29 авг ошибок нет.
- [ ] Мосты mautrix (Telegram/WhatsApp) — Этап 4; нужен external component (mod_component).
- [x] **Мост XMPP↔Telegram (Slidge/slidgram) — ПОДКЛЮЧЁН (2026-08-29)**
- Prosody: component_ports 5347 + Component "telegram.nixg.ru" с component_secret (ВНИМАНИЕ: в 0.11
секрет задаётся в секции Component через component_secret=, глобальная таблица component_secrets
НЕ читается — была засада not-authorized, решено).
- Образ: кастомный slidgram-proxy:latest = codeberg.org/slidge/slidgram:latest + патчи telegram.py/gateway.py
(прокидывают SOCKS5 из env SLIDGRAM_PROXY в Pyrogram) + pysocks (уже есть в образе, модуль socks).
- docker-compose: сервис slidgram (icq-slidgram), env SLIDGE_JID/SECRET/SERVER/PORT + SLIDGRAM_PROXY=socks5://172.27.0.1:1080
- Трафик Telegram → SOCKS5 172.27.0.1:1080 (SSH-туннель VPS01, TELEGRAM_PROXY) — проверено: SOCKS5→MTProto DC1 OK.
- Статус: компонент аутентифицирован в Prosody, Slidge started, upload discovery OK.
- ✅ **mod_privilege (XEP-0356)** добавлен (2026-08-29): community-модуль из hg.prosody.im → ./modules/mod_privilege.lua,
включён в modules_enabled + privileged_entities в VirtualHost для telegram.nixg.ru (roster sync, legacy carbons).
- ✅ **Аудит XEP-функций** (2026-08-29) → **XEP-AUDIT.md**: MUC/PubSub/HTTP Upload/MAM/Carbons/PEP ✅;
OMEMO/WebRTC — клиент-сайд (норма для 0.11); Bookmarks — через PEP; mod_pubsub включён в modules_enabled.
- ОЖИДАЕТ: регистрацию TG-аккаунта (admin@nixg.ru → команда register на telegram.nixg.ru) + api_id/api_hash.
- [ ] Мосты mautrix (WhatsApp) — Этап 4; нужен external component (mod_component). [Telegram-мост уже на Slidge]
- [ ] Push-уведомления (APNs/FCM) — ОТЛОЖЕН (нет особой потребности; см. WALKTHROUGH раздел 10.4 «Варианты»).
Пробовал (2026-08-29): mod_unified_push из apt-prosody-modules НЕ подходит — требует util.jwt (API 0.12), а контейнер на 0.11.9.
Для реализации нужно (любое из):