Hosting Guide

Debian 13 “Trixie” Upgrade Guide: Move From Debian 12 Safely

Debian 13 delivers cutting-edge Linux performance—learn how to upgrade from Debian 12 seamlessly and leverage UnderHost’s NVMe VPS, offshore servers, and expert management for flawless deployment.

Short answer: Debian 13 “trixie” was released on 9 August 2025, with the Linux 6.12 LTS kernel, PHP 8.4, MariaDB 11.8, Python 3.13 and OpenSSH 10.0. To upgrade a Debian 12 server: back up, bring Debian 12 fully up to date, change the package sources from bookworm to trixie, then run apt update, apt upgrade --without-new-pkgs and apt full-upgrade, and reboot. Test the upgrade on a copy of the server first, because PHP and database versions change.

What is new in Debian 13

Component Debian 12 (bookworm) Debian 13 (trixie)
Linux kernel 6.1 6.12 LTS
PHP 8.2 8.4
MariaDB 10.11 11.8
PostgreSQL 15 17
Python 3 3.11 3.13
GCC 12.2 14.2
OpenSSH 9.2 10.0
OpenSSL 3.0 3.5
systemd 252 257
Nginx 1.22 1.26

Debian 13 also adds official support for the riscv64 architecture, and it is the last release for armel. The 32-bit i386 architecture is no longer a regular install target: there is no i386 kernel or installer, so a 32-bit server should not be upgraded. Debian says trixie will be supported for five years through the Security and Long Term Support teams.

What can break on a web server

  • PHP 8.4. Old plugins, themes and custom code may not support it. Check your applications before you upgrade.
  • MariaDB 11.8. The database files are upgraded on first start. Take a full SQL dump first, because you cannot go back without it.
  • OpenSSH 10.0. DSA keys are no longer supported. If you still log in with a DSA key, create an Ed25519 key before the upgrade.
  • Changed configuration files. If you edited files in /etc, apt asks whether to keep your version or take the new one.
  • Third-party repositories. Sources such as PHP or Node.js repositories may not have trixie packages yet. Disable them for the upgrade.

Before you upgrade

  • ✓ Take a full backup or a snapshot of the server, and a separate SQL dump of every database.
  • ✓ Make sure you can reach the server console (VNC or KVM) in case SSH does not come back after the reboot.
  • ✓ Check the version with cat /etc/debian_version. Only upgrades from Debian 12 are supported.
  • ✓ Check for held packages with apt-mark showhold and package problems with dpkg --audit.
  • ✓ Have at least 5 GB of free disk space. Check with df -h.
  • ✓ Plan a maintenance window. Websites go down while services restart.

Step 1: bring Debian 12 up to date

apt update
apt full-upgrade -y
apt autoremove --purge
reboot

Reboot if a new kernel was installed, then log in again. Run the rest of the upgrade inside screen or tmux, so a dropped SSH connection does not stop it:

apt install -y screen
screen -S upgrade

Step 2: point the package sources at trixie

Remove or disable any third-party repositories first. Then change the Debian sources:

# Classic format
sed -i "s/bookworm/trixie/g" /etc/apt/sources.list

# If you use .sources files (deb822 format)
sed -i "s/bookworm/trixie/g" /etc/apt/sources.list.d/*.sources

# Check the result
grep -r "trixie" /etc/apt/sources.list /etc/apt/sources.list.d/

Debian 13 recommends the newer deb822 format, in /etc/apt/sources.list.d/debian.sources. Your old file still works, and you can convert it after the upgrade.

Step 3: run the upgrade

apt update

# Check the disk space needed
apt -o APT::Get::Trivial-Only=true full-upgrade

# Minimal upgrade first, then the full upgrade
apt upgrade --without-new-pkgs
apt full-upgrade

Read each question apt asks about configuration files. If you changed a file, keeping your version is usually safest. Compare it with the new version afterwards.

Step 4: reboot and check

reboot

# After logging back in
cat /etc/debian_version          # should show 13.x
uname -r                         # should show a 6.12 kernel
systemctl --failed               # list services that did not start
php -v && mysql -V               # check PHP and MariaDB

Open your websites, test logins and forms, and check that cron jobs and email still work.

Step 5: clean up

apt autoremove --purge
apt list "?obsolete"             # packages no longer in Debian 13
apt purge "?obsolete"            # remove them after checking the list

Re-enable third-party repositories only when they offer trixie packages.

Upgrade or start fresh?

An in-place upgrade keeps your server and IP address, and works well for simple servers. For servers that have collected years of changes, a fresh Debian 13 server is often cleaner: install it, move the sites and databases, test, then switch DNS. On a Cloud VPS you can build the new server next to the old one and keep the old one until the move is done. See our guide to moving a website without downtime.

Troubleshooting

Problem Fix
apt reports broken or held packages Run apt --fix-broken install, then apt full-upgrade again.
PHP-FPM does not start Debian 13 uses the php8.4-fpm service. Install it, move your pool settings, and update the web server configuration.
MariaDB does not start Read journalctl -u mariadb. Restore from your SQL dump if the data cannot be upgraded.
The server does not boot Use the console and pick the previous kernel in the GRUB menu, then check the logs.
SSH login fails Use the console. Check for DSA keys and run sshd -t to test the configuration.

Check the upgrade on a test server first

Before you upgrade a live server, build the same setup on a spare machine or a snapshot, run the upgrade there, and test your applications. This shows which packages, configuration files or plugins need attention without risking the live sites.

Notes on PHP and databases after the upgrade

  • Check that each application supports the PHP version Debian 13 provides before you move production sites to it.
  • Check your database’s release notes for changed defaults, and take a dump before the upgrade.
  • Restart each service after the upgrade, and check its log for warnings.

Plan a rollback before you start

Decide now how you would go back if the upgrade fails. Keep the snapshot until the site has run normally for several days, and write down the commands that restore each service so they are ready during an outage.

  • Keep the pre-upgrade backup and the SQL dump until the upgrade is confirmed.
  • Know how to reach the server console if SSH stops responding after the reboot.

Need help with this?

Prefer to have the upgrade done for you? Our server management team can test, upgrade and check your Debian server.

See server management plansContact @CustomerPanel

Frequently asked questions

When was Debian 13 released?

Debian 13 “trixie” was released on 9 August 2025.

Can I upgrade straight from Debian 11 to Debian 13?

No. Only upgrades from Debian 12 are supported. Upgrade to Debian 12 first, or build a fresh Debian 13 server.

Will my websites keep working after the upgrade?

Usually, but Debian 13 ships PHP 8.4 and MariaDB 11.8. Check that your applications support them, and test on a copy of the server first.

How long will Debian 13 be supported?

Debian says trixie will be supported for five years, through regular security support followed by Long Term Support.

Can I install Debian 13 on an UnderHost Cloud VPS?

Yes. Debian is one of the operating systems you can choose when you order a Cloud VPS. See the Cloud VPS page for the current list.


Sources