- Render.com account
- Git repository (GitHub, GitLab, or Bitbucket)
config/master.keyfile (never commit to version control)
- Push code to Git repository
- Go to Render Dashboard
- Click "New +" → "Blueprint"
- Connect your repository
- Set
RAILS_MASTER_KEYenvironment variable (contents ofconfig/master.key) - Click "Apply"
The render.yaml file defines all infrastructure automatically.
- Click "New +" → "PostgreSQL"
- Name:
task-tracker-db - Plan: Free
- Save the "Internal Database URL"
- Click "New +" → "Web Service"
- Connect repository
- Build Command:
./bin/render-build.sh - Start Command:
bin/rails server - Plan: Free
| Variable | Value | Description |
|---|---|---|
DATABASE_URL |
[Internal Database URL from Step 1] | PostgreSQL connection string |
RAILS_MASTER_KEY |
[Contents of config/master.key] | Rails credentials encryption key |
RAILS_ENV |
production |
Rails environment |
WEB_CONCURRENCY |
2 |
Number of Puma workers (prevents memory issues on free tier) |
bin/render-build.sh: Build script (bundle, assets, migrations)render.yaml: Infrastructure-as-code Blueprintconfig/database.yml: Production usesDATABASE_URLenv var
- Services spin down after 15 minutes of inactivity
- Cold start: 30+ seconds for first request
- Database: 90 days retention limit
- 750 hours/month usage
- Never commit
config/master.key - Store
RAILS_MASTER_KEYin Render environment variables only - All secrets via environment variables
Assets fail to compile:
- Test locally:
bin/rails assets:precompile
Database connection issues:
- Verify
DATABASE_URLis set correctly - Ensure database created before web service
Application won't start:
- Check
RAILS_MASTER_KEYmatches localconfig/master.key - Review build logs for migration errors
Push to Git → Render auto-deploys → Migrations run automatically