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