Skip to content

Running on Render

render.yaml in the repository root is a Render Blueprint: Render builds the Dockerfile and runs one web service with HTTPS on https://<name>.onrender.com.

The Blueprint as is: the free plan with demo data and the demo accounts on the sign-in page.

  1. In the Render dashboard: New → Blueprint, connect GitHub and pick the repository.
  2. Render reads render.yaml, shows the tsmc service; Deploy Blueprint.
  3. The first build takes a few minutes; then open the address of the service.

Limits of the free plan: no disk, so the data lives until the service sleeps (after 15 minutes without requests) or restarts; waking up takes about a minute, and the demo is created again. 750 free hours a month per workspace. Good for showing TSMC, not for work.

A working server needs a disk, and disks are only on paid plans (Starter: $7 a month, plus $0.25 per GB of disk a month). In render.yaml:

  • plan: starter;
  • remove TSMC_DEMO;
  • uncomment disk (/data, 1 GB) and the variables TSMC_ADMIN_EMAIL and TSMC_ADMIN_PASSWORD. sync: false means Render asks for their values when the Blueprint is created; the administrator is made on the first start. Without them the first visitor of the site sets the administrator up.

The demo stand and the working server should be different services: the demo accounts must not appear on a working server, and demo data fills an empty database only.

With a disk the service runs one instance and a deploy has a few seconds of downtime (Render stops the old instance before starting the new one). Schema migrations run at start, the data stays on the disk.

The public address for links in reports and bugs is taken from RENDER_EXTERNAL_URL, which Render sets; with your own domain, set TSMC_PUBLIC_URL.

Render snapshots the disk daily and keeps snapshots for 7 days (the Disks section of the service). A consistent copy of your own is made in the service’s Shell:

Окно терминала
tsmc-server backup # → /data/backups/tsmc-backup-…

tsmc-server check and tsmc-server restore work the same way; see Operations.

Render mounts a disk owned by root. The image starts as root, hands the data folder to the node user and runs the server as node (docker-entrypoint.sh). The same image runs in Docker and compose.