mirror of
https://gitverse.ru/kpa39l/icq.git
synced 2026-09-29 01:50:10 +00:00
3.9 KiB
3.9 KiB
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с IPdocker 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аутентифицирован