Бэкапы и аварийное восстановление
Состояние AiHummer небольшое и чётко определённое, что делает бэкапы простыми — при условии, что вы помните: мастер-ключ не лежит в базе и его нужно защищать отдельно. Эта страница описывает, что бэкапить, как и как восстанавливаться.
Что бэкапить
Защищать нужно три независимые вещи:
| Что | Где | Зачем |
|---|---|---|
| База данных | PostgreSQL | Источник истины — агенты, диалоги, память, настройки, зашифрованные секреты |
| Блобы | AIHUMMER_BLOB_DIR | Медиа и вложения, на которые ссылается база |
| Мастер-ключ | AIHUMMER_MASTER_KEY | Расшифровывает vault; никогда не хранится в базе |
[!DANGER] Бэкапьте
AIHUMMER_MASTER_KEYотдельно и храните не там, где дамп базы. Vault зашифрован конвертно под этим ключом — потеряете мастер-ключ, и зашифрованные секреты невосстановимы, даже с идеальным бэкапом базы.
PostgreSQL — источник истины
Считайте базу авторитетной. Рекомендуемая база — ежедневный pg_dump плюс
архивация WAL для восстановления на момент времени (PITR), чтобы можно было
накатиться на любой момент между дампами.
# Ежедневный логический дамп
pg_dump "$AIHUMMER_DATABASE_URL" --format=custom --file=aihummer-$(date +%F).dump
Дополните дампы непрерывной архивацией WAL (PITR) для точного восстановления между снимками.
Бэкап блобов
Медиа и вложения лежат в каталоге AIHUMMER_BLOB_DIR. Бэкапьте этот каталог
вместе с базой, чтобы восстановленные диалоги могли разрешать свои вложения. Если
AIHUMMER_BLOB_DIR не задан, сервис медиа/файлов не активен и копировать нечего.
Команды aihummer backup и restore
CLI оборачивает рутину в две команды:
aihummer backup [dir] # записать бэкап в [dir]
aihummer restore <file> # восстановить из файла бэкапа
Используйте их для обычных операционных бэкапов и восстановлений. Связанные команды см. в справочнике CLI.
[!WARNING] Восстановление одной только базы — это не полное восстановление. Восстановите также каталог блобов и убедитесь, что на целевом хосте присутствует тот же
AIHUMMER_MASTER_KEY— иначе vault не расшифровать.
Аварийное восстановление
Для сценария полной потери хоста следуйте runbook по аварийному восстановлению
(docs/runbooks/disaster-recovery.md). Порядок восстановления:
- Подготовьте хост и установите ту же версию AiHummer.
- Восстановите мастер-ключ в
AIHUMMER_MASTER_KEY. - Восстановите базу (последний дамп, затем накат через WAL/PITR при наличии).
- Восстановите каталог блобов в
AIHUMMER_BLOB_DIR. - Поднимите сервисы (
aihummer up) и проверьте через/readyzиdeploy/host/smoke.sh.
[!TIP] Храните
AIHUMMER_MEDIA_TOKEN_SECRETвместе с мастер-ключом. Он сохраняет подписанные URL скачивания медиа валидными между перезапусками и пересборками.
Куда дальше
- Пробы и smoke-тест для проверки восстановления: systemd и health-проверки.
- Версионирование и миграции при обновлении: Политика обновлений.