Render
Deploy Inboxorcist to Render with automatic deployments.
Render provides automatic deployments from Git with a free tier.
Blueprint Deployment (Recommended)
Render can auto-detect the render.yaml blueprint file:
- Log in to Render
- Click New > Blueprint
- Connect your GitHub repository
- Render will detect
deploy/render.yamlautomatically - Configure environment variables when prompted
- Click Apply
Manual Deployment
Step 1: Create Web Service
- Click New > Web Service
- Connect your GitHub repository
- Configure the service:
| Setting | Value |
|---|---|
| Name | inboxorcist |
| Environment | Docker |
| Dockerfile Path | Dockerfile |
| Instance Type | Starter |
Step 2: Add Persistent Disk
For SQLite persistence:
- Go to Disks
- Click Add Disk
- Configure:
- Name:
inboxorcist-data - Mount Path:
/app/data - Size: 1 GB
- Name:
Step 3: Set Environment Variables
Go to Environment and add:
# Required - Security
JWT_SECRET=your-jwt-secret-min-32-chars
ENCRYPTION_KEY=your-64-character-hex-encryption-key
# App URL (your Render domain)
APP_URL=https://inboxorcist.onrender.com
# Optional - Google OAuth (can also be configured via /setup UI)
# GOOGLE_CLIENT_ID=your-client-id.apps.googleusercontent.com
# GOOGLE_CLIENT_SECRET=GOCSPX-your-secretGoogle OAuth credentials are optional. You can configure them via the web UI at /setup after deployment.
Render can auto-generate secrets. Set generateValue: true in the blueprint for JWT_SECRET and ENCRYPTION_KEY.
Step 4: Configure Health Check
Go to Settings and set:
- Health Check Path:
/health - Health Check Port: 6616
Step 5: Deploy
Click Manual Deploy > Deploy latest commit or push to trigger automatic deployment.
Database Options
Option A: Render Managed PostgreSQL (Recommended)
- Click New > PostgreSQL
- Create database with:
- Name:
inboxorcist-db - Database:
inboxorcist - User:
inboxorcist
- Name:
- Copy the Internal Database URL
- Add to your web service environment variables:
DATABASE_URL=postgresql://...internal-connection-string
Option B: External PostgreSQL
If you have an existing PostgreSQL database (e.g., Supabase, Neon, or your own):
- Go to Environment in your web service
- Add
DATABASE_URLwith your connection string:postgres://user:password@host:5432/dbname
Option C: SQLite with Persistent Disk
If no DATABASE_URL is set, Inboxorcist uses SQLite automatically. To persist data, add a disk (see Step 2 above).
Custom Domain
- Go to Settings > Custom Domains
- Add your domain
- Configure DNS as instructed
- Update
APP_URLto your custom domain
Auto-Deploy
Render automatically deploys when you push to the connected branch. To disable:
- Go to Settings
- Toggle Auto-Deploy off
Monitoring
Logs
View real-time logs in the Logs tab.
Metrics
Monitor CPU, memory, and bandwidth in the Metrics tab.
Alerts
Configure alerts for downtime in Settings > Notifications.
Pricing
Render's free tier includes:
- 750 hours/month of web service runtime
- Auto-sleep after 15 minutes of inactivity
- 100 GB bandwidth
Free tier services spin down after inactivity. First request after sleep takes 30-60 seconds.
Blueprint Reference
The deploy/render.yaml file configures:
services:
- type: web
name: inboxorcist
runtime: docker
dockerfilePath: ./Dockerfile
healthCheckPath: /health
disk:
name: inboxorcist-data
mountPath: /app/data
sizeGB: 1
envVars:
- key: JWT_SECRET
generateValue: true
- key: ENCRYPTION_KEY
generateValue: true
# Google OAuth can be configured via /setup UI or added here:
# - key: GOOGLE_CLIENT_ID
# sync: false
# - key: GOOGLE_CLIENT_SECRET
# sync: falseTroubleshooting
Service Won't Start
Check the Logs tab for startup errors. Common issues:
- Missing environment variables
- Health check failing (wrong path or port)
Slow Cold Starts
Free tier services sleep after inactivity. Upgrade to paid plan for always-on.
Disk Full
If SQLite database grows large:
- Go to Disks
- Increase disk size
- Redeploy
OAuth Redirect Mismatch
Ensure your Google Cloud Console redirect URI matches ${APP_URL}/auth/google/callback exactly, including https://.
