mirror of
https://gitverse.ru/kpa39l/openspec-lab.git
synced 2026-09-29 09:15:01 +00:00
b047e3a21d
- STORAGE_ANALYSIS.md: сравнение email.md/Maildir/MBOX/notmuch, рекомендация остаться на email.md + tags в frontmatter + опц. экспорт Maildir - 3 REQUIREMENTS в spec email-storage-format, change архивирован - Задача 4 из портфеля веб-UI закрыта
65 lines
3.7 KiB
Markdown
65 lines
3.7 KiB
Markdown
# Design — icq-fix-prosody-network
|
||
|
||
## Итоговая команда
|
||
|
||
```bash
|
||
cd /opt/icq && docker compose up -d --force-recreate prosody
|
||
```
|
||
|
||
Docker compose пересоздаст контейнер `icq-prosody` из того же образа
|
||
(`gitea.nixg.ru/hermes/icq-prosody:13.0`) с теми же volume'ами и подключит его
|
||
к сети `icq_default` (как указано в docker-compose.yml). После этого webchat
|
||
и slidgram снова видят prosody по имени `icq-prosody`.
|
||
|
||
Образ не меняется (config-hash из inspect = 6523667b1cb848380db7b2b77c15d3d1d0beeb303c8d03de2646699012672f85 —
|
||
тот же compose-проект icq). Данные на volume'ах `./data`, `./config`, `./certs`,
|
||
`./modules`, `./logs` — не затрагиваются.
|
||
|
||
## Порядок
|
||
|
||
1. **Снимок состояния ДО** (для сравнения):
|
||
- `docker ps --format '{{.Names}} {{.Networks}}'` — зафиксировать пустую сеть у prosody.
|
||
- `docker network inspect icq_default` — зафиксировать состав (webchat, slidgram).
|
||
2. **Пересоздание:**
|
||
- `cd /opt/icq && docker compose up -d --force-recreate prosody`
|
||
- дождаться `Started` и статуса `Up`.
|
||
3. **Проверка сети (изнутри compose):**
|
||
- `docker ps --format '{{.Names}} {{.Networks}}'` → prosody в icq_default.
|
||
- `docker network inspect icq_default` → prosody с IP.
|
||
- `docker exec icq-prosody hostname -i` → непустой IP.
|
||
- `docker exec icq-webchat getent hosts icq-prosody` → резолвится в 172.27.0.x.
|
||
4. **Проверка приложения:**
|
||
- `curl -i` к BOSH/WS через nginx/Caddy на 5280, проверить, что веб-клиент
|
||
получает ответ (VirtualHost nixg.ru + consider_websocket_secure=true уже в конфиге).
|
||
- `docker logs icq-prosody --tail 100` — нет новых ошибок, компонент
|
||
telegram.nixg.ru аутентифицирован.
|
||
- `docker logs icq-webchat --tail 50` — nginx отдаёт страницу без ошибок.
|
||
- `docker logs icq-slidgram --tail 50` — мост без ошибок аутентификации.
|
||
5. **Проверка снаружи:**
|
||
- `curl -i https://chat.nixg.ru/` через Caddy → 200.
|
||
- WS: `curl -i -N -H "Connection: Upgrade" -H "Upgrade: websocket" ...` на
|
||
wss://xmpp.nixg.ru (или через браузер/логи) → HTTP 101.
|
||
|
||
## Откат
|
||
|
||
Если после пересоздания что-то пошло не так (маловероятно — конфиг/образ не менялись):
|
||
|
||
```bash
|
||
cd /opt/icq && docker compose up -d # повторное создание без force
|
||
# или, если совсем плохо:
|
||
docker start icq-prosody # старый контейнер ещё существует до пересоздания
|
||
```
|
||
|
||
Volume'ы не трогаем; данные не теряются. Резервная копия текущего состояния:
|
||
`docker inspect icq-prosody > /tmp/icq-prosody-inspect-before.json` (снимок до пересоздания).
|
||
|
||
## Затронутые файлы
|
||
|
||
Не меняем ни одного файла конфигурации. Только состояние Docker (контейнер).
|
||
|
||
## Затрагиваемые сервисы/порты
|
||
|
||
- prosody: 5222/5269/5280/5281 (все сохраняются из compose)
|
||
- webchat: 8081 (nginx, проксируется Caddy на vps02)
|
||
- slidgram: 5347 (external component)
|
||
- Сеть: icq_default (172.27.0.0/16, шлюз 172.27.0.1) |