Spaces:
Runtime error
Runtime error
File size: 4,079 Bytes
0469d65 |
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 |
# π Deploy SafetyMaster Pro to Render (Free)
## Why Render?
- **Free tier**: 512 MB RAM, automatic HTTPS, zero-downtime deploys
- **Easy setup**: Similar to Railway, just connect your GitHub repo
- **No credit card required** for free tier
- **Perfect for Flask apps** with AI models
## π Prerequisites
- GitHub account with your SafetyMaster Pro code
- Clean repository (large files already removed via .gitignore)
## π§ Step 1: Prepare Your App
Your app is already configured for cloud deployment! The existing files work perfectly:
- β
`Dockerfile` - Ready for containerized deployment
- β
`requirements.txt` - Python dependencies
- β
`web_interface.py` - Uses PORT environment variable
- β
`.dockerignore` - Excludes unnecessary files
## π Step 2: Deploy to Render
### Option A: Web Interface (Recommended)
1. **Sign up**: Go to [render.com](https://render.com) and create free account
2. **Connect GitHub**: Link your GitHub account
3. **Create Web Service**:
- Click "New +" β "Web Service"
- Select your SafetyMaster repository
- Choose "Docker" as environment
- Set service name: `safetymaster-pro`
### Option B: Using render.yaml (Advanced)
Create `render.yaml` in your project root:
```yaml
services:
- type: web
name: safetymaster-pro
env: docker
plan: free
dockerfilePath: ./Dockerfile
envVars:
- key: PORT
value: 10000
- key: PYTHONUNBUFFERED
value: 1
```
## βοΈ Step 3: Configuration
### Environment Variables (if needed)
- `PORT`: Automatically set by Render
- `SECRET_KEY`: Add your own secret key for Flask sessions
### Build Settings
- **Build Command**: Automatically detected from Dockerfile
- **Start Command**: Automatically detected from Dockerfile
## π― Step 4: Deploy
1. **Push to GitHub**: Make sure your latest code is pushed
2. **Auto-deploy**: Render will automatically build and deploy
3. **Monitor**: Watch the build logs in Render dashboard
4. **Access**: Your app will be available at `https://safetymaster-pro.onrender.com`
## π Expected Performance
### Free Tier Limits
- **RAM**: 512 MB (sufficient for your Flask app)
- **CPU**: 0.1 CPU units (shared)
- **Storage**: Ephemeral (files reset on restart)
- **Bandwidth**: 100 GB/month
- **Build time**: 15 minutes max
### AI Model Considerations
- Models download automatically on first run
- May take 2-3 minutes for first startup (cold start)
- Subsequent requests are fast
- App sleeps after 15 minutes of inactivity (free tier)
## π§ Troubleshooting
### Common Issues
1. **Build timeout**: Models are too large
- Solution: Models download at runtime (already configured)
2. **Memory issues**: App uses too much RAM
- Solution: Optimize model loading in `safety_detector.py`
3. **Slow startup**: First request takes time
- Solution: Normal behavior, subsequent requests are fast
### Optimization Tips
```python
# In safety_detector.py - already implemented
# Models download only when needed
# Efficient memory usage
# Automatic cleanup
```
## π Alternative Free Hosts
If Render doesn't work, try these:
### 1. Fly.io
- **Free tier**: 3 VMs, 3GB storage
- **Setup**: `flyctl launch` (requires credit card)
- **Pros**: Better performance, global edge
### 2. Koyeb
- **Free tier**: 1 web service
- **Setup**: Connect GitHub repo
- **Pros**: No credit card required
### 3. PythonAnywhere
- **Free tier**: 512MB storage
- **Setup**: Upload files manually
- **Pros**: Python-focused, very simple
## π Success!
Once deployed, your SafetyMaster Pro will be live at:
`https://your-app-name.onrender.com`
Features available:
- β
Real-time safety monitoring
- β
PPE detection (Hard Hat, Safety Vest, Mask)
- β
Violation alerts
- β
Web dashboard
- β
Image capture
## π Need Help?
- **Render Docs**: [render.com/docs](https://render.com/docs)
- **Community**: [community.render.com](https://community.render.com)
- **Support**: Free tier includes community support
---
**Ready to deploy?** Just push your code to GitHub and connect it to Render! π |