Skip to main content

What is in the download

The download is a single .tar.gz file that is ready to run as it is. This page lists what is inside, what is missing, and how to unpack it without making a mess. Read it before you install.

Ready to run​

The package is prebuilt. The website is already built, and the server's dependencies are already installed. You do not run npm install or npm run build, and you do not need build tools.

What is inside​

ItemWhat it is for
dist/The built website that visitors, members and admins see. The server sends these files. On Cloudflare they are the Worker's static assets.
server/The server: the API, the adapters for databases, storage, sessions and email, the launcher (server/launcher.js), and the database schema files in server/db/schema/.
shared/Code that both the server and the website use, such as the settings schema and theme presets.
scripts/The helper commands: check-config.js, migrate.js, seed-demo.js and add-admin.js. The folder holds other files too, for the people who make releases and for the hosted service. You will not use those.
site.config.jsonThe default text and settings a new site starts from. You can edit it before first start. See Ship your own defaults.
package.json, package-lock.jsonThe version number, the npm scripts and the list of dependencies.
node_modules/The server's dependencies, already installed.
wrangler.toml.exampleA template for the Cloudflare route. See wrangler.toml explained. Ignore it unless you deploy to Cloudflare.
wrangler.hosted.toml.exampleA template for the hosted service, which runs many sites from one deployment. It is not for you: the licence does not allow hosting sites for other organisations. Ignore it.
CHANGELOG.mdWhat changed in each version, in words for a choir's webmaster.
LICENSE.md, LICENSE.fr.mdThe licence terms, in English and in French.
NOTICES.mdThe open source components inside the software, and their licences.

What is not inside​

  • No Dockerfile or Compose files. For Docker you write a short Dockerfile of your own, and this guide gives it to you: see Run it in Docker. No container image is published either, so there is nothing to pull.
  • No .env.example. The settings you need are in The settings every site needs.
  • No source code and no build tools. Nothing in the package can rebuild the website. That is why the commands npm run build, npm run dev:client and npm run deploy:cloudflare do not work from the download.
  • No wrangler. For Cloudflare, npx wrangler fetches it when you run it. See Deploy to Cloudflare Workers.
  • No .bin folders inside node_modules: they are links, which some systems refuse to unpack, and nothing needs them.

Unpack it​

The archive unpacks into the folder you are in, with no top-level folder of its own. If you unpack it in your home folder you will scatter files there. Make a folder first:

mkdir choir-site
tar -xzf choirmaster-cms-1.6.12.tar.gz -C choir-site
cd choir-site
ls

-C choir-site tells tar to unpack into that folder, and the folder must already exist. You should see dist, server, shared, scripts, node_modules and the files from the table.

For a server, unpack where it will live, for example /opt/choirmaster: see Install on a Linux server with Node.

The commands that work from the download​

Run these from the folder you unpacked into. Settings are read from the environment; see Give the server its settings.

CommandWhat it does
npm startStarts the site through the launcher. The launcher is what makes one-click updates possible.
npm run start:directStarts the server without the launcher. There are no one-click updates this way.
npm run config:checkPrints the settings the server will use, with secrets hidden, and lists problems. See Check your configuration.
npm run db:migrateCreates or updates the database schema. The server also does this when it starts. See How the database schema is kept up to date.
npm run db:seed-demoPuts sample content into an empty database.
npm run admin:add -- someone@example.org "Their Name"Adds an admin who logs in by emailed link. See Add the first admin.

Other scripts in package.json (build, test, dev:*, release*, notices, deploy:cloudflare) are for people working on the source, and do not work from the download.

Next​

Try it on your own computer, or go straight to your install path: Node, Docker or Cloudflare.