Files
traceability/DATA-BACKUP-GUIDE.md
2026-02-03 20:48:09 +01:00

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 authentication
    • budget.json - Transactions, founders, settings, targets
    • planning.json - Sprints, tasks, comments, time logs
    • documentation.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

  1. Check if volume exists: docker volume ls | grep traceability
  2. Inspect volume: docker volume inspect traceability_traceability_data
  3. Check data service logs: docker logs data_service

Restore Failed

  1. Ensure backup file exists and is readable
  2. Stop services first: docker compose down
  3. Try manual restore (see above)
  4. 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 --