2.9 KiB
2.9 KiB
Data Backup and Restore Guide
Overview
Your traceability application uses Docker volumes for persistent data storage. Data survives container restarts, updates, and redeployments automatically.
Data Location
- Docker Volume:
traceability_traceability_data - Backup Directory:
/opt/traceability-backups - Data Files: JSON files stored in the volume
auth.json- User accounts and authenticationbudget.json- Transactions, founders, settings, targetsplanning.json- Sprints, tasks, comments, time logsdocumentation.json- Documents and categories
Backup Commands
Create a Backup
cd /opt/traceability
./deploy.sh --backup
Manual Backup
mkdir -p /opt/traceability-backups
docker run --rm \
-v traceability_traceability_data:/data \
-v /opt/traceability-backups:/backup \
alpine tar -czf /backup/backup_$(date +%Y%m%d_%H%M%S).tar.gz -C /data .
Restore Commands
Restore from Backup
cd /opt/traceability
./deploy.sh --restore /opt/traceability-backups/backup_YYYYMMDD_HHMMSS.tar.gz
Manual Restore
docker run --rm \
-v traceability_traceability_data:/data \
-v /opt/traceability-backups:/backup \
alpine sh -c "rm -rf /data/* && tar -xzf /backup/backup_YYYYMMDD_HHMMSS.tar.gz -C /data"
Deployment with Data Preservation
Standard Deployment (with automatic backup)
cd /opt/traceability
./deploy.sh
Quick Deployment (skip backup)
./deploy.sh --skip-backup
Data Migration
Export Data from One Server
# On source server
./deploy.sh --backup
scp /opt/traceability-backups/backup_*.tar.gz user@new-server:/tmp/
Import Data to New Server
# On destination server
./deploy.sh --restore /tmp/backup_YYYYMMDD_HHMMSS.tar.gz
./deploy.sh --skip-backup
Automatic Backups (Cron)
Add to crontab for daily backups:
# Edit crontab
crontab -e
# Add this line for daily backup at 2 AM
0 2 * * * /opt/traceability/deploy.sh --backup >> /var/log/traceability-backup.log 2>&1
Viewing Data
Inspect Volume Contents
docker run --rm -v traceability_traceability_data:/data alpine ls -la /data
View Specific Data File
docker run --rm -v traceability_traceability_data:/data alpine cat /data/auth.json
Troubleshooting
Data Not Persisting
- Check if volume exists:
docker volume ls | grep traceability - Inspect volume:
docker volume inspect traceability_traceability_data - Check data service logs:
docker logs data_service
Restore Failed
- Ensure backup file exists and is readable
- Stop services first:
docker compose down - Try manual restore (see above)
- Restart services:
docker compose up -d
Volume Full
# Check volume size
docker system df -v
# Clean old backups
ls -t /opt/traceability-backups/backup_*.tar.gz | tail -n +11 | xargs rm --