Skip to main content

Proxmox VE ohne Subscription: kostenlose Repositories nutzen und Subscription-Hinweis ausblenden

Diese Anleitung beschreibt, wie ein Proxmox VE 9 System ohne kostenpflichtige Subscription betrieben wird. Dabei werden die offiziellen Enterprise-Repositories deaktiviert und stattdessen die kostenlosen Proxmox- und Debian-Repositories verwendet. Zusätzlich wird erklärt, wie die Meldung „No valid subscription - You do not have a valid subscription for this server“ in der Proxmox-Weboberfläche ausgeblendet werden kann.

Wichtig: Die Nutzung des pve-no-subscription-Repositories ist normal möglich, aber nicht für produktive Systeme mit Support-Anspruch gedacht. Das Entfernen der Subscription-Meldung ist kein offizieller Proxmox-Schalter, sondern ein lokaler Patch an einer JavaScript-Datei der Weboberfläche.

Diese Anleitung ist für Proxmox VE 9 auf Debian 13 Trixie geschrieben.


1. Aktuelle Version prüfen

Zuerst prüfen, welche Proxmox- und Debian-Version installiert ist:

pveversion
cat /etc/os-release

Bei Proxmox VE 9 sollte Debian 13 Trixie verwendet werden:

VERSION_CODENAME=trixie

2. Proxmox Enterprise Repository deaktivieren

Ohne gültige Proxmox-Subscription erzeugt das Enterprise-Repository Fehler bei apt update. Deshalb wird es deaktiviert.

Datei öffnen:

nano /etc/apt/sources.list.d/pve-enterprise.sources

Falls die Datei existiert, sollte sie so aussehen:

Types: deb
URIs: https://enterprise.proxmox.com/debian/pve
Suites: trixie
Components: pve-enterprise
Signed-By: /usr/share/keyrings/proxmox-archive-keyring.gpg
Enabled: no

Wichtig ist die Zeile:

Enabled: no

Alternativ kann der Enterprise-Eintrag entfernt werden. Sauberer ist aber meistens, ihn deaktiviert liegen zu lassen. Dann weiß man später noch, warum das Ding nicht verwendet wird. Dokumentation, diese seltene Form von Selbstverteidigung.


3. Kostenloses Proxmox Repository aktivieren

Datei erstellen oder bearbeiten:

nano /etc/apt/sources.list.d/proxmox.sources

Inhalt für Proxmox VE 9 / Debian 13 Trixie:

Types: deb
URIs: http://download.proxmox.com/debian/pve
Suites: trixie
Components: pve-no-subscription
Signed-By: /usr/share/keyrings/proxmox-archive-keyring.gpg

Das Repository pve-no-subscription benötigt keinen Subscription-Key. Es ist für Homelab, Testsysteme und private Umgebungen geeignet.


4. Proxmox Keyring prüfen

Falls der Proxmox-Keyring noch nicht installiert ist, kann er so eingebunden werden:

apt install -y wget ca-certificates

wget https://enterprise.proxmox.com/debian/proxmox-archive-keyring-trixie.gpg -O /usr/share/keyrings/proxmox-archive-keyring.gpg

Hash prüfen:

sha256sum /usr/share/keyrings/proxmox-archive-keyring.gpg

Erwarteter Hash:

136673be77aba35dcce385b28737689ad64fd785a797e57897589aed08db6e45  /usr/share/keyrings/proxmox-archive-keyring.gpg

5. Debian Repositories prüfen

Proxmox basiert weiterhin auf Debian. Die Debian-Repositories dürfen deshalb nicht entfernt werden. Sonst wird das System irgendwann sehr kreativ kaputt.

Datei prüfen:

nano /etc/apt/sources.list.d/debian.sources

Beispiel für Debian 13 Trixie:

Types: deb
URIs: http://deb.debian.org/debian/
Suites: trixie trixie-updates
Components: main non-free-firmware
Signed-By: /usr/share/keyrings/debian-archive-keyring.gpg

Types: deb
URIs: http://security.debian.org/debian-security/
Suites: trixie-security
Components: main non-free-firmware
Signed-By: /usr/share/keyrings/debian-archive-keyring.gpg

Wichtig: Keine Debian-Repositories entfernen, nur weil Proxmox installiert ist. Proxmox braucht weiterhin Debian-Pakete.


6. Optional: Debian Backports

Backports sind für Proxmox normalerweise nicht zwingend nötig. Wenn Backports verwendet werden, sollten Pakete daraus bewusst installiert werden.

Beispiel für Debian 13 Trixie Backports:

Types: deb
URIs: http://deb.debian.org/debian/
Suites: trixie-backports
Components: main non-free-firmware
Signed-By: /usr/share/keyrings/debian-archive-keyring.gpg

