Why am i writing this?While Debian is a great distro, upgrading between major versions is a bit of a pain. There’s no real automatic way to do it, and some guides contradict each other a bit. This is how I did it (for one VM) and how I will do it for the rest of them. Probably. What I started with: Note: How it’s done: To get the system up-to-date (and in a state to actually upgrade), run: Reboot. Now check the current version with It should say 12.13 or above. If it doesn’t, please get your system up-to-date. Now let’s check for old or conflicting packages, which can be removed: And remove them. apt does this quite well: Next, we’ll check for held and non-standard packages. A package held at an old version might prevent the upgrade. Non-standard packages can come from sources, which don’t have a new repo.
Category: Self-Hosting
EDIT (again) (14.02.2026): Well, it had to happen. I’m no longer using Windows, so consider this post outdated AF. Also, Microsoft made it even harder to keep WSA running, and with the official end of Windows 10… . Anyway, if you stumbled upon this article, here are my up-to-date recommendations: EDIT (19.12.2024): Unfortunately, Microsoft has kind of stopped its support for WSA and f-ed something up with one of their updates. Maybe it was the move to win11 that did it (install worked the same as described here for win10). Maybe it just needs a re-install of a newer WSA-build. For me, it’s currently not working, but since I’m soon moving to Fedora (Waydroid yay), getting this to work again is not a priority. Comment below if you got it to work! Requirements: Background: I recently set up my personal music server and library. Screw streaming services, i’d rather buy
Shlink is really easy to set up quickly. The big drawback of their default docker setup instructions is: everything is gone when the container is recreated i.e. updated. Of course, I like my containers up-to-date, so I use watchtower to automate this. Surprise surprise, all my links are now gone. My fault. After feeling like an idiot for a while, I looked around and found a nice pre-made docker-compose file that uses shlink and mariadb, with a bind-mount for data. I found the original tutorial here: https://community.hetzner.com/tutorials/install-shlink-docker . Thanks to the Hetzner community. In short, the compose file looks like this: This compose file lets you easily run a short-link solution for yourself (and others?). To add an API key for the web admin panel, run this command in the container (either via docker exec or portainer -> console -> sh): To import a csv file with links, just put
UPDATE 14.02.2026: The image from containerrr is very outdated by now. There’s a fork that actually get’s updated. The post has been updated for that. New image: Here is my docker-compose file for the watchtower container. It auto-updates other containers on the host, including itself (but that often fails for some reason). It uses a pre-configured GMail-adress to send notification mails. The WATCHTOWER_SCHEDULE env variable lets watchtower check for updates every day at 03:15.Set the hostname to have a readable hostname in e-mail notifications.