Backup & Restore¶
TradeTally includes backup and restore scripts that capture the database, uploaded files, runtime data, and sanitized configuration.
What Gets Backed Up¶
| Component | Description | Location |
|---|---|---|
| Database | All PostgreSQL tables | PostgreSQL dump |
| Trade Images | Trade screenshots and attachments | /app/backend/uploads/trades/ |
| Runtime Data | Backups and other persisted app data | /app/backend/src/data/ |
| Configuration | Sanitized environment and compose config | .env, docker-compose.yaml |
Quick Start¶
Create a Backup¶
Restore a Backup¶
Data overwrite
Restore replaces existing data. Create a fresh backup before restoring.
Docker Notes¶
The official Docker deployment already persists data with named volumes, so uploads and backup files survive container rebuilds by default.
Official volumes:
postgres_dataapp_uploadsapp_dataapp_logs
If you are migrating from an older deployment that did not persist uploads, copy them out before switching:
docker cp tradetally-app:/app/backend/uploads ./backend/uploads
docker compose down
docker compose up -d
Useful Commands¶
Manual Database Backup in Docker¶
Manual Database Restore in Docker¶
Start Containers if Needed¶
Verifying a Backup¶
tar -tzf tradetally_backup_20250124_120000.tar.gz
tar -xzf tradetally_backup_20250124_120000.tar.gz -O manifest.json
Troubleshooting¶
"Database container is not running"¶
Permission Denied¶
Large Backups¶
Large backups usually come from:
- many uploaded images
- accumulated runtime data
- large log files