Files
icq/INFRA.md

61 lines
5.3 KiB
Markdown
Raw Permalink 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.
# 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