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 updateläuft ohne Enterprise-Fehler durch.apt full-upgradeläuft sauber durch.dpkg --auditgibt nichts aus.pveproxyläuft.pvedaemonläuft.pve-clusterlä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-subscriptionRepository wurde aktiviert. - Debian 13 Trixie Repositories bleiben aktiv.
- Optional kann das kostenlose Ceph Repository aktiviert werden.
- Die Subscription-Meldung wurde durch Ersetzen von
checked_commandinproxmoxlib.jsdeaktiviert. - Nach Updates von
proxmox-widget-toolkitkann der Patch erneut nötig sein.