Render Deployment
Overview
Synqed can be deployed to Render. The configuration lives in render.yaml (Blueprint).
Blueprint
render.yaml defines all services and the database:
Database
yaml
databases:
- name: synqed-db
databaseName: schedule_bot
user: schedule_bot_user
plan: freeBackend Service
yaml
services:
- type: web
name: synqed-backend
runtime: docker
dockerfilePath: ./Dockerfile
envVars:
- key: DATABASE_URL
fromDatabase:
name: synqed-db
property: connectionString
- key: JWT_SECRET
generateValue: true
- key: NODE_ENV
value: productionDashboard Service
yaml
- type: web
name: synqed-dashboard
runtime: docker
dockerfilePath: ./dashboard/Dockerfile
dockerContext: ./dashboard
envVars:
- key: NODE_ENV
value: productionSetup
1. Deploy the Blueprint
- Render dashboard -> "New" -> "Blueprint"
- Connect the GitHub repository
- Render detects
render.yamlautomatically - Services and database are provisioned
2. Set synced variables
The following variables must be set manually (marked as "Synced"):
DISCORD_TOKENDISCORD_GUILD_IDDISCORD_CLIENT_IDDISCORD_CLIENT_SECRETDISCORD_REDIRECT_URIADMIN_PASSWORD_HASHDASHBOARD_URLBOT_API_URLNEXT_PUBLIC_BOT_API_URL
3. Deploy
Once all variables are set: "Manual Deploy" -> "Clear build cache & deploy".
Notes
- Render free tier: services go to sleep after 15 minutes of inactivity
- A paid plan (Always On) is recommended for a Discord bot
JWT_SECRETis generated automaticallyDATABASE_URLis wired in automatically from the database
