mirror of
https://gitverse.ru/kpa39l/icq.git
synced 2026-09-29 09:55:11 +00:00
OpenSpec: разнести openspec по проектам
This commit is contained in:
@@ -0,0 +1,58 @@
|
||||
# Proposal — icq-fix-prosody-network
|
||||
|
||||
## Почему
|
||||
|
||||
С 2026-09-08 chat.nixg.ru (веб-клиент Converse.js) снова показывает бесконечную загрузку.
|
||||
Ручной запуск контейнера prosody не помог.
|
||||
|
||||
**Корневая причина (подтверждена инспекцией):**
|
||||
- Контейнер `icq-prosody` запущен вручную вне docker compose (`docker start`, пересоздан
|
||||
вручную 2026-09-08T13:33) и **не подключён ни к одной Docker-сети**:
|
||||
- `docker ps -a` → колонка Networks у `icq-prosody` пустая;
|
||||
- `docker network inspect icq_default` → в сети только `icq-webchat` (172.27.0.2)
|
||||
и `icq-slidgram` (172.27.0.4), prosody отсутствует;
|
||||
- `docker inspect icq-prosody --format '{{json .NetworkSettings.Networks}}'` → `{}`;
|
||||
- `docker exec icq-prosody hostname -i` → пусто (нет IP в контейнере).
|
||||
- Из-за этого `icq-webchat` не может достучаться до Prosody по имени `icq-prosody`
|
||||
(DNS icq_default не резолвится), WebSocket-соединение не устанавливается →
|
||||
«бесконечная загрузка».
|
||||
- `NetMode=icq_default` в метаданных — обманчиво: метка осталась, но фактического
|
||||
подключения к сети нет (вероятно, контейнер пересоздан вне compose).
|
||||
|
||||
## Что делаем
|
||||
|
||||
Пересоздать `icq-prosody` штатно через docker compose (force-recreate), чтобы он
|
||||
вернулся в сеть `icq_default` вместе с webchat и slidgram. Проверить, что:
|
||||
- контейнер подключён к `icq_default` с IP;
|
||||
- webchat и slidgram видят prosody по имени `icq-prosody`;
|
||||
- chat.nixg.ru снова открывается (WS connect → 101);
|
||||
- мост telegram.nixg.ru по-прежнему аутентифицирован;
|
||||
- после рестарта ничего не сломалось (логотипы, S2S, http_upload).
|
||||
|
||||
## Объём
|
||||
|
||||
Один сервис (`prosody`), одна команда `docker compose up -d --force-recreate prosody`
|
||||
(+ проверки). Без изменений конфигов и образов.
|
||||
|
||||
## Принятые решения
|
||||
|
||||
- Не менять конфиги Prosody, nginx, DNS — только вернуть контейнер в compose-жизненный цикл.
|
||||
- Не трогать данные (./data, ./config, ./logs) — они на volume'ах.
|
||||
- Верификацию делать и изнутри (docker exec), и снаружи (curl через Caddy/nginx).
|
||||
|
||||
## Риски и откат
|
||||
|
||||
- **Риск:** force-recreate может на пару секунд уронить веб-чат/федерацию. Приемлемо.
|
||||
- **Откат:** `docker compose up -d` (пересоздание с теми же volume'ами) или
|
||||
`docker start icq-prosody` если что-то пошло не так — данные не теряются (volume'ы).
|
||||
- **Не трогаем** данные пользователей; никаких удалений.
|
||||
|
||||
## Критерии приёмки
|
||||
|
||||
- [ ] `docker ps` показывает `icq-prosody` в сети `icq_default` (не пустая колонка)
|
||||
- [ ] `docker network inspect icq_default` содержит `icq-prosody` с IP
|
||||
- [ ] `docker exec icq-prosody hostname -i` возвращает IP (не пусто)
|
||||
- [ ] из webchat резолвится и коннектится `icq-prosody:5280`
|
||||
- [ ] https://chat.nixg.ru грузится, Converse показывает окно входа (не бесконечная загрузка)
|
||||
- [ ] WS `wss://xmpp.nixg.ru` → HTTP 101 (переключение протокола)
|
||||
- [ ] `docker logs icq-prosody` без новых ошибок; компонент `telegram.nixg.ru` аутентифицирован
|
||||
Reference in New Issue
Block a user