PathLMS 0.125.0
What changed in this version
Learners can now hand in work, and somebody can answer it. It installs like any other update, and nothing already in your courses changes until an author turns it on.
What is new
-
Handing in work. An author can set any assignment to ask learners to hand something in: some writing, a file, or both. It is a choice called "Learners hand in", beside "Required" in the course builder. Assignments you already have ask for nothing until you change this.
-
A "Hand in your work" panel for learners. On an assignment that asks for work, the learner writes in a box or picks a file and presses "Hand in". They see that it arrived, and later what the reviewer said. They can hand in again whenever they like, and every attempt is kept.
-
"Work to Review". A new page in the menu lists the work waiting on you. Open a piece, read it, write what you would like to say, and press "Accept" or "Send back". Accepting finishes that step for the learner. Sending it back asks them to hand it in again, with your words beside it.
-
Who can review. An administrator. A manager, for the people in their groups. The author of the course. An instructor, for the courses and groups an administrator gives them. Nobody reviews their own work.
-
"Instructors", under Administration. An administrator chooses an instructor and gives them courses and groups of people to review. It can be taken away again the same way.
Things worth knowing
- A step that asks for work is finished only when a reviewer accepts it. Pressing a button does not finish it, for anybody.
- Once a step is finished it stays finished. Sending accepted work back later asks for another try, but it never takes the finish away, or a certificate.
- A handed-in file can be opened by the learner and their reviewers, and by nobody else. It can never be placed inside a lesson.
- File types and sizes are the same as for files authors add to courses.
- Work handed in is kept even if the assignment or the course is later removed.
Fixed
- A new install whose very first start was cut short now says so. Before, it opened and nobody could ever sign in. Now it stays shut and tells you what happened, that nothing has been saved yet, and the three commands that start it again.
- Two rare start-up problems on slow machines. A start that had to wait could run its last steps twice at once, and a database update that had already saved part of its work could be tried again from the beginning. Both now happen once.
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:34cfa29d26dfc8f1b7f39429b24fa43ef96aa8b4ea98ee744e9303ba4e324b19
PATHLMS_WEB_IMAGE=ghcr.io/path-lms/web@sha256:a1dfa2603ecbe966ec6839428c6971070af93c4fa5b2011ca5ebcf65698f4ab7
PATHLMS_DB_IMAGE=ghcr.io/path-lms/db@sha256:16c01d777b1dd12e7171eac00c8705b9e22820ea94955fd59054cc23a6f62934
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.