Skip to content

Operating system upgrades ​

DANGER

Before upgrading your operating system make sure to make a backup! We do not provide support for broken operating system installations. We only provide this page for information about Hestia issues that may come up while upgrading.

General ​

INFO

Make sure to verify that MariaDB is running on a supported version for the new operating system. If that is not the case, update MariaDB version to a supported version before upgrading your OS!

Once a backup has been made, update Hestia to the last supported version:

bash
apt update && apt upgrade

Follow system instructions to upgrade your OS. When done, make sure to check that the files in /etc/apt/sources.list.d are not hashed out. If they are, remove the hash and run apt update && apt upgrade again.

Debian 12 Bookworm to Debian 13 Trixie ​

Important note (run as root) ​

All commands in this guide must be executed as root user. You can either log in directly as root or use sudo -i before running the commands.

Update the current system ​

First, make sure your current system is fully up to date.

bash
apt-get update
apt-get -y full-upgrade

Upgrade MariaDB ​

Before upgrading to Debian 13, make sure MariaDB has been upgraded to at least version 11.8, since the MariaDB repository does not support version 11.4 on Debian 13.

bash
sed -i -E 's|mariadb-server/[0-9]+\.[0-9]+/repo/|mariadb-server/11.8/repo/|' /etc/apt/sources.list.d/mariadb.list
apt-get update
apt-get -y full-upgrade

Update the APT sources ​

Once this is done, update your APT sources to Debian 13:

