docs: push-уведомления — отложено, варианты в WALKTHROUGH 10.4

- Попытка включить mod_unified_push (apt prosody-modules) → НЕ грузится: требует util.jwt (API 0.12), контейнер 0.11.9. Откатил, error из логов ушёл.
- Зафиксированы 2 варианта для будущей реализации: (1) XEP-0357 mod_push/mod_push_offline/mod_push_muc из hg (нативный push для Conversations/Monal, под 0.11); (2) UnifiedPush после апгрейда до 0.12.
- Уточнён комментарий mod_admin_web в конфиге (XMPP ad-hoc, НЕ веб-панель).
This commit is contained in:
2026-08-29 08:45:23 +00:00
parent aaf067635b
commit 49df2ad681
3 changed files with 44 additions and 3 deletions
+7 -1
View File
@@ -148,7 +148,13 @@ chromium --headless --no-sandbox --disable-gpu --enable-logging=stderr --virtual
- Ошибки «http_upload MUST happen with TLS» в prosody.err — ИСТОРИЧЕСКИЕ (28 авг 20:01, до настройки LE-серта); - Ошибки «http_upload MUST happen with TLS» в prosody.err — ИСТОРИЧЕСКИЕ (28 авг 20:01, до настройки LE-серта);
за рестарт 29 авг ошибок нет. за рестарт 29 авг ошибок нет.
- [ ] Мосты mautrix (Telegram/WhatsApp) — Этап 4; нужен external component (mod_component). - [ ] Мосты mautrix (Telegram/WhatsApp) — Этап 4; нужен external component (mod_component).
- [ ] Push-уведомления (APNs/FCM). - [ ] Push-уведомления (APNs/FCM) — ОТЛОЖЕН (нет особой потребности; см. WALKTHROUGH раздел 10.4 «Варианты»).
Пробовал (2026-08-29): mod_unified_push из apt-prosody-modules НЕ подходит — требует util.jwt (API 0.12), а контейнер на 0.11.9.
Для реализации нужно (любое из):
(1) XEP-0357: mod_push + mod_push_offline (+ mod_push_muc) из официального hg prosody-modules
(в Debian-пакете их НЕТ) — даёт нативный push для Conversations/Monal через публичные шлюзы; под 0.11.
(2) Апгрейд Prosody до 0.12 → тогда заработает mod_unified_push (UnifiedPush, уже есть в apt).
Сделать, когда появится реальная потребность или закончится список задач.
## 5. Полезные команды (кратко) ## 5. Полезные команды (кратко)
```bash ```bash
+36 -1
View File
@@ -465,6 +465,41 @@ Component "conference.nixg.ru" "muc"
- **Порядок включения**: после правок конфига — `docker exec icq-prosody prosodyctl check config` - **Порядок включения**: после правок конфига — `docker exec icq-prosody prosodyctl check config`
→ `docker compose restart prosody` → `docker logs icq-prosody --tail 100`. → `docker compose restart prosody` → `docker logs icq-prosody --tail 100`.
### 10.4 Push-уведомления (APNs/FCM) — варианты реализации
**Статус (2026-08-29): ОТЛОЖЕНО.** Особой потребности в push нет; реализуем когда понадобится
или когда исчерпается список задач. Ниже — честная картина с учётом нашей версии Prosody.
Как устроен push в XMPP (коротко):
- **XEP-0357** — стандарт push-уведомлений. «Перевёрнутая» схема: не сервер шлёт в APNs/FCM,
а мобильный клиент регистрирует у Prosody «push-сервис и токен», и сервер при новом
offline-сообщении зовёт push-сервис, а тот уже доставляет через APNs/FCM.
- Нативные клиенты Conversations (Android) и Monal (iOS) ходят на **свои публичные push-шлюзы**
(conversations.im, push.monal.im) — для них достаточно включить XEP-0357-модули на сервере,
свой APNs/FCM-мост поднимать НЕ нужно.
**Варианты:**
**(1) XEP-0357 (рекомендуемый, работает на 0.11)** — mod_push + mod_push_offline (+ mod_push_muc для комнат):
```bash
# Модули НЕ в Debian-пакете prosody-modules — берутся из официального репозитория prosody-modules (Mercurial):
# https://hg.prosody.im/prosody-modules/ (каталоги mod_push, mod_push_offline, mod_push_muc)
# Положить в /opt/icq/modules/, затем в prosody.cfg.lua добавить в modules_enabled:
# "push"; "push_offline"; # и "push_muc" для MUC
```
Плюс: нативный push для Conversations/Monal через их бесплатные публичные шлюзы, без своей инфраструктуры.
**(2) UnifiedPush (mod_unified_push)** — только после апгрейда Prosody до 0.12:
```bash
# mod_unified_push уже есть в apt-prosody-modules (скопирован был из /usr/lib/prosody/modules/mod_unified_push/)
# НО требует util.jwt — это API Prosody 0.12+, в нашем контейнере (0.11.9) его НЕТ → модуль не грузится:
# modulemanager error: module 'util.jwt' not found
# Поэтому включить его смысл есть только вместе с переходом prosody на 0.12.
```
**Вывод:** пока остаёмся на 0.11.9 без push. Когда появится мобильный клиент или потребность —
идти по варианту (1): скачать 3 модуля из hg, положить в modules/, включить в конфиг (это под 0.11).
## 11. Полезные команды ## 11. Полезные команды
```bash ```bash
cd /opt/icq cd /opt/icq
@@ -482,5 +517,5 @@ curl -sS https://upload.nixg.ru/upload
- [x] ~~OMEMO (XEP-0384)~~ — ВЫПОЛНЕНО: раздел 9; скрипт scripts/omemo_check.py. - [x] ~~OMEMO (XEP-0384)~~ — ВЫПОЛНЕНО: раздел 9; скрипт scripts/omemo_check.py.
- [ ] Бот-книгоискатель (slixmpp + OPDS) — Этап 3 PRD. venv уже создан (/opt/icq/.venv: aiohttp, slixmpp). - [ ] Бот-книгоискатель (slixmpp + OPDS) — Этап 3 PRD. venv уже создан (/opt/icq/.venv: aiohttp, slixmpp).
- [ ] Мосты mautrix-telegram / mautrix-whatsapp — Этап 4 (нужен Prosody mod_component / external component). - [ ] Мосты mautrix-telegram / mautrix-whatsapp — Этап 4 (нужен Prosody mod_component / external component).
- [ ] Push-уведомления APNs/FCM (публичный push-шлюз для Prosody). - [ ] Push-уведомления APNs/FCM — ОТЛОЖЕНО, варианты в разделе 10.4.
- [ ] Продление LE-серта nixg.ru — 2026-10-15 10:00 (cron Hermes, job ca2a23a34905); процедура в разделе 4. - [ ] Продление LE-серта nixg.ru — 2026-10-15 10:00 (cron Hermes, job ca2a23a34905); процедура в разделе 4.
+1 -1
View File
@@ -38,7 +38,7 @@ modules_enabled = {
"register"; -- In-band registration (для первого пользователя) "register"; -- In-band registration (для первого пользователя)
"adhoc"; -- ad-hoc команды "adhoc"; -- ad-hoc команды
"admin_adhoc"; -- админ-команды "admin_adhoc"; -- админ-команды
"admin_web"; -- веб-панель /admin (yurt-page; глобальный, требует bosh+admin_adhoc+http_files) "admin_web"; -- XMPP ad-hoc админ-команды (adminsub; НЕ веб-панель — см. разд. 10 WALKTHROUGH)
"bosh"; -- BOSH (HTTP long-polling, для mod_admin_web) "bosh"; -- BOSH (HTTP long-polling, для mod_admin_web)
-- Messaging / Chat -- Messaging / Chat