Files
obsidian-vault/personal/plans/zulip-decommission.md
T

5.8 KiB
Executable File

План: вывод 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)

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 не подтвердил необходимость

Связанные документы