create-vumlo

The installer of Vumlo, a self-hosted LMS for one school or university.

npx create-vumlo

It downloads the newest release, checks it against the release’s SHA256SUMS, keeps only the parts you pick (web app, desktop app), asks a few questions and writes vumlo.toml and .env (with a generated database password). Then it prints the commands that build and start Vumlo. It needs Node 20 or newer, and Docker with the Compose plugin to run what it installs.

What it asks, and the flag that answers it (with --yes, or without a terminal, every question takes its default):

Question Flag Default
Where to install --dir vumlo
Institution name --name Vumlo
School or university (cannot be changed later) --mode university
Public address --origin http://localhost:3000
Short name, for “Vumlo | Short name” --short-name initials of the name
Email domains that may sign up --domains nobody
Language of the web app --language en
Time zone --time-zone this computer’s
Parts besides the backend --parts web

--version 0.4.1 takes a release other than the newest. --archive file.tar.gz unpacks a local archive instead (no checksum is checked). Nothing is installed into a folder that is not empty, and a failed run removes what it made.

The guide to everything after this (TLS, mail, upgrades, backups) is docs/install.md in the installed folder.

Examples

Everything answered on the command line, for a script or a server without a terminal:

npx create-vumlo --dir vumlo --name "Example University" --mode university \
  --origin https://lms.example.edu --short-name EU --domains example.edu \
  --language en --time-zone Europe/Kyiv --parts web,desktop --yes

A school instead of a university, in Ukrainian, with only the backend and the web app (the default):

npx create-vumlo --dir licey --name "Liceum 7" --mode school \
  --origin https://lms.licey7.example --language uk --yes

An installation to look around on your own computer, with made-up people and courses:

npx create-vumlo --yes
cd vumlo
./vumlo config check && ./vumlo brand apply
export COMPOSE_FILE=deploy/compose.yaml COMPOSE_ENV_FILES=.env
docker compose build
docker compose up -d --wait postgres
./vumlo db migrate
./vumlo seed --demo
docker compose up -d

The first build compiles the Rust backend and needs several GB of RAM or swap. The browser demo at vumlo-demo.partum55.me shows the same screens without installing anything.

Version v0.4.1. This page on GitHub