Proxmox VE ohne Subscription: kostenlose Repositories nutzen und Subscription-Hinweis ausblenden
Diese Anleitung beschreibt, wie ein
Proxmox VE 99: SystemNo-Subscription-Popup unterdeaktivieren
Diese 13kurze TrixieAnleitung sauberentfernt aufausschließlich kostenlosedas Repositories umgestellt wird. Zusätzlich wird erklärt, wie die Popup-MeldungPopup „No valid subscription - You do not have a valid subscription for this server“subscription“ inaus der Proxmox-Weboberfläche ausgeblendet wird.
Wichtig: Das Verwenden von pve-no-subscription und ceph no-subscription ist für Homelab- und Testsysteme normal. Proxmox zeigt dafür aber weiterhin Warnungen in der Repository-Ansicht an, weil diese Repositories nicht für produktive Systeme mit Support-Anspruch empfohlen werden.
Nicht verwechseln:Weboberfläche. Die gelben Repository-Warnungen unter Updates → Repositories sindwerden dadurch nicht dieselbeverändert.
Hinweis: Der JavaScript-Patch entfernt nur das Popup, nichtverändert die Repository-Warnungen.
1. Zielzustand
Am Ende sollen nur noch die wirklich benötigten Paketquellen aktiv sein.
Für ein normales Proxmox VE 9 Homelab ohne Subscription:
/etc/apt/sources.list.d/debian.sources
/etc/apt/sources.list.d/proxmox.sourcesOptional, wenn Ceph verwendet werden soll:
/etc/apt/sources.list.d/ceph.sourcesNicht aktiv ohne Subscription:
/etc/apt/sources.list.d/pve-enterprise.sources
/etc/apt/sources.list.d/ceph-enterprise.sourcesDie Datei /etc/apt/sources.list sollte auf einem aufgeräumten Proxmox VE 9 System idealerweise leer sein oder nur Kommentare enthalten. Die eigentlichen Debian-Repos liegen dann sauber im Deb822-Format in /etc/apt/sources.list.d/debian.sources.
2. Aktuelle Version prüfen
pveversion
cat /etc/os-release
uname -rBei Proxmox VE 9 sollte Debian 13 Trixie verwendet werden:
VERSION_CODENAME=trixie3. Vor Änderungen Backups erstellen
Vor dem Aufräumen der Repositories werden die vorhandenen APT-Dateien gesichert. Das ist langweilig, aber deutlich besser als später aus Terminal-Asche rekonstruieren zu müssen, was man vor fünf Minuten zerstört hat.
mkdir -p /root/apt-repo-backup
cp -a /etc/apt/sources.list /root/apt-repo-backup/sources.list.bak 2>/dev/null || true
cp -a /etc/apt/sources.list.d /root/apt-repo-backup/sources.list.d.bak4. Repository-Dateien ansehen
Alle vorhandenen Repository-Dateien anzeigen:
ls -la /etc/apt/
ls -la /etc/apt/sources.list.d/Typische Dateien:
/etc/apt/sources.list
/etc/apt/sources.list.d/debian.sources
/etc/apt/sources.list.d/proxmox.sources
/etc/apt/sources.list.d/pve-enterprise.sources
/etc/apt/sources.list.d/ceph.sources5. Problem aus der Proxmox-Repository-Ansicht erklären
In der Proxmox-GUI unter Updates → Repositories können mehrere Dinge sichtbar sein:
/etc/apt/sources.list/etc/apt/sources.list.d/debian.sourcespve-no-subscriptionceph no-subscriptionpve-enterpriseDie Warnungen „The no-subscription repository is not recommended for production use“ und „The Ceph no-subscription/main repository is not recommended for production use“ sind bei kostenloser Repo-Nutzung normal. Sie bedeuten nicht automatisch, dass apt update kaputt ist.
6. /etc/apt/sources.list aufräumen
Auf einem sauberen Proxmox VE 9 System sollten Debian-Repositories im Deb822-Format in /etc/apt/sources.list.d/debian.sources stehen. Die alte Datei /etc/apt/sources.list sollte deshalb keine aktiven Debian-Repos mehr enthalten.
Datei öffnen:
nano /etc/apt/sources.listEmpfohlener Inhalt:
# Debian repositories are managed in:
# /etc/apt/sources.list.d/debian.sources
#
# This file is intentionally left without active repository entries.Dadurch werden doppelte Einträge zwischen /etc/apt/sources.list und /etc/apt/sources.list.d/debian.sources vermieden.
7. Debian-Repositories sauber setzen
Datei öffnen:
nano /etc/apt/sources.list.d/debian.sourcesEmpfohlener Inhalt für Debian 13 Trixie:
Types: deb
URIs: http://deb.debian.org/debian/
Suites: trixie trixie-updates
Components: main contrib non-free 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 contrib non-free non-free-firmware
Signed-By: /usr/share/keyrings/debian-archive-keyring.gpgjavascript/proxmox-widget-toolkit/proxmoxlib.jscontrib, non-free und non-free-firmware sind sinnvoll, wenn Firmware, NVIDIA-Komponenten oder andere nicht vollständig freie Pakete benötigt werden.
Keine Debian-Repositories entfernen, nur weil Proxmox installiert ist. Proxmox basiert weiterhin auf Debian und braucht Debian-Pakete.
8. Debian Backports optional setzen
Backports sind optional. Wenn sie verwendet werden, sollten sie bewusst und nicht als wilde Paket-Fundgrube genutzt werden.
Falls Backports gewünscht sind, kann eine separate Datei genutzt werden:
nano /etc/apt/sources.list.d/debian-backports.sourcesInhalt:
Types: deb
URIs: http://deb.debian.org/debian/
Suites: trixie-backports
Components: main contrib non-free non-free-firmware
Signed-By: /usr/share/keyrings/debian-archive-keyring.gpgWenn Backports nicht benötigt werden, Datei weglassen. Weniger Repos bedeutet weniger Möglichkeiten für APT, sich wie ein überforderter Einkaufswagen zu benehmen.
9. Proxmox Enterprise Repository deaktivieren
Ohne Subscription darf das Enterprise-Repository nicht aktiv sein.
Datei öffnen:
nano /etc/apt/sources.list.d/pve-enterprise.sourcesEmpfohlener Inhalt:
Types: deb
URIs: https://enterprise.proxmox.com/debian/pve
Suites: trixie
Components: pve-enterprise
Signed-By: /usr/share/keyrings/proxmox-archive-keyring.gpg
Enabled: noWichtig ist:
Enabled: noWenn die Datei nicht existiert, ist das ebenfalls okay. Dann ist das Enterprise-Repository nicht konfiguriert.
10. Kostenloses Proxmox Repository aktivieren
Datei öffnen oder erstellen:
nano /etc/apt/sources.list.d/proxmox.sourcesInhalt:
Types: deb
URIs: http://download.proxmox.com/debian/pve
Suites: trixie
Components: pve-no-subscription
Signed-By: /usr/share/keyrings/proxmox-archive-keyring.gpg
Architectures: amd64Die Zeile Architectures: amd64 verhindert Warnungen, wenn auf dem System zusätzlich die Architektur i386 aktiviert ist. Proxmox stellt keine i386-Pakete bereit.
11. Proxmox Keyring prüfen
Falls der Proxmox-Keyring noch nicht vorhanden ist:
apt install -y wget ca-certificates
wget https://enterprise.proxmox.com/debian/proxmox-archive-keyring-trixie.gpg -O /usr/share/keyrings/proxmox-archive-keyring.gpgHash prüfen:
sha256sum /usr/share/keyrings/proxmox-archive-keyring.gpgErwarteter Hash:
136673be77aba35dcce385b28737689ad64fd785a797e57897589aed08db6e45 /usr/share/keyrings/proxmox-archive-keyring.gpg12. Ceph Repository aufräumen
Ceph wird nur benötigt, wenn auf dem Proxmox-Cluster wirklich Ceph verwendet werden soll. Wenn Ceph noch nicht genutzt wird, kann das Ceph-Repository deaktiviert werden.
Variante A: Ceph wird aktuell nicht genutzt
Datei öffnen:
nano /etc/apt/sources.list.d/ceph.sourcesInhalt zum Deaktivieren:
Types: deb
URIs: http://download.proxmox.com/debian/ceph-squid
Suites: trixie
Components: no-subscription
Signed-By: /usr/share/keyrings/proxmox-archive-keyring.gpg
Architectures: amd64
Enabled: noDamit verschwindet auch die Ceph-no-subscription-Warnung, weil das Ceph-Repository nicht mehr aktiv ist.
Variante B: Ceph wird genutzt oder vorbereitet
Datei öffnen:
nano /etc/apt/sources.list.d/ceph.sourcesInhalt:
Types: deb
URIs: http://download.proxmox.com/debian/ceph-squid
Suites: trixie
Components: no-subscription
Signed-By: /usr/share/keyrings/proxmox-archive-keyring.gpg
Architectures: amd64Wenn das Ceph-no-subscription-Repository aktiv ist, zeigt Proxmox in der Repository-Ansicht eine Warnung an. Das ist bei kostenloser Nutzung normal.
Ceph Enterprise Repository deaktivieren
Falls vorhanden:
nano /etc/apt/sources.list.d/ceph-enterprise.sourcesInhalt:
Types: deb
URIs: https://enterprise.proxmox.com/debian/ceph-squid
Suites: trixie
Components: enterprise
Signed-By: /usr/share/keyrings/proxmox-archive-keyring.gpg
Enabled: no13. i386-Architektur prüfen
Wenn apt update meldet, dass Proxmox keine i386-Pakete anbietet, ist das meist harmlos. Sauberer ist aber, entweder in den Proxmox- und Ceph-Repos Architectures: amd64 zu setzen oder i386 zu entfernen.
Aktive Architekturen anzeigen:
dpkg --print-architecture
dpkg --print-foreign-architecturesWenn i386 nicht benötigt wird:
dpkg --remove-architecture i386
apt updatei386 nur entfernen, wenn keine 32-bit-Pakete benötigt werden. Auf einem reinen Proxmox-Server ist das meistens der Fall.
14. Paketlisten aktualisieren
apt updateGute Ausgabe:
401 Unauthorized403 ForbiddenNO_PUBKEYbookwormtrixieWenn apt update sauber ist:
apt full-upgradeDanach prüfen:
dpkg --audit
pveversion
uname -r15. Repository-Warnungen in der Proxmox-GUI verstehen
Unter Updates → Repositories kann Proxmox weiterhin Warnungen anzeigen. Diese sind nicht immer Fehler.
The no-subscription repository is not recommended for production usepve-no-subscriptionThe Ceph no-subscription/main repository is not recommended for production useSome suites are misconfiguredpve-enterpriseEnabled: noSubscription-Popup in der Weboberfläche deaktivieren
Achtung: Dieser Teil verändert eine Datei aus dem Paket proxmox-widget-toolkit. Das ist kein offiziell unterstützter Proxmox-Schalter. Nach Updateseinem Paketupdate kann die Änderung überschrieben werden und muss dann erneut angewendet werden.
Fix
Proxmox zeigt das Subscription-Popup über die Funktion checked_command an. Der Fix führt den eigentlichen Befehl sofort aus und beendet die Funktion, bevor die Subscription-Abfrage und das Popup ausgeführt werden.
BetroffeneDie Datei:
/usr/share/javascript/proxmox-widget-toolkit/proxmoxlib.jsverhält sich
16.danach Backupeffektiv der JavaScript-Datei erstellen
cp -a /usr/share/javascript/proxmox-widget-toolkit/proxmoxlib.js /usr/share/javascript/proxmox-widget-toolkit/proxmoxlib.js.bak17. JavaScript-Datei bearbeiten
nano /usr/share/javascript/proxmox-widget-toolkit/proxmoxlib.jsIn 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();
}
},
});
},18. checked_command-Block ersetzen
Den kompletten Block durch diesen kurzen Block ersetzen:so:
checked_command: function (orig_cmd) {
orig_cmd();
return;
// vorhandener Proxmox-Code wird nicht mehr ausgeführt
},
Das Komma am Ende muss bleiben. Wenn das Komma fehlt, kann die JavaScript-Struktur kaputtgehen und die Weboberfläche lädt nicht mehr korrekt.
19. Vollständiger ZielausschnittQuick-Befehl
Der Bereich umAls alertResponseFailurerootunddirekt in checked_commandsollteder danachTerminal-Session so aussehen:ausführen:
f=//usr/share/javascript/proxmox-widget-toolkit/proxmoxlib.js; cantest be-e 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"$f.bak" || res.result.message),cp -a "$f" "$f.bak"; python3 -c 'from pathlib import Path; p=Path("/usr/share/javascript/proxmox-widget-toolkit/proxmoxlib.js"); s=p.read_text(); old="checked_command: function (orig_cmd) {"; new=old+" orig_cmd(); },return;"; Alteassert Code-Blöckeold in s, "checked_command wurde nicht nurgefunden"; auskommentieren,p.write_text(s sondernif wirklichnew entfernen.in Auskommentierters Vendor-Codeelse ists.replace(old,new,1))' wie&& ein alter Teppich im Serverraum: irgendwann stolpert jemand darüber und keiner weiß mehr, warum er da liegt.
20. Proxmox Webproxy neu starten
systemctl restart pveproxy && systemctl is-active pveproxy
DanachDer im Browser:Befehl:
Mitlegt einmalig ein Backup alsproxmoxlib.js.bakan,
pveproxy neu,
und prüft anschließend, ob pveproxy wieder aktiv ist.
Wenn am Ende active ausgegeben wird, läuft der Proxy wieder.
Browser neu laden
Danach die Proxmox-Weboberfläche mit Strg + F5 hart neu ladenladen.
Wenn weiterhin gelbe Warnungen unter Updates → Repositories erscheinen, ist das nicht das Subscription-Popup. Diese Warnungen kommen von der Repository-Konfiguration und bleiben bei no-subscription-Repos teilweise normal.werden.
21. Änderung rückgängig machen
Falls die Weboberfläche danach Probleme macht:macht, das Backup wiederherstellen:
cp -a /usr/share/javascript/proxmox-widget-toolkit/proxmoxlib.js.bak /usr/share/javascript/proxmox-widget-toolkit/proxmoxlib.js && systemctl restart pveproxy && systemctl is-active pveproxy
Alternativ Paketkann neudie installieren:Originaldatei durch eine Neuinstallation des Pakets wiederhergestellt werden:
apt install --reinstall proxmox-widget-toolkit && systemctl restart pveproxy
22. Nach Proxmox-Updates erneut prüfen
WennWird proxmox-widget-toolkit aktualisiert wird,aktualisiert, kann derProxmox Patchdie überschriebengepatchte werden.Datei Danachersetzen. kannWenn das Popup danach wieder erscheinen.
Prüfen:
apt list --upgradable
dpkg -l proxmox-widget-toolkitFalls nötig,erscheint, den PatchQuick-Befehl erneut setzen.ausführen.
Beispiel: Saubere minimale Repository-Struktur
23. /etc/apt/sources.listWichtig
# Debian repositories are managed in:
# /etc/apt/sources.list.d/debian.sources
#
# This file is intentionally left without active repository entries.24. /etc/apt/sources.list.d/debian.sources
Types: deb
URIs: http://deb.debian.org/debian/
Suites: trixie trixie-updates
Components: main contrib non-free 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 contrib non-free non-free-firmware
Signed-By: /usr/share/keyrings/debian-archive-keyring.gpg25. /etc/apt/sources.list.d/proxmox.sources
Types: deb
URIs: http://download.proxmox.com/debian/pve
Suites: trixie
Components: pve-no-subscription
Signed-By: /usr/share/keyrings/proxmox-archive-keyring.gpg
Architectures: amd6426. /etc/apt/sources.list.d/pve-enterprise.sources
Types: deb
URIs: https://enterprise.proxmox.com/debian/pve
Suites: trixie
Components: pve-enterprise
Signed-By: /usr/share/keyrings/proxmox-archive-keyring.gpg
Enabled: no27. /etc/apt/sources.list.d/ceph.sources ohne aktive Ceph-Nutzung
Types: deb
URIs: http://download.proxmox.com/debian/ceph-squid
Suites: trixie
Components: no-subscription
Signed-By: /usr/share/keyrings/proxmox-archive-keyring.gpg
Architectures: amd64
Enabled: no28. /etc/apt/sources.list.d/ceph.sources mit aktiver Ceph-Nutzung
Types: deb
URIs: http://download.proxmox.com/debian/ceph-squid
Suites: trixie
Components: no-subscription
Signed-By: /usr/share/keyrings/proxmox-archive-keyring.gpg
Architectures: amd64Kontrollbefehle
apt update
apt full-upgrade
dpkg --audit
pveversion
uname -r
systemctl status pveproxy --no-pager
systemctl status pvedaemon --no-pager
systemctl status pve-cluster --no-pagerErwartung:
apt updatebookwormtrixiedpkg --auditpveproxypvedaemonpve-clusterZusammenfassung
/etc/apt/sources.listdebian.sourcesGelbe pve-no-subscription ceph Das Subscription-Popup wurde durch Ersetzen von checked_commandno-subscription in proxmoxlib.js deaktiviert.
Gelbeder Repository-Warnungen für no-subscriptionAnsicht sind beidavon kostenloser Nutzung normalunabhängig und nichtkönnen dasselbeweiterhin wieangezeigt das Subscription-Popup.
werden.