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)