Spaces:
Paused
Paused
File size: 4,051 Bytes
729628a | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 | # Pre-Deployment & Post-Deployment Checklist
## Pre-Deployment (Local Machine)
- [x] Cleanup complete:
- [x] Removed test files (test_*.py)
- [x] Removed examples (example_*.py)
- [x] Removed virtual environments (.venv/)
- [x] Removed large model files (*.pt) - will download on DGX
- [x] Removed redundant analysis scripts
- [x] Removed documentation clutter
- [x] Files prepared:
- [x] .gitignore created (proper exclusions)
- [x] requirements-prod.txt created
- [x] LICENSE file present
- [x] Deployment scripts created
- [x] Git status:
- [x] All changes staged
- [x] Ready to commit
## Deployment Steps
### Step 1: Transfer Code to DGX
```bash
rsync -avz --exclude='.venv' --exclude='node_modules' \
/path/to/DrivingRepo/ \
<dgx-host>:/tmp/sensorflow-deploy/
```
### Step 2: Execute Deployment on DGX
```bash
ssh <dgx-host>
cd /tmp/sensorflow-deploy
sudo bash deploy/setup-dgx.sh /tmp/sensorflow-deploy
```
### Step 3: DNS Configuration (GoDaddy)
- [ ] Add A record: sensorflow.wael.bot → [DGX IP]
- [ ] Set TTL to 3600
- [ ] Wait for DNS propagation (5-10 minutes)
## Post-Deployment (Verify on DGX)
### Services
- [ ] Check sensorflow-studio service: `sudo systemctl status sensorflow-studio`
- [ ] Check accident-analysis service: `sudo systemctl status accident-analysis`
- [ ] Check nginx: `sudo systemctl status nginx`
### API Health Checks
```bash
# From DGX or via Tailscale
curl http://sensorflow.wael.bot/
curl http://sensorflow.wael.bot/api/studio/docs
curl http://sensorflow.wael.bot/api/analysis/docs
curl http://sensorflow.wael.bot/health/studio
curl http://sensorflow.wael.bot/health/analysis
```
### Logs Verification
```bash
sudo journalctl -u sensorflow-studio -n 20
sudo journalctl -u accident-analysis -n 20
sudo tail -20 /var/log/nginx/access.log
```
### Data & Models
- [ ] YOLOv8 models downloaded: `ls -lh /opt/sensorflow/studio/yolov8*.pt`
- [ ] React frontend built: `ls -la /opt/sensorflow/studio/dist/`
- [ ] Data directory present: `ls /opt/sensorflow/studio/data/`
### Performance
```bash
# Check resource usage
nvidia-smi # GPU load
ps aux | grep sensorflow
top -u sensorflow
```
## Maintenance & Monitoring
### Daily
- [ ] Monitor error logs: `sudo journalctl -u sensorflow-studio --since="1 hour ago"`
- [ ] Check disk usage: `df -h /opt/sensorflow/`
- [ ] Verify API responding: `curl http://sensorflow.wael.bot/health/studio`
### Weekly
- [ ] Review full logs: `sudo journalctl -u sensorflow-studio -p warning`
- [ ] Check model accuracy: Review `/opt/sensorflow/studio/runs/detect/`
- [ ] Backup database (if applicable)
### Monthly
- [ ] Review performance metrics
- [ ] Update dependencies: `pip list --outdated`
- [ ] Test disaster recovery
## Troubleshooting Quick Reference
| Issue | Command |
|-------|---------|
| Service won't start | `sudo journalctl -u sensorflow-studio -n 50` |
| Port conflict | `sudo lsof -i :8001` or `:8002` |
| Nginx error | `sudo nginx -t && sudo systemctl restart nginx` |
| DNS not resolving | `nslookup sensorflow.wael.bot` |
| High memory usage | `ps aux --sort=-%mem \| grep sensorflow` |
| Can't access API | Check firewall: `sudo ufw status` |
| Models not found | `bash /opt/sensorflow/studio/deploy/download-models.sh /opt/sensorflow/studio` |
## Rollback Procedure
If deployment fails:
1. Stop services:
```bash
sudo systemctl stop sensorflow-studio accident-analysis
```
2. Remove deployment:
```bash
sudo rm -rf /opt/sensorflow
```
3. Re-run deployment with fixed parameters:
```bash
sudo bash /tmp/sensorflow-deploy/deploy/setup-dgx.sh /tmp/sensorflow-deploy
```
## Completion Checklist
- [ ] DNS resolves to DGX
- [ ] Frontend accessible at sensorflow.wael.bot
- [ ] Studio API responding at /api/studio
- [ ] Analysis API responding at /api/analysis
- [ ] WebSocket connection works for telemetry
- [ ] Models downloaded and verified
- [ ] Services auto-restart on failure
- [ ] Logs are being captured
- [ ] Performance is acceptable
- [ ] Documentation updated (this file)
|