| App | vs backup | Last backup of this app | |
|---|---|---|---|
| loading… | |||
“vs backup” compares this environment's live
app_data/<app> against the same path on the backup
branch by content, so “up to date” means the bytes already match —
not merely that a backup ran recently. Timestamps are not used: a running
service rewrites its SQLite file constantly without changing a byte, and a
restore produces new mtimes over content that already matches. The counts
are files added / modified / removed since the last snapshot; hover a badge
to see examples.
Backups commit each app's app_data/ content to the backup
repository's main branch, alongside the TMS container history
— always on top of the latest head, never forced, so environments cannot
overwrite each other. Every backup first pushes the TMS container's own
git history to the branch (same as the canvas Backup pill), so unpublished
TMS commits are never left behind — if that push fails, the backup is
aborted before anything is committed. Restores are done from the command line:
scripts/backup_sync.sh pull. Note: databases are snapshotted
hot; for a guaranteed-consistent full backup use
scripts/backup_sync.sh push --stop. Analytics backup/restore
is currently out of scope (n/a) — that environment will be deprecated.
📖 How to run a sync from the command line — step by step
All commands run on the host machine (not in a
container), from the project root
(di-digital-experience-ecosystem-poc/). The same guide is in
the project README.md.
A — Check what's on the backup
- Show the remote head, recent commits and the last environment snapshot:
scripts/backup_sync.sh status
B — Back up this environment (push)
- Full environment, with the stack paused briefly so every database
is copied in a consistent state (recommended):
scripts/backup_sync.sh push --stop - Or a single app (same as this console's buttons), e.g.:
scripts/backup_sync.sh push --app crm_service
C — Sync this environment from the backup (pull / restore)
- Get the latest code and rebuild the stack:
git pull origin maindocker compose down && docker compose up -d --force-recreate --build - (Optional) Inspect what would be restored, without touching anything:
scripts/backup_sync.sh pull --no-restore - Restore app data from the backup (merge-per-app: only apps
present in the snapshot are replaced; anything else local is
left untouched). Add
--app <name>to restore a single app:scripts/backup_sync.sh pull --yes⚠ Restored apps' databases and media are replaced. The stack is stopped and restarted automatically, and the previous data is kept asapp_data.pre-restore-<timestamp>— run without--yesfirst to see the exact restore/keep plan. - Verify: all services healthy, and the TMS canvas Backup pill is green:
docker compose ps
Pushes from any environment always build on the latest backup head and are never forced — if a push is rejected because another environment moved the head, just re-run it.