Your render.yaml has been updated to support 3 environments with separate DATABASE_URLs and configurations:
- Production (
icc-rule-engine-prod) - Staging (
icc-rule-engine-staging) - Development (
icc-rule-engine-dev)
- Service Name:
icc-rule-engine-prod - Worker Name:
icc-rule-engine-worker-prod - Environment:
production - Demo Mode:
false - Auto Deploy:
true - Metrics:
enabled - Database: Production PostgreSQL (separate DATABASE_URL)
- Redis: Production Redis (separate REDIS_URL)
- Service Name:
icc-rule-engine-staging - Worker Name:
icc-rule-engine-worker-staging - Environment:
staging - Demo Mode:
false - Auto Deploy:
false(manual deployment) - Metrics:
enabled - Database: Staging PostgreSQL (separate DATABASE_URL)
- Redis: Staging Redis (separate REDIS_URL)
- Service Name:
icc-rule-engine-dev - Worker Name:
icc-rule-engine-worker-dev - Environment:
development - Demo Mode:
true - Auto Deploy:
false(manual deployment) - Metrics:
disabled - Database: Development PostgreSQL (separate DATABASE_URL)
- Redis: Development Redis (separate REDIS_URL)
Each environment will have its own separate database:
DATABASE_URL: postgresql://user:pass@prod-host:5432/icc_rules_prod?sslmode=requireDATABASE_URL: postgresql://user:pass@staging-host:5432/icc_rules_staging?sslmode=requireDATABASE_URL: postgresql://user:pass@dev-host:5432/icc_rules_dev?sslmode=requireEach environment will have its own separate Redis instance:
REDIS_URL: redis://user:pass@prod-redis-host:6379/0REDIS_URL: redis://user:pass@staging-redis-host:6379/0REDIS_URL: redis://user:pass@dev-redis-host:6379/0# Deploy all environments
render deploy
# Or deploy specific environment
render deploy --service icc-rule-engine-prod
render deploy --service icc-rule-engine-staging
render deploy --service icc-rule-engine-devFor each service, set the following environment variables in the Render dashboard:
DATABASE_URL- Production PostgreSQL URLREDIS_URL- Production Redis URLJWT_SECRET- Production JWT secretAPI_KEY_SECRET- Production API key secretSTRIPE_API_KEY- Production Stripe API keySTRIPE_WEBHOOK_SECRET- Production Stripe webhook secret
DATABASE_URL- Staging PostgreSQL URLREDIS_URL- Staging Redis URLJWT_SECRET- Staging JWT secretAPI_KEY_SECRET- Staging API key secretSTRIPE_API_KEY- Staging Stripe API keySTRIPE_WEBHOOK_SECRET- Staging Stripe webhook secret
DATABASE_URL- Development PostgreSQL URLREDIS_URL- Development Redis URLJWT_SECRET- Development JWT secretAPI_KEY_SECRET- Development API key secret
For each environment, you'll need to:
-
Create PostgreSQL databases:
icc_rules_prod(Production)icc_rules_staging(Staging)icc_rules_dev(Development)
-
Run migrations:
# For each environment alembic upgrade head -
Seed data (if needed):
# For each environment python scripts/seed_data.py
For each environment, you'll need to:
-
Create Redis instances:
- Production Redis
- Staging Redis
- Development Redis
-
Configure Redis settings:
- Memory limits
- Persistence settings
- Security settings
After deployment, your services will be available at:
- Production:
https://icc-rule-engine-prod.onrender.com - Staging:
https://icc-rule-engine-staging.onrender.com - Development:
https://icc-rule-engine-dev.onrender.com
Each environment has health check endpoints:
- Production:
https://icc-rule-engine-prod.onrender.com/health - Staging:
https://icc-rule-engine-staging.onrender.com/health - Development:
https://icc-rule-engine-dev.onrender.com/health
- Metrics: Enabled
- Telemetry: Full telemetry pipeline
- Logging: Structured logging
- Monitoring: Full monitoring stack
- Metrics: Enabled
- Telemetry: Limited telemetry
- Logging: Structured logging
- Monitoring: Basic monitoring
- Metrics: Disabled
- Telemetry: Disabled
- Logging: Basic logging
- Monitoring: Minimal monitoring
- HTTPS Only: All traffic encrypted
- Secure Secrets: Strong JWT and API secrets
- Database Security: SSL required
- Redis Security: Authentication enabled
- HTTPS Only: All traffic encrypted
- Secure Secrets: Strong JWT and API secrets
- Database Security: SSL required
- Redis Security: Authentication enabled
- HTTPS Only: All traffic encrypted
- Basic Secrets: Development JWT and API secrets
- Database Security: SSL required
- Redis Security: Basic authentication
- Plan: Starter (can upgrade to Standard/Pro as needed)
- Auto Deploy: Enabled
- Always On: Yes
- Plan: Starter
- Auto Deploy: Disabled (manual deployment)
- Always On: Yes (for testing)
- Plan: Starter
- Auto Deploy: Disabled (manual deployment)
- Always On: No (can be paused when not in use)
-
Database Connection Issues:
- Verify DATABASE_URL is correct
- Check database credentials
- Ensure SSL is properly configured
-
Redis Connection Issues:
- Verify REDIS_URL is correct
- Check Redis credentials
- Ensure Redis is accessible
-
Environment Variable Issues:
- Check all required variables are set
- Verify variable values are correct
- Check for typos in variable names
-
Deployment Issues:
- Check build logs
- Verify dependencies are installed
- Check for build errors
# Check service status
render services list
# Check service logs
render logs --service icc-rule-engine-prod
# Check service environment
render env list --service icc-rule-engine-prod- Deploy the services using the render.yaml configuration
- Set up databases for each environment
- Configure Redis for each environment
- Set environment variables for each service
- Test each environment using the health check endpoints
- Monitor the services using Render's dashboard
Created: October 13, 2025
Updated: render.yaml with multi-environment support
Status: Ready for deployment