Updates
Updating by hand, the update notice, and optional one-click updates from the web app.
By hand
In the msaving folder you cloned:
git pull
docker compose up -d --build
This gets the newest release and builds it (a few minutes). The server takes a backup before applying any database change. The admin sees on Server admin when a new
version is out (checked against the project’s GitHub releases at most every 6 hours; UPDATE_CHECK=off in .env
stops it).
Staying on one version
Check out a release’s tag instead of main, then build:
git fetch --tags
git checkout v1.2.0
docker compose up -d --build
Every release is a tag (the list). git pull and the
one-click update don’t move a server that’s on a tag; git checkout main goes back to following releases.
One-click updates (optional)
Add COMPOSE_PROFILES=updater to .env (https,updater with Caddy) and run docker compose up -d. The admin can
then press Update now on Server admin; the page reconnects by itself when the new version is up (a few
minutes, most of it building).
This starts a small helper that can control Docker on this machine, which is root-level access, and can write to
the msaving folder. It only ever runs git pull there (as the folder’s owner) and rebuilds and restarts the
services that are running, and the server itself can only leave it a request. Turn it on only if you’re comfortable
with that. A release that adds a service or changes the helper itself says so in its notes: run
docker compose up -d once by hand for it. Updating is a web app feature; the mobile app doesn’t do it.
How it works: Running an instance.