From Hybrid Playground to Headless Homelab Server – Cleaning up a Proxmox Install on Debian

One of the great things about Proxmox VE is that it sits on top of standard Debian Linux. This flexibility, however, can lead to “package bloat” if you treat the host like a workstation.

A common scenario—and the one tackling today—is having a Debian installation where Proxmox was installed alongside a Desktop Environment (like KDE Plasma) and productivity tools (like LibreOffice). Perhaps you used the server as a temporary workstation, or maybe the initial Debian install just included too many defaults.

Now, you want to return to a pure, headless Proxmox hypervisor. You want to strip away the office suites, the print servers, and the graphical interface without accidentally breaking the critical PVE packages or networking configurations that run your VMs.

As input for this system cleanup, I used the output of

dpkg --get-selections | grep install 

⚠️ Important Prerequisites

  1. Back up your configurations: Specifically, the /etc folder, which holds your network bridge configurations.
    bashcp -r /etc /root/etc_backup_$(date +%F)
  2. Check the confirmation prompts: When running apt purge, always read the list of packages to be removed before hitting “Y”. If you see proxmox-ve, pve-manager, or qemu-server in the removal list, ABORT.

Step 1: Purging the Applications

Based on a standard Debian/KDE/Office install, we need to target specific groups of packages. We use purge instead of remove to ensure configuration files are deleted as well.

Remove LibreOffice & Office Tools

Office suites have no place on a hypervisor. Run this to clear out the common core components:

apt purge libreoffice-common libreoffice-help-en-us libreoffice-l10n-de libreoffice-style-colibre

Remove KDE/Plasma & GUI Agents

Desktop environments often leave behind authentication agents that can interfere with headless operations. The polkit-kde-agent is a common offender.

apt purge polkit-kde-agent-1 kwayland-data kwayland-integration debconf-kde-data

Remove Print & Audio Services (CUPS/PulseAudio)

Unless you are passing through audio hardware or running a print server directly on the host (not recommended), these services just consume resources.

apt purge cups-common cups-filters cups-ipp-utils pulseaudio alsa-utils

Remove Avahi (Optional)

Avahi handles mDNS (Bonjour). On a static server infrastructure, it is rarely needed.

apt purge avahi-daemon

Remove some multimedia leftovers

There are also some multimedia tools that a pure PVE server will not need.

apt purge smplayer vlc gstreamer1.0-plugins-base gstreamer1.0-x

Step 2: Cleaning up “Config Ghosts”

If you check your package list (via dpkg -l), you might see hundreds of packages marked with rc. This stands for Remove/Config—meaning the application is uninstalled, but its configuration files remain.

To keep your host clean, run this command to find all “removed” packages and purge their residual config files in one go:

dpkg -l | grep '^rc' | awk '{print $2}' | xargs apt purge -y

Step 3: Autoremove Unused Dependencies

Now that the main applications (KDE, Office, CUPS) are gone, their dependencies (libraries, fonts, graphic drivers) are now “orphaned.”

Tell apt to clean up these unused dependencies:

apt autoremove --purge

Note: This is usually where X11 libraries and fonts will be cleaned up. If some fonts remain, they are harmless and take up negligible space.

Step 4: The Safety Check

Finally, we must ensure that the cleanup didn’t accidentally flag the Proxmox meta-package for removal. This command will verify that Proxmox is installed and mark it as “manually installed” so it is never auto-removed in the future.

apt install proxmox-ve

If the output says proxmox-ve is already the newest version, your system is clean, stable, and ready to get back to work!

Leave a comment