102 lines
5.8 KiB
Markdown
102 lines
5.8 KiB
Markdown
# План: вывод Zulip из эксплуатации (decommission)
|
|
|
|
_Создан: 2026-09-29_
|
|
|
|
## Цель
|
|
|
|
Снести Zulip-стек на Mac (Colima Docker), **сохранив историю переписки**.
|
|
Транспорт Hermes уже переехал на Mattermost — Zulip держится только ради истории.
|
|
|
|
## Состояние
|
|
|
|
| Этап | Статус |
|
|
|---|---|
|
|
| 1. Выгрузка истории в SQLite | ✅ сделано 2026-09-29 |
|
|
| 2. Верификация целостности | ✅ сделано |
|
|
| 3. Правка ссылок на Zulip DB в скиллах/SOUL | ⏳ план согласован, ждёт выбора варианта |
|
|
| 4. Снос стека | ⛔ не начато |
|
|
|
|
**Артефакт этапа 1:** `~/Documents/zulip_message_history.sqlite` (78.1 MB, 134 734 сообщения)
|
|
→ инструкция по поиску в [[tech/zulip-message-history]]
|
|
|
|
## Решение: формат истории
|
|
|
|
Рассматривались три варианта:
|
|
|
|
| Вариант | Плюсы | Минусы | Итог |
|
|
|---|---|---|---|
|
|
| `pg_dump` (custom format) | полный бэкап, восстановим одной командой | нечитаем без psql; тянет за собой весь Postgres | ❌ отклонён |
|
|
| Экспорт в markdown-файлы по тредам | читаемо в Obsidian, grep-абельно | 197 файлов, ломает структуру при правках, нет поиска по тексту | ❌ отклонён |
|
|
| **SQLite + FTS5** | один файл, структура тредов через FK, полнотекстовый поиск | нужен `sqlite3` CLI | ✅ **выбран** |
|
|
|
|
**Явное указание Alex:** «никаких вложений и меты. только история переписки».
|
|
Поэтому pg_dump, volume `zulip_zulip-data`, аплоады и аватары в выгрузку не попали.
|
|
|
|
## Открытый вопрос (шаг 3) — правка ссылок на Zulip DB
|
|
|
|
Найдено **7 групп файлов**, ссылающихся на `zulip-db-forensics` / `psql` к Zulip.
|
|
После сноса эти инструкции станут нерабочими.
|
|
|
|
| # | Файл | Ссылок |
|
|
|---|---|---|
|
|
| 1 | `~/.hermes/hermes-whale/SOUL.md:36` | 1 |
|
|
| 2 | `~/.hermes/hermes-whale/memories/USER.md` | 1 |
|
|
| 3 | `skills/software-development/zulip-db-forensics/SKILL.md` | основной |
|
|
| 4 | `skills/software-development/zulip-thread-handoff/SKILL.md` | 4 |
|
|
| 5 | `skills/software-development/zulip-bot-routing/SKILL.md` | 6 |
|
|
| 6 | `skills/software-development/project-progress-audit/SKILL.md` | 3 |
|
|
| 7 | `eagle-dashboard`, `systematic-debugging`, `personal-os-daily-brief`, `zfs-panic-recovery`, `htpc-steam-shortcuts` | по 1 |
|
|
|
|
**Предложенные варианты:**
|
|
|
|
- **A (чисто)** — переименовать скилл `zulip-db-forensics` → `message-history-search`,
|
|
перевести все 7 групп на SQLite. ~10 файлов.
|
|
- **B (минимально)** — только `SOUL.md` + `USER.md` + блок «ИСТОЧНИК = SQLite» в скилл. 3 файла.
|
|
- **C (гибрид, рекомендован)** — `SOUL.md` + `USER.md` + переписать тело
|
|
`zulip-db-forensics/SKILL.md` на SQLite, **имя скилла не менять** (8 входящих ссылок
|
|
переименование сломает без выгоды), в остальных файлах заменить только psql-команды.
|
|
|
|
**Решение не принято** — ждёт ответа Alex.
|
|
|
|
## Шаг 4 — снос (выполнять ПОСЛЕ шага 3)
|
|
|
|
```bash
|
|
cd ~/Developer/zulip
|
|
docker compose down
|
|
docker volume rm zulip_zulip-data zulip_zulip-pgdata zulip_zulip-rabbitmq zulip_zulip-redis
|
|
docker rmi zulip/docker-zulip:11.6-0
|
|
```
|
|
|
|
### 🔴 Порядок важен: сначала зависимости
|
|
|
|
1. **`zulip-router`** (`~/Developer/zulip-router/`, порт 8090) — поллит Zulip Events API.
|
|
Снести/остановить **до** Zulip, иначе словит restart-loop на мёртвом API.
|
|
2. **Hermes `platforms: zulip`** в `~/.hermes/config.yaml` — уже не используется (транспорт
|
|
Mattermost), но платформа в конфиге останется висеть. Убрать или выключить.
|
|
3. **Bot-роутинг** (Валера/Клавдий/Eagle/Кит webhook `host.docker.internal:8644-8645`) —
|
|
уходит вместе с Zulip. Balda-боты остаются без транспорта.
|
|
|
|
### Что освободится
|
|
|
|
| Ресурс | Объём |
|
|
|---|---|
|
|
| Образ `zulip/docker-zulip:11.6-0` | 3.84 GB |
|
|
| Volume `zulip_zulip-pgdata` | 503 MB (на диске) |
|
|
| Volume `zulip_zulip-data` | 38.1 MB |
|
|
| Контейнеры (5 шт) | ~260 MB |
|
|
|
|
## Проверка перед сносом (обязательно)
|
|
|
|
- [ ] `sqlite3 ~/Documents/zulip_message_history.sqlite "PRAGMA integrity_check;"` → `ok`
|
|
- [ ] `count(*)` из `messages` = **134 734**
|
|
- [ ] FTS-запрос по известному слову возвращает результаты
|
|
- [ ] Файл продублирован вне Mac (Time Machine / Kraken / NAS) — **не сделано**,
|
|
Alex не подтвердил необходимость
|
|
|
|
## Связанные документы
|
|
|
|
- [[tech/zulip-message-history]] — SQLite с историей и инструкция по поиску
|
|
- [[projects/zulip-router]] — архитектура роутера, конфиг ботов
|
|
- [[tech/hermes-whale-mattermost-transport]] — текущий транспорт Hermes
|
|
- [[tech/docker-mac-disk-issues]] — контекст: почему Zulip тормозил
|