Backports nicht blind für alle Pakete verwenden. Das ist kein magischer Frische-Spray, sondern eine zusätzliche Paketquelle mit Nebenwirkungen.


7. Optional: Proxmox Ceph No-Subscription Repository

Wenn Ceph auf dem Proxmox-Cluster genutzt werden soll, kann das kostenlose Ceph-Repository eingebunden werden. Für Proxmox VE 9 ist Ceph Squid relevant.

Datei erstellen oder bearbeiten:

nano /etc/apt/sources.list.d/ceph.sources

Inhalt:

Types: deb
URIs: http://download.proxmox.com/debian/ceph-squid
Suites: trixie
Components: no-subscription
Signed-By: /usr/share/keyrings/proxmox-archive-keyring.gpg

Falls ein Enterprise-Ceph-Repository existiert, sollte es deaktiviert werden:

Types: deb
URIs: https://enterprise.proxmox.com/debian/ceph-squid
Suites: trixie
Components: enterprise
Signed-By: /usr/share/keyrings/proxmox-archive-keyring.gpg
Enabled: no

8. Paketlisten aktualisieren

apt update

Wenn alles korrekt eingerichtet ist, sollten keine Fehler wie diese erscheinen:

401 Unauthorized
403 Forbidden
NO_PUBKEY
The repository is not signed
does not have a Release file

Falls folgende Meldung erscheint, ist das bei aktivierter i386-Architektur nicht kritisch:

pve-no-subscription/binary-i386/Packages wird übersprungen, da das Depot die Architektur i386 nicht unterstützt.

Proxmox stellt keine i386-Pakete bereit. Wenn keine 32-bit-Pakete benötigt werden, kann die Architektur später entfernt werden.


9. System aktualisieren

apt full-upgrade

Danach prüfen:

dpkg --audit
pveversion
uname -r

dpkg --audit sollte keine Ausgabe liefern. Wenn es doch etwas ausgibt, ist die Paketverwaltung nicht sauber. APT meldet sich dann quasi mit einem Zettel: „Ich habe da was fallen lassen.“


Subscription-Meldung in der Weboberfläche deaktivieren

Achtung: Der folgende Teil verändert eine Datei aus dem Paket proxmox-widget-toolkit. Diese Änderung ist nicht offiziell supportet und kann nach Updates überschrieben werden.

Die betroffene Datei ist:

/usr/share/javascript/proxmox-widget-toolkit/proxmoxlib.js

10. Backup der Datei erstellen

cp -a /usr/share/javascript/proxmox-widget-toolkit/proxmoxlib.js /usr/share/javascript/proxmox-widget-toolkit/proxmoxlib.js.bak

11. Datei bearbeiten

nano /usr/share/javascript/proxmox-widget-toolkit/proxmoxlib.js

In Nano mit Strg + W nach folgendem Text suchen:

checked_command: function (orig_cmd)

Der originale Block sieht ungefähr so aus:

checked_command: function (orig_cmd) {
    Proxmox.Utils.API2Request({
        url: '/nodes/localhost/subscription',
        method: 'GET',
        failure: function (response, opts) {
            Ext.Msg.alert(gettext('Error'), response.htmlStatus);
        },
        success: function (response, opts) {
            let res = response.result;
            if (
                res === null ||
                res === undefined ||
                !res ||
                res.data.status.toLowerCase() !== 'active'
            ) {
                Ext.Msg.show({
                    title: gettext('No valid subscription'),
                    icon: Ext.Msg.WARNING,
                    message: Proxmox.Utils.getNoSubKeyHtml(res.data.url),
                    buttons: Ext.Msg.OK,
                    callback: function (btn) {
                        if (btn !== 'ok') {
                            return;
                        }
                        orig_cmd();
                    },
                });
            } else {
                orig_cmd(); 
            }
        },
    });
},

12. Block ersetzen

Den kompletten Block durch diesen kurzen Block ersetzen:

checked_command: function (orig_cmd) {
    orig_cmd();
},

Dadurch wird die Subscription-Abfrage nicht mehr ausgeführt. Die eigentliche Aktion in der Weboberfläche wird direkt gestartet.

Wichtig: Das Komma am Ende muss bleiben. Wenn das Komma entfernt wird, kann die JavaScript-Struktur kaputtgehen und die Weboberfläche lädt nicht korrekt. JavaScript ist da wie Glas: durchsichtig, praktisch, und sofort scharfkantig, wenn man es falsch anfasst.


13. Vollständiger Zielausschnitt

Der Bereich um alertResponseFailure und checked_command sollte danach ungefähr so aussehen:

