Skip to content

Upgrades

Control plane

bash
# Pull the new image
docker pull registry.nucleuslms.io/nucleus-control-plane:<new-version>

# Restart — the entrypoint runs `prisma migrate deploy` automatically
docker compose -f deploy/compose/docker-compose.prod.yml --env-file .env.production up -d

Pending migrations apply on every container start. Roll back by pulling the previous image tag and restarting; the migration runner is idempotent and will no-op if the schema is already at the target version.

Plugins

Plugin updates ship as standard Moodle plugin upgrades. Drop the new plugin tarball into each Moodle's local/ directory and run the upgrade UI (or php admin/cli/upgrade.php).

The control plane and plugins are versioned in lock-step within a major. Upgrade the control plane first, then the plugins; the protocol is forward-compatible within a major release.

Helm chart

bash
helm repo update
helm upgrade <release-name> nucleus/nucleus-moodle --version <new-version> \
  --namespace <tenant-ns> \
  --reuse-values

--reuse-values keeps your per-tenant size, federation mode, and TLS overrides intact.

Support window

  • CVE patches and minor-version updates — 12 months from your purchase date. Notification by email + via the customer registry.
  • Major version upgrades during the support window — included.
  • Major version upgrades after the support window — included only if you renew. Existing installs keep working; there's no remote licence enforcement.

Breaking changes

We aim for backwards-compatible protocol changes within a major version. Breaking changes get an ADR in your distribution and a migration guide. The API versioning policy covers the HTTP API specifically.

Released under the GPL v3 license.