Skip to main content

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

Diese Anleitung beschreibt, wie ein

Proxmox VE 99: SystemNo-Subscription-Popup unterdeaktivieren

Debian

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.

Meldung wie das Popup „No valid subscription“.

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

Optional, wenn Ceph verwendet werden soll:

/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

Die 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 -r

Bei Proxmox VE 9 sollte Debian 13 Trixie verwendet werden:

VERSION_CODENAME=trixie

3. 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.bak

4. 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.sources

5. 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 enthält alte oder doppelte Debian-Einträge. /etc/apt/sources.list.d/debian.sources enthält ebenfalls Debian-Einträge. Dadurch sind Debian-Repositories teilweise doppelt vorhanden. pve-no-subscription ist aktiv. Das ist für Homelab okay, erzeugt aber eine Proxmox-Warnung. ceph no-subscription ist aktiv. Auch das erzeugt eine Proxmox-Warnung. pve-enterprise ist deaktiviert. Das ist ohne Subscription korrekt.

    Die 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.list

    Empfohlener 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.sources

    Empfohlener 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.js

    contrib, 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.sources

    Inhalt:

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

    Wenn 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.sources

    Empfohlener 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: no

    Wichtig ist:

    Enabled: no

    Wenn 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.sources

    Inhalt:

    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: amd64

    Die 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.gpg

    Hash prüfen:

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

    Erwarteter Hash:

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

    12. 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.sources

    Inhalt 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: no

    Damit 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.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
    Architectures: amd64

    Wenn 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.sources

    Inhalt:

    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

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

    Wenn i386 nicht benötigt wird:

    dpkg --remove-architecture i386
    apt update

    i386 nur entfernen, wenn keine 32-bit-Pakete benötigt werden. Auf einem reinen Proxmox-Server ist das meistens der Fall.


    14. Paketlisten aktualisieren

    apt update

    Gute Ausgabe:

      Keine 401 Unauthorized Keine 403 Forbidden Keine NO_PUBKEY Keine doppelten Repository-Warnungen Keine falschen Suites wie bookworm auf einem trixie-System

      Wenn apt update sauber ist:

      apt full-upgrade

      Danach prüfen:

      dpkg --audit
      pveversion
      uname -r

      15. Repository-Warnungen in der Proxmox-GUI verstehen

      Unter Updates → Repositories kann Proxmox weiterhin Warnungen anzeigen. Diese sind nicht immer Fehler.

      Meldung Bedeutung Was tun? The no-subscription repository is not recommended for production use pve-no-subscription ist aktiv. Für Homelab okay. Für Produktivsystem Subscription nutzen. The Ceph no-subscription/main repository is not recommended for production use Ceph no-subscription ist aktiv. Für Homelab okay. Wenn Ceph nicht genutzt wird, Ceph-Repo deaktivieren. Some suites are misconfigured Eine Quelle verwendet eine unerwartete Suite oder ist doppelt/falsch eingetragen. Repository-Dateien prüfen und doppelte Einträge entfernen. pve-enterprise aktiv ohne Subscription Enterprise-Repository ist aktiv. Mit Enabled: no deaktivieren.

      Subscription-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:

      Funktion
      /usr/share/javascript/proxmox-widget-toolkit/proxmoxlib.js
      verhä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.bak

      17. JavaScript-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(); 
                  }
              },
          });
      },

      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 alertResponseFailureroot unddirekt checked_commandin sollteder 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 als proxmoxlib.js.bak an,
      setzt den Patch nur dann, wenn er noch nicht vorhanden ist, startet 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.

      oderAlternativ Browser-Cachekann leeren oderein privates FensterBrowserfenster öffnenverwendet

      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-toolkit

      Falls 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.gpg

      25. /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: amd64

      26. /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: no

      27. /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: no

      28. /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: amd64

      Kontrollbefehle

      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-pager

      Erwartung:

        apt update läuft ohne Enterprise-Fehler durch. Keine doppelten Debian-Repositories. Keine falschen Suites wie bookworm auf einem trixie-System. dpkg --audit gibt nichts aus. pveproxy, pvedaemon und pve-cluster laufen. Das Subscription-Popup erscheint nach demDieser Patch nicht mehr.

        Zusammenfassung

          Debian-Repositories wurden aus /etc/apt/sources.list entfernt undnur sauberdas inSubscription-Popup. debian.sourcesGelbe gepflegt.Hinweise Doppelte Debian-Einträge wurden beseitigt. Das Proxmox Enterprise Repository wurde deaktiviert. Das kostenlosefür pve-no-subscription Repository wurde aktiviert. Das Ceph Repository wurde je nach Nutzung aktiviert oder deaktiviert.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.