Skip to main content

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

Diese Anleitung beschreibt, wie ein Proxmox VE 9 System aufohne kostenpflichtige Subscription betrieben wird. Dabei werden die offiziellen Enterprise-Repositories deaktiviert und stattdessen die kostenlosen Proxmox- und Debian-Repositories umgestellt wird.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 UmstellungNutzung auf dasdes pve-no-subscription-RepositoryRepositories ist einenormal normalemöglich, undaber sauberenicht Repository-Konfiguration.für produktive Systeme mit Support-Anspruch gedacht. Das Entfernen der Subscription-Meldung ist dagegen kein offiziell unterstützteroffizieller 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. Ziel

Nach dieser Anleitung verwendet der Server:

    Debian 13 Trixie Standard-Repositories Debian Security Repository Proxmox pve-no-subscription Repository optional Proxmox Ceph no-subscription Repository

    Nicht verwendet werden:

      Proxmox Enterprise Repository Proxmox Ceph Enterprise Repository

      2. Aktuelle Proxmox-Version prüfen

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

      pveversion
      cat /etc/os-release

      Erwartung beiBei Proxmox VE 9:9 sollte Debian 13 Trixie verwendet werden:

      VERSION_CODENAME=trixie

      3.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 dersie Eintragso entweder entfernt oder deaktiviert werden.

      Empfohlene Variante: Enabled: no ergänzen: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

      FallsWichtig ist die DateiZeile:

      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 existiert,verwendet istwird. dasDokumentation, ebenfallsdiese inseltene Ordnung.Form Dannvon ist das Enterprise-Repository wahrscheinlich nicht aktiv.Selbstverteidigung.


      4.3. Kostenloses Proxmox Repository einrichtenaktivieren

      Datei erstellen oder bearbeiten:

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

      Inhalt: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 nicht-produktiveprivate SystemeUmgebungen 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 benötigt zusätzlichbasiert weiterhin gültigeauf Debian. Die Debian-Basis-Repositories.Repositories Beidürfen Debiandeshalb 13nicht entfernt werden. Sonst wird bevorzugt das Deb822-FormatSystem verwendet.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

      Hinweis:Wichtig: Keine Debian-Repositories entfernen, nur weil Proxmox installiert ist. Proxmox basiertbraucht auf Debian und benötigt dieweiterhin Debian-Repositories weiterhin.Pakete.


      6. Optional: Debian Backports

      Backports sind für Proxmox normalerweise nicht zwingend nötig. Wenn sieBackports verwendet werden, sollten siePakete daraus bewusst gesetztinstalliert sein.werden.

      Beispiel: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 allesalle Pakete verwenden. PaketeDas ausist Backportskein solltenmagischer gezieltFrische-Spray, installiertsondern werden.eine zusätzliche Paketquelle mit Nebenwirkungen.


      7. Optional: Proxmox Ceph No-Subscription Repository

      Wenn Ceph auf dem Proxmox-Cluster verwendetgenutzt werden soll, kann das kostenlose Ceph-Repository eingerichteteingebunden werden. BeiFür Proxmox VE 9 ist Ceph Squid relevant.

      Datei erstellen oder bearbeiten:

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

      Inhalt für Ceph Squid ohne Subscription: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 vorhanden ist,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

      EinFalls Hinweisfolgende wieMeldung diesererscheint, 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. UpgradeSystem ausführenaktualisieren

      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.“


      10.

      Subscription-Meldung in der Weboberfläche ausblenden

      deaktivieren

      Wichtig:Achtung: DasDer istfolgende keinTeil offiziell unterstützter Proxmox-Schalter. Dabei wirdverändert eine JavaScript-Datei deraus Proxmox-Weboberflächedem lokal geändert. Nach Updates des PaketsPaket proxmox-widget-toolkit. Diese Änderung ist nicht offiziell supportet und kann dienach MeldungUpdates wiederüberschrieben erscheinen.werden.

      BetroffeneDie Datei:betroffene Datei ist:

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

      Zuerst


      10. Backup erstellen:der Datei erstellen

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


      11. Datei öffnen:bearbeiten

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

      In Nano mit Strg + W nach folgendem Text suchen:

      Nochecked_command: validfunction subscription(orig_cmd)

      InDer deroriginale Nähe befindet sich eine Abfrage ähnlich zu:

      res.data.status.toLowerCase() !== 'active'

      Diese Bedingung so ändern, dass sie nie wahr wird:

      false

      Das ErgebnisBlock sieht dann sinngemäß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 ||
                      falseres.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 bleibt der Code grundsätzlich erhalten, aberwird die Meldung wirdSubscription-Abfrage nicht mehr ausgelöst.ausgeführt. Ja,Die eigentliche Aktion in der Weboberfläche wird direkt gestartet.

      Wichtig: Das Komma am Ende muss bleiben. Wenn das istKomma hässlich.entfernt wird, kann die JavaScript-PatchingStruktur inkaputtgehen Vendor-Dateienund die Weboberfläche lädt nicht korrekt. JavaScript ist immer ein bisschenda wie TapeGlas: aufdurchsichtig, einerpraktisch, Warnlampe.und sofort scharfkantig, wenn man es falsch anfasst.


      11.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 die Proxmox-Weboberfläche in einem privaten FensterTab öffnen.öffnen oder hart neu laden mit Strg + F5

        Weboberfläche:

        https://SERVER-IP:8006/

        12.15. Änderung rückgängig machen

        WennFalls 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

        13.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.


        14.17. Empfohlene Repository-ZielstrukturStruktur

        Für ein Proxmox VE 9 Homelab ohne Subscription: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

        15.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.

        16.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 wurdekann das kostenlose Ceph Repository aktiviert.aktiviert werden.
        • Die Subscription-Meldung wurde durch einenErsetzen lokalenvon Patchchecked_command in proxmoxlib.js ausgeblendet.deaktiviert.
        • Der Patch kann nachNach Updates von proxmox-widget-toolkit kann der Patch erneut nötig sein.