Deploy on Render
The repository’s render.yaml is a Render Blueprint. It creates a web service from the published image ghcr.io/deejpotter/day-planner and a Postgres 16 database.
Create the Blueprint
Section titled “Create the Blueprint”- Fork the repository, or copy
render.yamlinto a repository of your own. - In Render, select New → Blueprint and choose that repository.
- Render reads
render.yaml, shows the service and database it will create, and asks for the values markedsync: false.
Fill in the prompted values
Section titled “Fill in the prompted values”| Variable | Value |
|---|---|
BETTER_AUTH_URL |
The service URL, such as https://day-planner.onrender.com, or your custom domain |
ADMIN_EMAIL, ADMIN_PASSWORD |
Optional: create the admin at first start |
SMTP_URL |
Optional: see Email |
BETTER_AUTH_SECRET is generated by Render once and shared by every instance. DATABASE_URL comes from the database.
How it deploys
Section titled “How it deploys”- Migrations run once per deploy as the pre-deploy command, on a separate instance, before the new version takes traffic. That’s why the Blueprint sets
RUN_MIGRATIONS_ON_START=false. - Health checks use
/api/health. - Rate limits use
RATE_LIMIT_STORAGE=database, so they hold if you add instances.
Updating
Section titled “Updating”Services that run a published image don’t redeploy when latest changes. To upgrade, change image.url to a newer version tag in render.yaml, or select Manual Deploy in Render. Keep old tags in mind for rollbacks; see Upgrading.
See also
Section titled “See also”- Running more than one instance: what changes when you scale up
- Health endpoint: what Render’s health check reads
- First-run setup: find
setup_token=in the service’s logs