Updating
When a new version of Plinthio is out, admins see a banner at the top of the app with a link to what's new. Updating takes one command, and your database is backed up automatically first.
Update With Docker Compose
In the folder with your docker-compose.yml:
docker compose pull && docker compose up -dBefore the new version first opens the database, Plinthio copies it to config/backups/plinthio-backup-before-<new>-from-<old>-<time>.sqlite. Database changes only go forward, so this backup is what lets you roll back. The newest five pre-upgrade backups are always kept.
Add-ons listed in COMPOSE_FILE in your .env are updated with the same command.
Update Without Compose
If you started Plinthio with docker run:
docker pull ghcr.io/oddomens/plinthio:latest
docker rm -f plinthioThen run your original docker run command again. Everything that matters is in ./config, so nothing is lost.
Update Without Docker
In your checkout, get the new version and rebuild, then restart the server:
git pull
cd frontend && npm ci && npm run build && cd ..
cd backend && npm ciChoosing Which Updates You Get
Set PLINTHIO_TAG in your .env:
PLINTHIO_TAG | You get |
|---|---|
latest (default) | Every release |
1 | All 1.x features and fixes, never a breaking 2.0 |
1.4 | Bug fixes for 1.4 only |
1.4.2 | Exactly that version. Nothing changes until you edit it |
Plinthio uses semantic versioning:
- A patch (1.4.2) only fixes bugs.
- A minor release (1.4.0) adds features.
- A major release (2.0.0) may ask you to change something. Its release notes say what.
Every release's notes are on GitHub and in Version History.
Automatic Updates
Tools like Watchtower can pull new images for you. Pair them with PLINTHIO_TAG=1 so a major version never installs itself unattended.
Rolling Back
- Set
PLINTHIO_TAGin.envto the version you were on, for examplePLINTHIO_TAG=1.4.1. - If the newer version has already started, stop Plinthio with
docker compose down. Copy the matchingplinthio-backup-before-…file fromconfig/backups/overconfig/plinthio.sqlite, and delete anyplinthio.sqlite-walandplinthio.sqlite-shmfiles next to it. - Run
docker compose up -d.
Progress made on the newer version after the upgrade is lost when you restore the backup.
The Update Check
The banner comes from one request to GitHub's releases API every 12 hours (and when an admin presses Check now in Admin → Overview). Dismiss hides the banner until the next version. To turn the check off, and the banner with it, set UPDATE_CHECK=false and run docker compose up -d.