Spaces:
Runtime error
Runtime error
# π 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! π |