bash
sed -i 's/bookworm/trixie/g' /etc/apt/sources.list
sed -i 's/bookworm/trixie/g' /etc/apt/sources.list.d/*.list
sed -i 's/bookworm/trixie/g' /etc/apt/sources.list.d/*.sources
apt-get update

Check for locally modified configuration files ​

Before continuing, you may want to generate a list of configuration files for which newer versions are available but the system is currently using locally modified versions. This allows you to compare the list after the upgrade in case any manual changes are required.

bash
find / -path /root -prune -o -type f -regex '.*\.\(dpkg\|ucf\)-dist$' -print

Perform the system upgrade ​

Now start the upgrade:

bash
DEBIAN_FRONTEND=noninteractive UCF_FORCE_CONFFOLD=1 apt-get -y full-upgrade -o Dpkg::Options::="--force-confdef" -o Dpkg::Options::="--force-confold"

Migrate service configuration files ​

Some services, such as Dovecot or BIND, may fail to start because they are still using configuration files that are no longer compatible. Even if no services appear to be failing, you should run the following script. It will automatically detect whether any configuration changes are required and apply them if necessary.

bash
/usr/local/hestia/install/upgrade/manual/migrate_conf_to_debian_13.sh

Review new configuration files ​

At this point, you can run the following command again to check for new configuration files:

bash
find / -path /root -prune -o -type f -cmin -120 -regex '.*\.\(dpkg\|ucf\)-dist$' -print

You may see a few files listed, but you should ignore most of them. Configuration files managed or modified by Hestia (such as sshd, dovecot, bind, exim4, etc.) should always be ignored. If you are unsure whether a file needs to be reviewed or merged, it is safest to leave it unchanged.

Reboot the system ​

Finally, reboot the system:

bash
reboot

Clean up ​

After the system starts again, update the package lists, install any remaining package upgrades, and remove packages that are no longer needed:

bash
apt-get update
apt-get -y full-upgrade
apt-get autoremove
apt-get clean

The upgrade is now complete.

Debian 11 Bullseye to Debian 12 Bookworm ​

Exim config ​

bash
rm -f /etc/exim4/exim4.conf.template
cp -f /usr/local/hestia/install/deb/exim/exim4.conf.4.95.template /etc/exim4/exim4.conf.template

Debian 10 Buster to Debian 11 Bullseye ​

SHA512 password encryption ​

bash
sed -i "s/obscure yescrypt/obscure sha512/g" /etc/pam.d/common-password

Exim4 config ​

bash
rm -f /etc/exim4/exim4.conf.template
cp -f /usr/local/hestia/install/deb/exim/exim4.conf.4.94.template /etc/exim4/exim4.conf.template

ProFTPD ​

Comment out line 29 in /etc/profpd/prodtpd.conf.

Debian 9 Stretch to Debian 10 Buster ​

No issues have been found in the past.

Ubuntu 24.04 Noble to Ubuntu 26.04 Resolute ​

Important note (run as root) ​

All commands in this guide must be executed as root user. You can either log in directly as root or use sudo -i before running the commands.

Update the current system ​

First, make sure your current system is fully up to date.

bash
apt-get update
apt-get -y full-upgrade

Upgrade MariaDB ​

Before upgrading to Ubuntu 26.04, make sure MariaDB has been upgraded to at least version 11.8, since the MariaDB repository does not support version 11.4 on Ubuntu 26.04.

bash
sed -i -E 's|mariadb-server/[0-9]+\.[0-9]+/repo/|mariadb-server/11.8/repo/|' /etc/apt/sources.list.d/mariadb.list
apt-get update
apt-get -y full-upgrade

Replace the Ondřej Surý PPAs ​

Once this is done, you must remove the Ondřej Surý PPAs. Ubuntu 26.04 is no longer supported through the Launchpad PPAs, and PHP packages are now distributed exclusively through the official Sury APT repository.

bash
while read -r source; do rm -f "$source"; done < <(grep -rl ondrej /etc/apt/sources.list.d)
echo "deb [arch=$(arch | sed -e 's/x86_64/amd64/' -e 's/aarch64/arm64/') signed-by=/usr/share/keyrings/sury-keyring.gpg] https://packages.sury.org/php/ resolute main" > /etc/apt/sources.list.d/php.list
curl -s https://packages.sury.org/php/apt.gpg | gpg --dearmor | tee /usr/share/keyrings/sury-keyring.gpg > /dev/null 2>&1

Update the APT sources ​

Now, update your APT sources to Ubuntu 26.04:

bash
sed -i 's/noble/resolute/g' /etc/apt/sources.list
sed -i 's/noble/resolute/g' /etc/apt/sources.list.d/*.list
sed -i 's/noble/resolute/g' /etc/apt/sources.list.d/*.sources
apt-get update

Check for locally modified configuration files ​

Before continuing, you may want to generate a list of configuration files for which newer versions are available but the system is currently using locally modified versions. This allows you to compare the list after the upgrade in case any manual changes are required.

bash
find / -path /root -prune -o -type f -regex '.*\.\(dpkg\|ucf\)-dist$' -print

Perform the system upgrade ​

Now start the upgrade:

bash
DEBIAN_FRONTEND=noninteractive UCF_FORCE_CONFFOLD=1 apt-get -y full-upgrade -o Dpkg::Options::="--force-confdef" -o Dpkg::Options::="--force-confold"

Migrate service configuration files ​

Some services, such as Dovecot or BIND, may fail to start because they are still using configuration files that are no longer compatible. Even if no services appear to be failing, you should run the following script. It will automatically detect whether any configuration changes are required and apply them if necessary.

bash
/usr/local/hestia/install/upgrade/manual/migrate_conf_to_ubuntu_26.04.sh

Review new configuration files ​

At this point, you can run the following command again to check for new configuration files:

bash
find / -path /root -prune -o -type f -cmin -120 -regex '.*\.\(dpkg\|ucf\)-dist$' -print

You may see a few files listed, but you should ignore most of them. Configuration files managed or modified by Hestia (such as sshd, dovecot, bind, exim4, etc.) should always be ignored. If you are unsure whether a file needs to be reviewed or merged, it is safest to leave it unchanged.

Reboot the system ​

Finally, reboot the system:

bash
reboot

Clean up ​

After the system starts again, update the package lists, install any remaining package upgrades, and remove packages that are no longer needed:

bash
apt-get update
apt-get -y full-upgrade
apt-get autoremove
apt-get clean

The upgrade is now complete.

Ubuntu 22.04 Jammy to Ubuntu 24.04 Noble ​

TIP

Verify that MariaDB is running at least version 11.4. If not, first upgrade to this version in your current operating system! After that, comment out the line in /etc/apt/sources.list.d/mariadb.list and then upgrade your OS.

Exim4 config ​

bash
rm -f /etc/exim4/exim4.conf.template
cp -f /usr/local/hestia/install/deb/exim/exim4.conf.4.95.template /etc/exim4/exim4.conf.template

Ubuntu 20.04 Focal to Ubuntu 22.04 Jammy ​

TIP

Verify that MariaDB is running at least version 10.6. If not, first upgrade to this version in your current operating system! After that, comment out the line in /etc/apt/sources.list.d/mariadb.list and then upgrade your OS.

SHA512 password encryption ​

bash
sed -i "s/obscure yescrypt/obscure sha512/g" /etc/pam.d/common-password

Exim4 config ​

bash
rm -f /etc/exim4/exim4.conf.template
cp -f /usr/local/hestia/install/deb/exim/exim4.conf.4.94.template /etc/exim4/exim4.conf.template

ProFTPD ​

Comment out line 29 in /etc/profpd/prodtpd.conf.

Ubuntu 18.04 Bionic to Ubuntu 20.04 Focal ​

No issues have been found in the past.

Older versions ​

We haven’t tested the upgrade paths from Ubuntu 16.04 to Ubuntu 20.04 or Debian 8 Jessy to Debian 10

Released under the GPLv3 License.