I was standing these day in front of this problem as well. I did some research and the best solution for me was actually to spin up a new Debian 11 VPS server. After this I moved all the Virtual-servers to the new one.
Upgrading distros is not within the scope of support that Virtualmin offers. You’d have to read about this kind of stuff at the distro website, however often a which Google search will turn up some good articles on the topic from those who’ve been through the process already.
Yeah, we haven’t had time to document an upgrade, though I would expect the old docs to be pretty close to reasonable for new upgrades.
The trickiest upgrades were back when one would have to go from non-systemd (either initscripts or upstart) to systemd…those days are long gone, and the past several years worth of Debian/Ubuntu and RHEL-based distros are systemd, so the upgrade isn’t painful, generally.
But, of course, the most likely to be successful and in a known good state would be to start with a fresh OS and migrate backups. But, if you’ve heavily customized your server (beyond just Virtualmin configuration, which can be backed up and moved easily), it may be more challenging to go that route.
I would also recommend setting up a new fresh server with Debian 11 and migrating… but here’s the cheat sheet I put together for 10 to 11 in-place upgrade:
Upgrade Debian 10 to Debian 11 Bullseye using the CLI
Step 1. Backup your system
lsb_release -a
uname -mrs
cat /etc/debian_version
Step 2. Update ALL existing installed packages
sudo apt-mark showhold # list any pkgs in hold status
sudo apt-mark unhold package_name # remove the host status for all listed packages one-by-one
Tried these steps and even resolved issues with packages not upgrading correctly but still ended up with virtualmin not booting after a restart. Guess I should just bit the bullet and do a fresh install.
Or you could post what errors you get and we could help you solve it. It’s probably nothing serious; I’d be much more worried about everything other than Virtualmin/Webmin.
Virtualmin, specifically, logs to the Webmin logs, which are in /var/webmin. Why it won’t start would either be in /var/webmin/miniserv.error or in the journal for the webmin unit.