AiHummer доки
v1.0.x
RU EN

Бэкапы и аварийное восстановление

v1.0.x · обновлено 2026-06-26

Состояние 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). Порядок восстановления:

  1. Подготовьте хост и установите ту же версию AiHummer.
  2. Восстановите мастер-ключ в AIHUMMER_MASTER_KEY.
  3. Восстановите базу (последний дамп, затем накат через WAL/PITR при наличии).
  4. Восстановите каталог блобов в AIHUMMER_BLOB_DIR.
  5. Поднимите сервисы (aihummer up) и проверьте через /readyz и deploy/host/smoke.sh.

[!TIP] Храните AIHUMMER_MEDIA_TOKEN_SECRET вместе с мастер-ключом. Он сохраняет подписанные URL скачивания медиа валидными между перезапусками и пересборками.

Куда дальше