Check the current version
cat /opt/kylth/VERSION
KYLTH_TAG in /etc/kylth/.env shows the version you’ve asked for.
Before you upgrade
- Back up the projects that matter, off the server. See Backups.
- Make sure
/opt/kylthis in your server backups. - Check the disk has room for the new image, about 1 GB.
Upgrade
- In
/etc/kylth/.env, setKYLTH_TAGto the new version. - Pull the new image and restart Kylth:
cd /etc/kylth
docker compose pull && docker compose up -d
What happens during an upgrade
- Only Kylth restarts. Your projects keep running and stay reachable throughout. Caddy isn’t restarted.
- Kylth copies its database first. On the first start of a different version, before it touches anything, Kylth copies its database to
/opt/kylth-backups/kylth.db.pre-<version>-<time>, for examplekylth.db.pre-0.1.1-20260911T165622Z. - Then it updates its database to the new version, and schedules its background jobs again.
- Your licence, settings and projects carry over unchanged.
To confirm it worked, cat /opt/kylth/VERSION shows the new version and the dashboard loads.
If an upgrade goes wrong
First, read what Kylth says: docker logs kylth. Troubleshooting covers the common messages.
There’s no one-step rollback. To put the previous version back, restore the database copy Kylth made before the upgrade:
cd /etc/kylth
docker compose down
cp /opt/kylth/kylth.db /opt/kylth-backups/kylth.db.failed-upgrade
rm -f /opt/kylth/kylth.db-wal /opt/kylth/kylth.db-shm
cp /opt/kylth-backups/kylth.db.pre-<new version>-<time> /opt/kylth/kylth.db
Then set KYLTH_TAG in /etc/kylth/.env back to the previous version, and run docker compose up -d.
docker compose downstops only Kylth. Caddy and your projects keep running.- Kylth’s database goes back to its state before the upgrade, so anything you changed in Kylth since then is undone. Your projects’ own data isn’t in that database, so it’s unaffected.
- Removing
kylth.db-walandkylth.db-shmstops leftovers from the newer database being applied to the restored one.
Pin a version
KYLTH_TAG decides which release runs. Setting it to an exact version, rather than latest, means Kylth changes only when you decide to upgrade.