Skip to content

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.

  1. Fork the repository, or copy render.yaml into a repository of your own.
  2. In Render, select New → Blueprint and choose that repository.
  3. Render reads render.yaml, shows the service and database it will create, and asks for the values marked sync: false.
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.

  • 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.

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.