Files
icq/INFRA.md
T

5.3 KiB
Raw Blame History

ICQ XMPP — Инфраструктура, учётные данные, бэкапы (детали)

Вспомогательный файл для STATUS.md; обновлено: 2026-08-29

Учётные данные

  • admin@nixg.ru / пароль: <СМОТРИ В ЗАЩИЩЁННОМ ХРАНИЛИЩЕ / .env> ← перенесён 2026-08-28 с admin@chat.nixg.ru, ВХОД ПОДТВЕРЖДЁН (проверено через WebSocket: slixmpp + wss://xmpp.nixg.ru/xmpp-websocket → AUTH OK).
  • estorozhenko@nixg.ru — создан 2026-08-29, вход подтверждён (slixmpp, c2s 5222, AUTH OK).
  • Если пароль снова понадобится сбросить: docker exec icq-prosody prosodyctl register ЛОГИН nixg.ru 'НОВЫЙПАРОЛЬ'
  • ⚠️ Самостоятельная регистрация ВЫКЛЮЧЕНА (2026-08-29): allow_registration = false, модуль register не загружен. Создание/удаление пользователей — только через prosodyctl (см. CHEATSHEET.md).
  • Старый аккаунт admin@chat.nixg.ru: домен chat.nixg.ru убран из Prosody (VirtualHost теперь nixg.ru).

Инфраструктура

  • bigbox (машина агента), каталог: /opt/icq
  • Контейнеры: icq-prosody (Prosody 0.11.9: 5222/5269/5280/5281), icq-webchat (nginx:8081), icq-slidgram (мост Telegram)
  • vps02 (87.242.100.206, Debian 12, enp3s0): Caddy (443, host-network), iptables DNAT 5222/5269 → 10.8.0.2
  • WireGuard: bigbox 10.8.0.2 ↔ vps02 10.8.0.4; Caddy → 10.8.0.2:8081

DNS (Jino)

  • A chat.nixg.ru → 87.242.100.206 (веб-клиент)
  • A xmpp.nixg.ru → 87.242.100.206 (XMPP WS)
  • A nixg.ru → 81.177.135.175 (визитка, НЕ трогаем)
  • A upload.nixg.ru → 87.242.100.206 (HTTP Upload)
  • SRV _xmpp-client._tcp.nixg.ru → 0 5 5222 xmpp.nixg.ru.
  • SRV _xmpp-server._tcp.nixg.ru → 0 5 5269 xmpp.nixg.ru.
  • SRV _xmpp-client-websocket._tcp.nixg.ru → 0 5 443 xmpp.nixg.ru.
  • MX mail.nixg.ru — НЕ трогаем (почта)

Prosody

  • VirtualHost nixg.ru, cross_domain_websocket = { "https://chat.nixg.ru", "https://xmpp.nixg.ru" }
  • WebSocket: wss://xmpp.nixg.ru/xmpp-websocket — РАБОТАЕТ (101, авторизация OK, LE-сертификат)
  • Компоненты: conference.nixg.ru (MUC), upload.nixg.ru (HTTP Upload), telegram.nixg.ru (Slidge, component_ports 5347)

TLS / Let's Encrypt (детали)

  • Выпуск: sudo certbot certonly --manual --preferred-challenges dns -d nixg.ru -d xmpp.nixg.ru --manual-auth-hook /bin/true --manual-cleanup-hook /bin/true (TXT в Jino вручную)
  • Сертификат: /etc/letsencrypt/live/nixg.ru/ → копия в /opt/icq/certs/nixg.ru.{crt,key} (cp -L!)
  • Истекает 2026-11-26; продление вручную: TXT в Jino → sudo certbot renew --manual-auth-hook /bin/true --manual-cleanup-hook /bin/true → копия в certs/ → restart prosody
  • Watchdog-напоминание: Hermes cron ca2a23a34905, ежедневно 10:00 UTC, no_agent, доставка в Telegram DM. Скрипт /opt/hermes/.hermes/scripts/check_icq_cert.sh (THRESHOLD=45 дн.): молчит, пока до истечения >45 дней; при <=45 дней шлёт в TG инструкцию продления. Первое срабатывание ≈ 12.10.2026.

Резервное копирование

  • Скрипт: /opt/icq/backup.sh (по образцу /opt/netbox/backup.sh), права 755, в git.
  • Что бэкапит (tar czf): data/ (аккаунты, PEP/OMEMO, MUC, http_upload) + config/ + certs/ + modules/ + webchat/ + docker-compose.yml + все *.md (включая новые INFRA/BRIDGE/CHEATSHEET).
  • Куда: /opt/icq/backups/ (локально, 7 дней) → /mnt/yandex-disk/backup/icq-backups/ (30 дней), проверка mountpoint.
  • Cron (root): 45 2 * * * /opt/icq/backup.sh >> /var/log/icq-backup.log 2>&1 — после NetBox (2:00) и Gitea (2:30).

Проверено (подтверждено)

  • ✅ XMPP-сервер на nixg.ru, федерация (SRV), порты 5222/5269 открыты извне
  • ✅ TLS на 443 (Caddy/Let's Encrypt): xmpp.nixg.ru (LE, 2026-08-28) и chat.nixg.ru (страница)
  • ✅ WebSocket-путь целиком: Caddy → nginx:8081 → Prosody:5280 → 101 Switching Protocols
  • ✅ Аутентификация по WebSocket: admin@nixg.ru (slixmpp, 2026-08-28)
  • ✅ Веб-чат https://chat.nixg.ru/ (Converse v14.0.0, вход подтверждён headless-браузером)
  • ✅ Рестарт Prosody с модулями (2026-08-29): c2s/s2s/http/https, LE-серты, mod_bosh, mod_http_upload, mod_vcard_muc, mod_muc_moderation — без ошибок (исторические ошибки «http_upload MUST happen with TLS» — от 28 авг, до настройки LE)
  • ✅ HTTP Upload: disco urn:xmpp:http:upload:0, слот, PUT, GET→200 (slixmpp)
  • ✅ OMEMO: устройство Converse 14035 опубликовало devicelist + bundles в PEP (подробности: WALKTHROUGH §9)
  • ✅ Мост Telegram: компонент telegram.nixg.ru аутентифицирован, Slidge started, upload discovery OK