6.7 KiB
6.7 KiB
Backup and Restore Plan
Overview
This document outlines the comprehensive backup and restore strategy to ensure zero code breakage during the server organization process.
Current State Backup
1. Complete Server Backup
# Create timestamped backup directory
BACKUP_DIR="/home/jcbeasley/backups/$(date +%Y%m%d_%H%M%S)"
mkdir -p $BACKUP_DIR
# Backup entire home directory
tar -czf $BACKUP_DIR/home_backup.tar.gz -C / home/jcbeasley
# Backup running processes information
ps aux > $BACKUP_DIR/running_processes.txt
ss -tulpn > $BACKUP_DIR/port_usage.txt
crontab -l > $BACKUP_DIR/crontab_backup.txt 2>/dev/null || echo "No crontab" > $BACKUP_DIR/crontab_backup.txt
2. Application-Specific Backups
IT Site Survey AI (Port 3003)
# Backup current working directory
tar -czf /home/jcbeasley/backups/$(date +%Y%m%d_%H%M%S)/site-survey-ai_backup.tar.gz -C /home/jcbeasley/.openclaw/workspace/Projects site-survey-ai
# Export current in-memory data (if possible)
# This would require adding an export endpoint to the running application
Client Onboarding (Port 5000)
# Backup current working directory
tar -czf /home/jcbeasley/backups/$(date +%Y%m%d_%H%M%S)/client-onboarding_backup.tar.gz -C /home/jcbeasley/.openclaw/workspace/Projects client-onboarding
Projects Manager (Port 3456)
# Backup current working directory
tar -czf /home/jcbeasley/backups/$(date +%Y%m%d_%H%M%S)/projects-manager_backup.tar.gz -C /home/jcbeasley projects-manager
3. Process Configuration Backup
# Document how each application is started
echo "IT Site Survey AI: cd /home/jcbeasley/.openclaw/workspace/Projects/site-survey-ai && source venv/bin/activate && nohup python3 app.py > app.log 2>&1 &" > /home/jcbeasley/backups/$(date +%Y%m%d_%H%M%S)/process_configs.txt
echo "Client Onboarding: cd /home/jcbeasley/.openclaw/workspace/Projects/client-onboarding && source venv/bin/activate && nohup python3 app.py > app.log 2>&1 &" >> /home/jcbeasley/backups/$(date +%Y%m%d_%H%M%S)/process_configs.txt
echo "Projects Manager: cd /home/jcbeasley/projects-manager && source venv/bin/activate && nohup python3 app.py > app.log 2>&1 &" >> /home/jcbeasley/backups/$(date +%Y%m%d_%H%M%S)/process_configs.txt
Restore Procedures
1. Full Server Restore
# Stop all running applications
pkill -f "python.*app.py"
pkill -f "python.*server.py"
# Restore from backup
tar -xzf /home/jcbeasley/backups/{backup_timestamp}/home_backup.tar.gz -C /
# Restart applications using documented procedures
2. Individual Application Restore
# Stop specific application
pkill -f "site-survey-ai"
# Restore application directory
tar -xzf /home/jcbeasley/backups/{backup_timestamp}/site-survey-ai_backup.tar.gz -C /home/jcbeasley/.openclaw/workspace/Projects/
# Restart application
cd /home/jcbeasley/.openclaw/workspace/Projects/site-survey-ai && source venv/bin/activate && nohup python3 app.py > app.log 2>&1 &
3. Process Restore
# Use documented process configurations to restart applications
# Follow the exact commands from process_configs.txt
Data Protection
1. In-Memory Data Export
Before any reorganization, export current data:
IT Site Survey AI Data Export
# Add endpoint to export all survey data
curl -s http://localhost:3003/api/surveys/responses > /home/jcbeasley/backups/$(date +%Y%m%d_%H%M%S)/site_survey_data.json
Client Onboarding Data Export
# Would need to add similar endpoint to export client data
2. Database Preparation
# Install PostgreSQL if not already installed
sudo apt update
sudo apt install postgresql postgresql-contrib
# Create databases for each application
sudo -u postgres createdb site_survey_ai
sudo -u postgres createdb client_onboarding
sudo -u postgres createdb projects_manager
Safety Checks
1. Pre-Change Verification
# Verify all applications are running
curl -s http://localhost:3003/ > /dev/null && echo "IT Site Survey AI OK" || echo "IT Site Survey AI DOWN"
curl -s http://localhost:5000/ > /dev/null && echo "Client Onboarding OK" || echo "Client Onboarding DOWN"
curl -s http://localhost:3456/ > /dev/null && echo "Projects Manager OK" || echo "Projects Manager DOWN"
# Verify data integrity
curl -s http://localhost:3003/api/surveys/responses | jq '.responses | length' > /home/jcbeasley/backups/$(date +%Y%m%d_%H%M%S)/response_count_before.txt
2. Post-Change Verification
# Verify all applications are running after changes
# Verify data integrity matches before state
# Verify no functionality loss
Rollback Triggers
1. Automatic Rollback Conditions
- Application fails to start after changes
- Data loss detected (>10% data missing)
- Critical functionality broken
- Performance degradation >50%
2. Manual Rollback Process
# Stop all new processes
pkill -f "new_application_structure"
# Restore from backup
./restore_script.sh {backup_timestamp}
# Verify restoration
./verification_script.sh
Backup Schedule
1. Before Any Major Change
- Complete backup of affected areas
- Document current state
- Export critical data
2. Daily Incremental Backups
# Script to run daily
0 2 * * * /home/jcbeasley/scripts/daily_backup.sh
3. Weekly Full Backups
# Script to run weekly
0 3 * * 0 /home/jcbeasley/scripts/weekly_full_backup.sh
Emergency Procedures
1. Immediate Rollback
# Single command to rollback entire server
/home/jcbeasley/scripts/emergency_rollback.sh {backup_timestamp}
2. Application-Specific Recovery
# Recover single application
/home/jcbeasley/scripts/recover_application.sh {app_name} {backup_timestamp}
Testing Restore Procedures
1. Monthly Restore Drills
- Test full server restore to test environment
- Test individual application restores
- Verify data integrity after restore
- Document any issues found
2. Restore Time Targets
- Full server restore: < 30 minutes
- Individual application restore: < 5 minutes
- Data verification: < 10 minutes
Backup Storage
1. Local Storage
/home/jcbeasley/backups/- Primary backup location- Rotating storage (keep last 30 days)
2. Offsite Storage
- Copy critical backups to external storage
- Cloud backup for disaster recovery
Monitoring
1. Backup Success Monitoring
- Log all backup operations
- Alert on backup failures
- Verify backup integrity
2. Restore Readiness Monitoring
- Periodic restore testing
- Backup accessibility verification
- Storage space monitoring
This comprehensive backup and restore plan ensures that any changes to the server organization can be safely made with full confidence in the ability to restore to a working state if needed.