Upgrading to Ubuntu 20.04
Ubuntu 20 LTS has reached its end of life in April 2025.
We encourage you to upgrade to Ubuntu 22 as soon as possible after upgrading to Ubuntu 20
Overview
This guide explains how to upgrade an existing Ubuntu 18.04 based Cloudron to Ubuntu 20.04 (focal fossa). Upgrade to Ubuntu 18 first using this guide if still on Ubuntu 16.
Cloudron 7.5 is the last version of Cloudron that supports Ubuntu 18.04
Cloudron 9 dropped the support for Ubuntu 20]
Checklist
Before upgrading:
- Cloudron must be on at least version 6.0. Verify this by checking the version in the Settings view. Cloudron releases prior to 6.0 do not support Ubuntu 20.04.
- Ubuntu must be on version 18.04. Check with
lsb_release -a. - The upgrade takes 1-3 hours depending on network, CPU, and disk speed.
Pre-flight
Create a server snapshot for quick rollback before starting. If your VPS lacks snapshotting, create a full Cloudron backup first (Backups → Create Backup now).
A server snapshot saves trouble if the server fails to start after the upgrade. If your VPS provider lacks snapshots, keep backups outside your server. In some cases, Ubuntu fails to boot entirely, locking your data and backups inside the server disk.
Digital Ocean droplet upgrades from Ubuntu 18 to Ubuntu 20 often result in a broken droplet with no SSH access. Instead, start with a fresh Ubuntu 22.04 instance and restore.
Upgrading
Run the upgrade:
dpkg --configure -a
apt update
apt upgrade
do-release-upgrade
Upgrade notes:
- Accept running an additional SSH daemon at port 1022.
- For all packages (nginx, timesyncd, journald, etc.), select N or O to keep your currently-installed version (default).
- Accept defaults for all questions (e.g., LXD version 4.0).
- Accept removal of obsolete packages.
- IMPORTANT: On some VPS, the upgrade uninstalls MySQL 5.7. Allow uninstallation but select the option to not remove MySQL data.
- If the upgrade fails with "ubuntu-minimal could not be located", replace
/etc/apt/sources.listwith the original sources.list.
Restart the server after the upgrade completes.
Post upgrade
- Fix collectd. Add the following line to
/etc/default/collectdif it doesn't exist:
LD_PRELOAD=/usr/lib/python3.8/config-3.8-x86_64-linux-gnu/libpython3.8.so
- Install MySQL 8:
systemctl stop box
apt remove mysql-server-5.7 # this is only needed, if it wasn't removed in the upgrade process above. if it asks, then be sure to preserve MySQL data. if it doesn't, it preserves it by default.
apt install mysql-server-8.0
/home/yellowtent/box/setup/start.sh
systemctl start box
reboot
Post upgrade checks
- Verify Ubuntu 20.04 in output:
bash
lsb_release -a - Verify
active (running)status:bashsystemctl status box - Verify
active (running)status:bashsystemctl status collectd - Verify that all the services in the Services view of Cloudron dashboard are running.
If all steps above are confirmed, you have successfully upgraded from Ubuntu 18 to Ubuntu 20.