[2026-09-29] eagle: personal/index.md personal/plans/zulip-decommission.md personal/projects/zulip-router.md personal/tech/docker-mac-disk-issues.md personal/tech/zulip-message-history.md
This commit is contained in:
1 parent
e75cf79e79
commit
62f19eeecb
5 files changed
+342
No files matched your search
@@ -0,0 +1,101 @@
|
||||
# План: вывод 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 тормозил
|
||||
Reference in new issue
Block a user