// can be useful for catching displaying errors from the API, e.g.:
// Proxmox.Async.api2({
//     ...
// }).catch(Proxmox.Utils.alertResponseFailure);
alertResponseFailure: (res) =>
    Ext.Msg.alert(gettext('Error'), res.htmlStatus || res.result.message),

checked_command: function (orig_cmd) {
    orig_cmd();
},

Es ist nicht nötig, andere Subscription-Funktionen zu verändern. Dieser Patch reicht aus, um den störenden Hinweis beim Login beziehungsweise bei Aktionen in der Weboberfläche zu unterdrücken.


14. Proxmox Webproxy neu starten

systemctl restart pveproxy

Danach die Weboberfläche neu laden.

Am besten:

  • Browser-Cache leeren
  • oder privaten Tab öffnen
  • oder hart neu laden mit Strg + F5

Weboberfläche:

https://SERVER-IP:8006/

15. Änderung rückgängig machen

Falls die Weboberfläche Probleme macht oder die Änderung zurückgenommen werden soll:

cp -a /usr/share/javascript/proxmox-widget-toolkit/proxmoxlib.js.bak /usr/share/javascript/proxmox-widget-toolkit/proxmoxlib.js
systemctl restart pveproxy

Alternativ kann das Paket neu installiert werden:

apt install --reinstall proxmox-widget-toolkit
systemctl restart pveproxy

16. Nach Updates prüfen

Wenn das Paket proxmox-widget-toolkit aktualisiert wird, kann die Datei proxmoxlib.js überschrieben werden. Dann erscheint die Subscription-Meldung wieder.

Nach Updates prüfen:

apt list --upgradable
dpkg -l proxmox-widget-toolkit

Falls die Meldung wieder erscheint, den Patch erneut anwenden.


17. Empfohlene Repository-Struktur

Für ein Proxmox VE 9 Homelab ohne Subscription sollten typischerweise diese Dateien aktiv sein:

/etc/apt/sources.list.d/debian.sources
/etc/apt/sources.list.d/proxmox.sources

Optional bei Ceph:

/etc/apt/sources.list.d/ceph.sources

Nicht aktiv ohne Subscription:

/etc/apt/sources.list.d/pve-enterprise.sources
/etc/apt/sources.list.d/ceph-enterprise.sources

Enterprise-Dateien können vorhanden sein, sollten aber deaktiviert sein:

Enabled: no

18. Kontrollbefehle

apt update
apt full-upgrade
dpkg --audit
pveversion
systemctl status pveproxy --no-pager
systemctl status pvedaemon --no-pager
systemctl status pve-cluster --no-pager

Erwartung:

  • apt update läuft ohne Enterprise-Fehler durch.
  • apt full-upgrade läuft sauber durch.
  • dpkg --audit gibt nichts aus.
  • pveproxy läuft.
  • pvedaemon läuft.
  • pve-cluster läuft.
  • Die Proxmox-Weboberfläche ist erreichbar.
  • Die Subscription-Meldung erscheint nach dem Patch nicht mehr.

19. Typische Probleme

apt update zeigt 401 Unauthorized

Dann ist sehr wahrscheinlich noch ein Enterprise-Repository aktiv.

Prüfen:

ls /etc/apt/sources.list.d/

Enterprise-Dateien öffnen und mit Enabled: no deaktivieren.

Proxmox meldet i386 wird übersprungen

Beispiel:

pve-no-subscription/binary-i386/Packages wird übersprungen

Das ist kein kritischer Fehler. Proxmox bietet keine i386-Pakete an.

Subscription-Meldung erscheint nach Update wieder

Dann wurde proxmoxlib.js durch ein Update überschrieben. Den Patch erneut anwenden. Willkommen bei Vendor-Dateien, der Tapete der Systemadministration.

Weboberfläche lädt nach Änderung nicht mehr

Dann wurde wahrscheinlich JavaScript-Syntax beschädigt. Backup zurückspielen:

cp -a /usr/share/javascript/proxmox-widget-toolkit/proxmoxlib.js.bak /usr/share/javascript/proxmox-widget-toolkit/proxmoxlib.js
systemctl restart pveproxy

20. Zusammenfassung

  • Das Proxmox Enterprise Repository wurde deaktiviert.
  • Das kostenlose pve-no-subscription Repository wurde aktiviert.
  • Debian 13 Trixie Repositories bleiben aktiv.
  • Optional kann das kostenlose Ceph Repository aktiviert werden.
  • Die Subscription-Meldung wurde durch Ersetzen von checked_command in proxmoxlib.js deaktiviert.
  • Nach Updates von proxmox-widget-toolkit kann der Patch erneut nötig sein.