Backup Guide
What Gets Backed Up
Current supported items:
- Session recordings (
data/recordings) - Windows mapped drive files (
data/drive) - PostgreSQL logical backup (runs
pg_dumpinside container, archived asdata/postgresql_dump.sql) - CA certificate/key files (
data/root_ca_*.pem)
Prerequisites
- Run commands in the deployment directory (same level as
docker-compose.yaml). - Python 3.6+ is required (no external dependency).
- Docker Compose is required (
docker composeordocker-compose). - For PostgreSQL backup/restore, the DB service container must provide
pg_dump/psql.
Download Script
shell
# Download to current directory (overwrite old version)
wget -O backup_restore.py https://raw.githubusercontent.com/dushixiang/next-terminal/master/scripts/backup_restore.pyshell
# Optional: make it executable
chmod +x backup_restore.pyBackup
Use backup_restore.py:
shell
# Interactive selection (recommended)
python3 backup_restore.py backup --interactive --workdir .shell
# Explicit item selection (example)
python3 backup_restore.py backup \
--workdir . \
--items drive,recordings,postgresql,ca \
--pg-service postgresqlNotes:
- PostgreSQL backup is executed via
docker compose exec -T <service> sh -lc "<pg_dump command>". - Default PostgreSQL service name is
postgresql; override with--pg-serviceif needed. - You can force compose binary by
--compose-cmd 'docker compose'or--compose-cmd docker-compose.
Restore
shell
# Interactive restore (auto-picks latest next-terminal-backup-*.tar.gz)
python3 backup_restore.py restore --interactive --workdir .shell
# Explicit archive + items (example)
python3 backup_restore.py restore \
--workdir . \
--archive next-terminal-backup-20260324.tar.gz \
--items postgresql,ca \
--pg-service postgresqlNotes:
- PostgreSQL restore is executed via
docker compose exec -T <service> sh -lc "<psql command>". - After restore, verify service status if needed:
shell
docker compose ps
docker compose logs -f