Skip to content

PathLMS 0.124.0

Choose a tag to compare

@Ottomatic-Mike Ottomatic-Mike released this 24 Sep 15:29
· 6 commits to main since this release

What changed in this version

This is a normal update and it installs like any other. What is new is mostly about knowing what an update will do to you before you press the button.

What is new

  • The Update screen now tells you what the update will cost you, before you press anything. If the update moves the database, it says how long PathLMS will be switched off while that happens. That figure is worked out from the size of your own database, not from a general guess. If the update does not move the database, it says so.

  • The tidy-up tool now comes with the release. It removes old copies of PathLMS images left on the disk after updates. The instructions already told people to run it. Until now it was not in the download, so they could not. It is called remove-old-images.sh and it sits beside the other tools.

  • Nothing PathLMS is built on changes version unless a person has approved that exact version. The database, the cache, the web server, Node, the file store and the tool that moves containers. Each one was installed, updated, rolled back and restored from a backup first, and each was approved by name, with the date. That was always meant to be true. It is now something a release cannot go out without.

What has not changed, and it is worth saying

No piece of other people's software moved version in this release. They all moved in the release before this one, and they are all still on their newest finished version. If you read the notes for 0.123.0, this is not that news arriving twice.

Fixed

  • The check that installs a published release and proves it works was building its own test password from the clock, which is guessable. It now uses a random one.

  • Rehearsing a sign-in with a phone code used up a code without writing down that it had. The next step then asked for the same code again and read the refusal as a locked-out administrator.

Nothing to do

Press Update. Nothing to type, nothing to edit, and nothing about your courses, people or records changes.

Installing this

Download the files below into one empty directory and follow INSTALL.md. You need Docker and nothing else: no copy of the source code, no git, and no Node.

File What it is
docker-compose.yml The whole stack, encryption included. One file, one command.
pathlms.env Your settings, with this release's images already named.
INSTALL.md Numbered steps, from nothing to signed in.
rollback.sh Keep it beside the others. It puts this system back on the version it was running before the last upgrade. Run it as: bash rollback.sh
restore-files.sh Keep it beside the others. It reads a file backup back to prove it is usable, and puts the uploaded files back when they have been lost. Run it as: bash restore-files.sh --verify
check-my-settings.sh Reads your two files and says whether they will work, BEFORE you start anything. It catches the mistakes people make pasting settings into a text box: two settings on one line, the same setting written twice, the address left commented out, image addresses that disagree about the version, a settings file under the wrong name, and an administrator password too short to create an account. Run it as: bash check-my-settings.sh
collect-deploy-evidence.sh Writes one file describing what this installation is actually doing: versions, where the data lives, whether the backups exist, how it is reached, which ports are open. It sends nothing anywhere and prints no password or key. Run it as: bash collect-deploy-evidence.sh
remove-old-images.sh Says how much disk the older versions of PathLMS on this machine are using, and clears the ones nothing is running. It always keeps the two most recent, so going back stays instant, and removes nothing until you add --yes.

If your machine is one of these

Some kinds of server decide one or two things their own way. There is a page for each of those below. Download the one that applies to you and read it beside INSTALL.md; it says what is different and sends you back there for everything else.

Page For
UNRAID.md Unraid, where a stack of containers needs a Compose plugin and the data has to go on the right storage.
BEHIND-A-PROXY.md A deployment with nginx, Caddy or a load balancer in front holding the certificate, which needs one setting here and a few lines there.
CHANGING-THE-PORT.md Anybody moving the port people arrive on, and anybody whose deployment did not come back on the new one. Keep it on the server: its recovery half is written to be read when no screen is reachable.
WHY-THE-COMPOSE-FILE-IS-LIKE-THIS.md Why a line in docker-compose.yml is the way it is, service by service. The compose file carries what you need while editing; this carries the reasoning behind it.

Upgrading an existing installation

Change these three lines in your settings file and run docker compose up -d. The product can also do it for you, taking a backup first and putting everything back if anything fails.

One thing to know before you upgrade into this release. This version opens a second port, 3443, for encrypted connections, so that turning encryption on needs nothing but a certificate you make or paste in on the Settings screen. If something else on your machine already uses 3443, Docker refuses to start and says so, naming the port. Put a free one in PATHLMS_PUBLISHED_TLS_PORT in your settings file and start again.

If something in front of this system holds your certificate and you would rather that port were not reachable from outside, set PATHLMS_PUBLISHED_TLS_ADDRESS to 127.0.0.1: including the colon.

PATHLMS_API_IMAGE=ghcr.io/path-lms/api@sha256:61e82a6e54e2c3dba97b8b5f9b8ff0e915f31d421619e4c619b098c409322a14
PATHLMS_WEB_IMAGE=ghcr.io/path-lms/web@sha256:647faaaebf0030552313b7dfca679d11fb8abc1d861cadcb42a90d5b0b71a097
PATHLMS_DB_IMAGE=ghcr.io/path-lms/db@sha256:444167e8436e4f71c28b8b92d917cb742d180f61b515cdf3fd031bc9758433b1

What is published

Three container images and the files above. No source code: the two source archives on this page are added by GitHub itself and hold nothing.