Skip to main content

Hosted and self-hosted: what is different

Choir Master CMS is one product, and most of this guide applies to both ways of running it. This page collects every place where they differ, so you can check a page of the guide against the way you run your site. Each row says what happens on both sides.

The differences​

TopicOn a site we hostOn a self-hosted site
Plans and editionsFree, Starter or Premium decides which features exist; see Plans and editions compared. What a plan lacks is hidden and refused.The Community or Standard edition. Every feature is present on both. The difference is the "Powered by" link and what the licence includes.
Card paymentsAvailable on Premium once the choir connects its Stripe account; see Take card payments: connect Stripe.Not available. Tickets are paid for on arrival (or are free), and gifts are recorded by hand.
Own mail serverThe Email page in the admin panel (Starter and Premium) lets a choir send its announcements through its own mail account.There is no Email page. Set the same thing up on the server with the ANNOUNCEMENT_ settings; see Send announcements through a different service.
Sender of emailMail comes from an address of ours with the choir's name as the sender's name; replies go to the choir's public contact email.The sender is EMAIL_FROM; replies go to EMAIL_REPLY_TO if you set it.
Choosing an email providerNot needed: email is working.Required. Out of the box email is only written to the server log; see Email.
Where emailed links pointThe site's own address, whichever of its names was visited.SITE_URL. Required in production.
Custom style sheetNot available.Available to Site Admins under Site Settings, Theme; see Add a custom style sheet.
Admin loginEach admin has their own account and logs in with an emailed link. There is no shared password.By default one shared username and password from the server (ADMIN_AUTH=env). You can switch to a login for each admin by emailed link (ADMIN_AUTH=table); see Admin sign-in.
First adminCreated when the site is made; they are a Site Admin.The username and password on the server, or npm run admin:add.
UpdatesWe update every site at once. Nothing to do.You update: one click in the admin panel, by hand, or by replacing the Docker image; see How updates work.
Licence keyNone.Every edition, including Community, needs a licence key for its website, given to the server in LICENSE_KEY. Without it the site still runs, but warns and cannot check for updates; see Your licence key.
Domain nameConnected in your account portal: you add records at your domain registrar. Free sites have a cmcms.org address; your own domain needs Starter or Premium. See Use your own domain name.Your own DNS, pointed at your server or your Cloudflare Worker.
Guided setupShown the first time an admin opens the dashboard of every new site, until it is finished or skipped. The currency was chosen when the site was made.Shown only while the site still has the sample choir name from site.config.json ("Harmony Community Choir" unless you changed it), or once begun, until it is finished or skipped. A new site is asked for its currency. See Set up your site step by step.
Writing assistantPart of every plan, with a limit on the pieces of writing each site may ask for in a day.Off until you set ANTHROPIC_API_KEY; you pay for what it uses. AI_DAILY_LIMIT sets the daily limit (30 by default; 0 for none). See Let the writing assistant draft your words.
Sending announcements and mailingsThey join a queue shared by all sites and are sent in the background. The admin may leave the page and sees how it is going when they return.The admin's open page drives the sending, a batch at a time, so the page must stay open until it finishes. See Sender addresses, sending speed and testing.
Defaults in site.config.jsonA file that ships with the service. The choir changes what it likes in Site Settings.A file at the root of your installation that you may edit. The server reads it when it starts and warns of mistakes in it with [site.config.json] lines; see Ship your own defaults.
Paused notice and plan labelA site we pause shows visitors "This site is paused", and the admin dashboard says so. A Free site's dashboard says "This site is on the Free plan" with a See plans button.Neither exists.
Database, file storage and sessionsOurs to look after.Your choice of SQLite, PostgreSQL, MySQL, MariaDB or D1; local, S3-compatible or R2 storage; the session store. See Choose a database.
BackupsSee Your data for exports and how long things are kept.Yours to make and to test; see What to back up.
HelpGet help from us.The community edition has no support; see the licence terms.

Which guide pages apply to you​

  • Pages in Your website, Members, Tickets and Donors apply to both, with boxes headed "On a site we host" and "On a self-hosted site" where the two differ.
  • Hosted service applies only to a site we host.
  • Self-hosting applies only to a site you run.
  • Pages marked with a plan badge, such as Premium plan, apply to a hosted site only on that plan; on a self-hosted site the feature is always there.

Moving between the two​

To take a copy of a hosted site's data, see Your data. To put a backup onto a server of your own, or move a self-hosted site to a new server, see Restore a backup, or move to a new server.