Backup and restore
Backups contain sensitive metadata, search documents, Redis state, and staged uploads. Encrypt them and restrict access.
Create
OSC_COMPOSE_PROJECT=open-search-console \
./infra/backup.sh /secure/backups/indexlume-2026-10-23
The script creates a PostgreSQL custom-format dump, archives Typesense/Redis/upload volumes while dependent services are stopped, writes a manifest with an encryption-key fingerprint, and produces SHA-256 checksums.
It does not include .env, encryption keys, setup tokens, TLS keys, reverse-proxy configuration, or external source data. Preserve these separately.
Restore
Restore first into the same pinned application and service versions.
docker compose up --detach --wait
OSC_COMPOSE_PROJECT=open-search-console \
OSC_RESTORE_CONFIRM=open-search-console \
./infra/restore.sh /secure/backups/indexlume-2026-10-23
./infra/smoke.sh
The restore rejects missing or changed payloads, encryption-key mismatch, and a confirmation value that does not exactly match the Compose project.
Afterward, verify login, connector tests, active aliases, representative searches, recent jobs, and external credentials. External databases require their own backup and recovery plan.