fix: update cleanup script to use correct coordinator database path
- Change from in-memory database to file-based SQLite at coordinator.db - Remove create_db_and_tables() call as tables already exist - Use same database path as coordinator-api for consistency - Apply database path fix to both cleanup_fake_gpus() and show_remaining_gpus()
This commit is contained in:
233
docs/trail/GITHUB_SYNC_GUIDE.md
Normal file
233
docs/trail/GITHUB_SYNC_GUIDE.md
Normal file
@@ -0,0 +1,233 @@
|
||||
# 🔄 GitHub Sync Guide for AITBC Dual Environments
|
||||
|
||||
## 📋 **Overview**
|
||||
|
||||
Maintain consistency between:
|
||||
- **Localhost at1**: Development environment (`/home/oib/windsurf/aitbc`)
|
||||
- **AITBC Server**: Production environment (`/opt/aitbc`)
|
||||
- **GitHub**: Central repository (`oib/AITBC`)
|
||||
|
||||
---
|
||||
|
||||
## 🎯 **Recommended Workflow**
|
||||
|
||||
### **Development Flow:**
|
||||
```
|
||||
Localhost at1 → GitHub → AITBC Server
|
||||
```
|
||||
|
||||
### **Step 1: Develop on Localhost**
|
||||
```bash
|
||||
# On localhost at1
|
||||
cd /home/oib/windsurf/aitbc
|
||||
# ... make your changes ...
|
||||
|
||||
# Test locally
|
||||
./scripts/test_gpu_release_direct.py
|
||||
aitbc --test-mode marketplace gpu list
|
||||
```
|
||||
|
||||
### **Step 2: Push to GitHub**
|
||||
```bash
|
||||
# Use sync script (recommended)
|
||||
./scripts/sync.sh push
|
||||
|
||||
# Or manual commands
|
||||
git add .
|
||||
git commit -m "feat: your descriptive message"
|
||||
git push github main
|
||||
```
|
||||
|
||||
### **Step 3: Deploy to Server**
|
||||
```bash
|
||||
# On aitbc server
|
||||
ssh aitbc
|
||||
cd /opt/aitbc
|
||||
./scripts/sync.sh deploy
|
||||
|
||||
# Or manual commands
|
||||
git pull github main
|
||||
systemctl restart aitbc-coordinator
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 🛠️ **Sync Script Usage**
|
||||
|
||||
### **On Localhost at1:**
|
||||
```bash
|
||||
./scripts/sync.sh status # Show current status
|
||||
./scripts/sync.sh push # Push changes to GitHub
|
||||
./scripts/sync.sh pull # Pull changes from GitHub
|
||||
```
|
||||
|
||||
### **On AITBC Server:**
|
||||
```bash
|
||||
./scripts/sync.sh status # Show current status
|
||||
./scripts/sync.sh pull # Pull changes from GitHub
|
||||
./scripts/sync.sh deploy # Pull + restart services
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 🚨 **Important Rules**
|
||||
|
||||
### **❌ NEVER:**
|
||||
- Push directly from production server to GitHub
|
||||
- Make production changes without GitHub commit
|
||||
- Skip testing on localhost before deployment
|
||||
|
||||
### **✅ ALWAYS:**
|
||||
- Use GitHub as single source of truth
|
||||
- Test changes on localhost first
|
||||
- Commit with descriptive messages
|
||||
- Use sync script for consistency
|
||||
|
||||
---
|
||||
|
||||
## 🔄 **Sync Scenarios**
|
||||
|
||||
### **Scenario 1: New Feature Development**
|
||||
```bash
|
||||
# Localhost
|
||||
git checkout -b feature/new-feature
|
||||
# ... develop feature ...
|
||||
git push github feature/new-feature
|
||||
# Create PR, merge to main
|
||||
|
||||
# Server
|
||||
./scripts/sync.sh deploy
|
||||
```
|
||||
|
||||
### **Scenario 2: Bug Fix**
|
||||
```bash
|
||||
# Localhost
|
||||
# ... fix bug ...
|
||||
./scripts/sync.sh push
|
||||
|
||||
# Server
|
||||
./scripts/sync.sh deploy
|
||||
```
|
||||
|
||||
### **Scenario 3: Server Configuration Fix**
|
||||
```bash
|
||||
# Server (emergency only)
|
||||
# ... fix configuration ...
|
||||
git add .
|
||||
git commit -m "hotfix: server configuration"
|
||||
git push github main
|
||||
|
||||
# Localhost
|
||||
./scripts/sync.sh pull
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 📁 **File Locations**
|
||||
|
||||
### **Localhost at1:**
|
||||
- **Working Directory**: `/home/oib/windsurf/aitbc`
|
||||
- **Sync Script**: `/home/oib/windsurf/aitbc/scripts/sync.sh`
|
||||
- **Database**: `./data/coordinator.db`
|
||||
|
||||
### **AITBC Server:**
|
||||
- **Working Directory**: `/opt/aitbc`
|
||||
- **Sync Script**: `/opt/aitbc/scripts/sync.sh`
|
||||
- **Database**: `/opt/aitbc/apps/coordinator-api/data/coordinator.db`
|
||||
- **Service**: `systemctl status aitbc-coordinator`
|
||||
|
||||
---
|
||||
|
||||
## 🔍 **Verification Commands**
|
||||
|
||||
### **After Deployment:**
|
||||
```bash
|
||||
# Check service status
|
||||
systemctl status aitbc-coordinator
|
||||
|
||||
# Test API endpoints
|
||||
curl -s "http://localhost:8000/v1/marketplace/gpu/list"
|
||||
curl -s -X POST "http://localhost:8000/v1/marketplace/gpu/{id}/release"
|
||||
|
||||
# Check logs
|
||||
journalctl -u aitbc-coordinator --since "5 minutes ago"
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 🚀 **Quick Start Commands**
|
||||
|
||||
### **First Time Setup:**
|
||||
```bash
|
||||
# On localhost
|
||||
git remote add github https://github.com/oib/AITBC.git
|
||||
./scripts/sync.sh status
|
||||
|
||||
# On server
|
||||
git remote add github https://github.com/oib/AITBC.git
|
||||
./scripts/sync.sh status
|
||||
```
|
||||
|
||||
### **Daily Workflow:**
|
||||
```bash
|
||||
# Localhost development
|
||||
./scripts/sync.sh pull # Get latest
|
||||
# ... make changes ...
|
||||
./scripts/sync.sh push # Share changes
|
||||
|
||||
# Server deployment
|
||||
./scripts/sync.sh deploy # Deploy and restart
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 🎊 **Benefits**
|
||||
|
||||
### **Consistency:**
|
||||
- Both environments always in sync
|
||||
- Single source of truth (GitHub)
|
||||
- Version control for all changes
|
||||
|
||||
### **Safety:**
|
||||
- Changes tested before deployment
|
||||
- Rollback capability via git
|
||||
- Clear commit history
|
||||
|
||||
### **Efficiency:**
|
||||
- Automated sync script
|
||||
- Quick deployment commands
|
||||
- Status monitoring
|
||||
|
||||
---
|
||||
|
||||
## 📞 **Troubleshooting**
|
||||
|
||||
### **Common Issues:**
|
||||
|
||||
#### **"Don't push from production server!"**
|
||||
```bash
|
||||
# Solution: Make changes on localhost, not server
|
||||
# Or use emergency hotfix procedure
|
||||
```
|
||||
|
||||
#### **Merge conflicts:**
|
||||
```bash
|
||||
# Solution: Resolve conflicts, then commit
|
||||
git pull github main
|
||||
# ... resolve conflicts ...
|
||||
git add .
|
||||
git commit -m "resolve: merge conflicts"
|
||||
git push github main
|
||||
```
|
||||
|
||||
#### **Service won't restart:**
|
||||
```bash
|
||||
# Check logs
|
||||
journalctl -u aitbc-coordinator --since "1 minute ago"
|
||||
# Fix configuration issue
|
||||
systemctl restart aitbc-coordinator
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
**🎉 With this workflow, both environments stay perfectly synchronized!**
|
||||
Reference in New Issue
Block a user