# 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` аутентифицирован