- Set correct table ID: mx149yctebfwvys (ai_data_Memory) - Updated type column with SingleSelect options - Added all required columns for corrections, preferences, episodes, decisions, validation - Fixed column options for type, severity, status fields
222 lines
6.7 KiB
Markdown
222 lines
6.7 KiB
Markdown
# 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
|
|
```bash
|
|
# 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)
|
|
```bash
|
|
# 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)
|
|
```bash
|
|
# 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)
|
|
```bash
|
|
# 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
|
|
```bash
|
|
# 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
|
|
```bash
|
|
# 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
|
|
```bash
|
|
# 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
|
|
```bash
|
|
# 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
|
|
```bash
|
|
# 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
|
|
```bash
|
|
# Would need to add similar endpoint to export client data
|
|
```
|
|
|
|
### 2. Database Preparation
|
|
```bash
|
|
# 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
|
|
```bash
|
|
# 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
|
|
```bash
|
|
# 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
|
|
```bash
|
|
# 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
|
|
```bash
|
|
# Script to run daily
|
|
0 2 * * * /home/jcbeasley/scripts/daily_backup.sh
|
|
```
|
|
|
|
### 3. Weekly Full Backups
|
|
```bash
|
|
# Script to run weekly
|
|
0 3 * * 0 /home/jcbeasley/scripts/weekly_full_backup.sh
|
|
```
|
|
|
|
## Emergency Procedures
|
|
|
|
### 1. Immediate Rollback
|
|
```bash
|
|
# Single command to rollback entire server
|
|
/home/jcbeasley/scripts/emergency_rollback.sh {backup_timestamp}
|
|
```
|
|
|
|
### 2. Application-Specific Recovery
|
|
```bash
|
|
# 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. |