Requirements
What a server needs to run Choir Master CMS: Node.js version, disk, HTTPS and email.
Choose where to run it
Plain Node, Docker or Cloudflare Workers compared, with a recommendation for a small choir.
Get a licence key and the download
Get your licence key and download the newest release from your account on choirmastercms.com.
What is in the download
The files in the release download, what each is for, what is not included, and how to unpack it.
Try it on your own computer
Unpack the download and run it on your own computer to see the site and admin panel before you install it for real.
Install on a Linux server with Node
Unpack the download on a Linux server, give it a user, a data folder and a settings file, and start it for the first time.
Run it as a systemd service
A complete systemd unit that starts the site at boot, restarts it if it stops, and keeps its log.
Put it behind HTTPS
Why a real site must use HTTPS, and working Caddy and nginx set-ups that put it in front of the site.
Run it on a platform service
What Fly.io, Railway, Render and similar hosts must provide for the site to work, stated as requirements.
Run it in Docker
Build a container image from the download and run it with a data volume, a settings file and a health check.
Docker Compose: one container with SQLite
The smallest Docker set-up, recommended for a small choir. One container, a SQLite database and one volume to back up.
Docker Compose: PostgreSQL and MinIO
A larger Docker stack with PostgreSQL for the database and MinIO for files, with options for MariaDB, Redis and managed services.
Docker: HTTPS, ports and volumes
Add automatic HTTPS to a Docker Compose set-up with Caddy, change the published port, and know what every volume holds.
Deploy to Cloudflare Workers
Deploy the downloaded site to Cloudflare Workers with a D1 database, R2 file storage and optional KV sessions, step by step.
wrangler.toml explained
Every part of the wrangler.toml example file, what it does, and which settings belong there and which are secrets.
Cloudflare: your domain and public files
Use your own domain on the Worker, send www to the bare domain, and decide how public files are served.
Cloudflare: limits and logs
The limits that apply to a site on Cloudflare Workers, and how to read its log.
After installing
Log in for the first time, then work through a checklist before you tell the choir the site is ready.