I’ve not had good luck finding something that gives me the confidence to go about it
Now's a good time to make sure you have good backups.
Knowing you can fallback to your backups helps a lot with confidence.
I’ve not had good luck finding something that gives me the confidence to go about it
Now's a good time to make sure you have good backups.
Knowing you can fallback to your backups helps a lot with confidence.
In addition to backups, consider using snapshots if your file system supports it (ZFS, Btrfs, or LVM).
I use ZFS and have each of my Docker volumes in a separate ZFS dataset (similar to a Btrfs subvolume). This lets me snapshot each container independently. I take a snapshot before an upgrade. If the upgrade goes badly, I can instantly revert back to the point before I performed the upgrade.
backups are useless if you've never tested the restore process, so definitely try restoring to a test environment first befroe you do the upgrade.
Having the ability to shut down the main instance of an app and run a secondary instance from backups without much hassle is the best feeling ever, I recently updated from Nextcloud v26 to v31, and having the ability to just go back to a working version if anything was wrong saved me from so much stress.
This is how I handle it for most software: Read (or at least skim) the changelogs for all minor and major versions between your current version and the latest version.
If you're using Docker, diff your current docker-compose to the latest one for the project. See if any third-party dependencies (like PostgreSQL, Redis, etc) have breaking changes.
If there's any versions with major breaking changes, upgrade to each one separately (eg. 1.0 to 2.0, then 2.0 to 3.0, etc) rather than jumping immediately to the latest one, as a lot of developers don't sufficiently test upgrading across multiple versions.
Take a snapshot before each upgrade (or if your file system doesn't support snapshots, manually take a backup before each upgrade).
...or just don't read anything, YOLO it, and restore a snapshot if that fails. A lot of software is simple enough that all you need to do is change the version number in docker-compose (if you're using Docker).
I haven't gone through your specific case, but generally what I do when doing a major update with potentially breaking changes:
Looking through the docs n' stuff, this is what I found:
I wasn't able to find any additional instructions on how to update other than the expected generic steps (docker pull or pip install -r requirements.txt). So my guess at this point is that they have scripts built in to check the version and run upgrade scripts as needed
Yeah, these are pretty solid advice, would say that you should be safe with patch version updates, like from 1.17.1 to 1.17.4
Should be able to jump from 1.17.4 to 2.0.1 and from 2.0.1 to 2.1.3, etc. going straight to the last patch of the next version, but should go one by one minor version, paying close attention to those versions that have breaking changes in the release notes. And always backup and test before each version jump.
A place to share alternatives to popular online services that can be self-hosted without giving up privacy or locking you into a service you don't control.
Rules:
Be civil: we're here to support and learn from one another. Insults won't be tolerated. Flame wars are frowned upon.
No spam posting.
Posts have to be centered around self-hosting. There are other communities for discussing hardware or home computing. If it's not obvious why your post topic revolves around selfhosting, please include details to make it clear.
Don't duplicate the full text of your blog or github here. Just post the link for folks to click.
Submission headline should match the article title (don’t cherry-pick information from the title to fit your agenda).
No trolling.
Resources:
Any issues on the community? Report it using the report flag.
Questions? DM the mods!