Self-hosting
Self-hosting means you run Choir Master CMS yourself, on a server or Cloudflare account that you control, instead of having us host it. This part of the guide is for the person who installs and looks after that server. The choir's webmaster, who only edits the site in a browser, does not need it.
What you take on
When you host it yourself, these are yours to do and to pay for:
- A server to run it on. A small Linux server, a container host, or a Cloudflare account. See Choose where to run it.
- A domain name with HTTPS. Logins do not work over plain
http://on a real site. See Put it behind HTTPS. - A way to send email. Members log in with an emailed link, and announcements and receipts go out by email. You choose and set up the email service. See Email: what the site sends and how to choose a provider.
- Updates. The site tells you when a new version is out. On most set-ups it can install it with one click; on others you do it by hand. See How updates work.
- Backups. Nobody else holds a copy of your data. See What to back up.
- Keeping it secure and running. See Security and Logs and health checks.
What you get
- Every feature of the product. There are no plans on a self-hosted site: the member portal, tickets, donor records, receipts and the rest are all there. The plan names you see in the hosted service do not apply.
- A custom style sheet. You can add your own CSS to the public pages. See Add a custom style sheet.
- Your own defaults. A file,
site.config.json, holds the text and settings a new site starts from. See Ship your own defaults. - Your choice of parts. The database, file storage, sessions, email service and bot check are each a setting, not a fixed choice.
- Your data on your own systems.
What you do not get at version 1.6.12
- Card payments. Taking tickets or gifts by card online works only on sites we host, through a connected Stripe account. On a self-hosted site, tickets and gifts are recorded without a card payment. See Hosted and self-hosted: what is different.
- The Email page in the admin panel. The page that lets a choir send its announcements through its own mail account belongs to the hosted service. On your own server you set up email in the server's settings instead. See Send announcements through a different service.
What you need before you start
| You need | Why |
|---|---|
| Node.js 22.13 or newer, or Docker, or a Cloudflare account | Something to run the software on. Pick one. |
| A domain name and the ability to point it at your server | Visitors and members need an address, and it must be served over HTTPS. |
| A way to send email | Member login links, announcements, ticket confirmations and receipts. |
| A licence key | The licence terms require one for every self-hosted site, even the free Community edition. It is for one website. The software starts without it, but then cannot tell you when a new version is out. |
The software is called Choir Master CMS. You will see the name choir-manager on files, images and volumes: that is the same product under its older name, and it appears in the download's package.json, the Docker image name and the Cloudflare Worker name.
The licence lets you run the software for your own website only. Hosting sites for other organisations is not allowed (section A6 of the licence terms). A web designer may install it for a client if the client holds their own licence key.
How this part is arranged
Read in this order the first time.
- Install gets a site running.
- Requirements and Choose where to run it.
- Get a licence key and the download, then What is in the download.
- Optionally Try it on your own computer before a real install.
- One install path: plain Node, Docker or Cloudflare Workers.
- After installing: first login and go-live checklist.
- Configure explains every setting: the settings every site needs, the database, file storage, sessions, the bot check, admin sign-in and email.
- Operate is for afterwards: licence key, updates, backups, security, logs and troubleshooting.
When the site is running, hand it to the choir's webmaster with Log in to the admin panel.