Zum Inhalt springen

Von Label Printer Hub zu Labelyard

Label Printer Hub heißt jetzt Labelyard (Version 1.6.0). Das ist eine Umbenennung, kein Neubau: Deine Daten, deine API-Schlüssel und deine API-Clients ziehen mit um. Die Gründe und die vollständige Kompatibilitätstabelle stehen in der Entscheidung zur Umbenennung.

Vorher Nachher
Image ghcr.io/strausmann/label-printer-hub-backend ghcr.io/strausmann/labelyard
Image docker.io/<user>/label-printer-hub-backend docker.io/bstrausmann/labelyard
Befehl printer-hub labelyard (der alte Befehl bleibt als Alias)
Umgebungspräfix PRINTER_HUB_ LABELYARD_ (das alte Präfix wird weiter gelesen, siehe Umgebungsvariablen)
PDF-Schriftart PRINTHUB_PDF_FONT LABELYARD_PDF_FONT (der alte Name wird weiter gelesen)
Repository strausmann/Label-Printer-Hub strausmann/labelyard (GitHub leitet die alte Adresse weiter)
Beispielvariablen PRINTERHUB_HOST, LABEL_HUB_URL, LABEL_HUB_KEY LABELYARD_HOST, LABELYARD_URL, LABELYARD_KEY
Benutzername der Aufträge an Seitendrucker (IPP) label-printer-hub labelyard: Passe Freigabelisten für Benutzer und die Abrechnung je Benutzer auf dem Druckserver an

Du nutzt einen Seitendrucker? Lass zuerst seine Warteschlange leerlaufen. 1.6.0 erkennt die Aufträge aus 1.5.x weiter als eigene, fragt aber unter dem neuen Benutzernamen nach ihnen. Ein Druckserver, der nur den Besitzer eines Auftrags abbrechen lässt (bei CUPS der Standard), kann den Abbruch eines laufenden Auftrags aus 1.5.x verweigern.

  1. Ändere image: in deiner Compose-Datei auf ghcr.io/strausmann/labelyard:1.6.0 (oder docker.io/bstrausmann/labelyard:1.6.0).
  2. Hol das Image: docker compose pull.
  3. Starte neu: docker compose up -d.

Dein Daten-Volume, die Datenbankdatei, API-Schlüssel, Sitzungen und der Header X-Label-Hub-Key funktionieren weiter. Wenn deine Compose-Datei den Container oder den Dienst benennt, kannst du diese Namen behalten; im Image hängt nichts davon ab.

Du kommst von 1.4.x? Bring deine API-Clients zuerst auf 1.5.0 (/api/v1-Pfade, ohne Kompatibilitätsrouten); siehe die Versionshinweise zu 1.5.0. Die Umbenennung selbst ändert keinen API-Pfad.

  • Das Datenverzeichnis und der Name der Datenbankdatei (standardmäßig printer-hub.db): Bestehende Installationen finden ihre Daten dort, wo sie sie gelassen haben.
  • API-Schlüssel, Sitzungen und der Bootstrap-Ablauf.
  • Der Anfrage-Header X-Label-Hub-Key und das Schlüsselpräfix lh_.
  • Alle /api/v1-Pfade und der Ereignisstrom.
  • Der registrierte Name des Exportformats für Bogentypen (.sheet-type).
  • Die Port-Variable wirkt jetzt. LABELYARD_SERVER_PORT (und das alte PRINTER_HUB_SERVER_PORT) war dokumentiert, wurde aber ignoriert. Der Container lauscht jetzt auf dem genannten Port und fällt auf PORT, dann auf 8000 zurück. Eine .env-Datei, die du aus einer älteren .env.example kopiert hast, kann noch LABELYARD_SERVER_PORT=8090 enthalten: Lösche die Zeile oder setze den Port, den deine Compose-Datei abbildet (standardmäßig 8000). Danach muss /healthz auf dem abgebildeten Port antworten. Ist der Port nicht 8000, schreibt der Hub beim Start eine Warnung, die die Variable nennt, in die Container-Ausgabe (docker logs) und in die Log-Ansicht des Hubs.
  • Installierte Web-Apps behalten das alte Symbol noch eine Weile. Eine App, die du vor 1.6.0 auf dem Startbildschirm installiert hast, zeigt den alten Namen und das alte Symbol, bis der Browser ihr Manifest neu lädt. Unter iOS passiert das nie von selbst: Entferne die App vom Startbildschirm und füge sie neu hinzu.

Umbenennen musst du vorerst nicht. Der Hub liest LABELYARD_*; die früheren Namen PRINTER_HUB_* werden als veralteter Rückfall weiter gelesen.

  • Eine LABELYARD_-Variable gewinnt immer gegen ihren PRINTER_HUB_-Zwilling.
  • Leere Werte werden bei beiden Präfixen ignoriert, eine Compose-Zeile wie PRINTER_HUB_X=${PRINTER_HUB_X:-} überschreibt also nie etwas.
  • Dieselbe Regel heißt auch: Ein leeres LABELYARD_X= schaltet ein gesetztes PRINTER_HUB_X nicht ab, der alte Wert wirkt weiter. Um eine Einstellung abzuschalten, entfernst du die alte Variable oder setzt die neue auf einen ausdrücklichen Wert. Das betrifft vor allem die Sicherheitseinstellungen PRINTER_HUB_SSO_TRUST_TOKEN (leer schaltet den SSO-Header-Weg ab), PRINTER_HUB_BOOTSTRAP_ADMIN_KEY, PRINTER_HUB_TRUST_PANGOLIN_BASIC_BYPASS und PRINTER_HUB_TRUST_LEGACY_PANGOLIN_USER: Setze LABELYARD_TRUST_PANGOLIN_BASIC_BYPASS=false und LABELYARD_TRUST_LEGACY_PANGOLIN_USER=false ausdrücklich und lösche die Zeilen mit altem Token und Schlüssel, statt die neuen leer zu lassen.
  • Beim Start schreibt der Hub eine Warnzeile, die die alten Namen auflistet, die noch wirken, damit du weißt, was du umbenennen solltest. Du findest sie in der Container-Ausgabe (docker logs) und in der Log-Ansicht des Hubs auf der Seite System. Wird ein alter Name von einem LABELYARD_-Zwilling überstimmt, listet eine zweite Zeile diese ignorierten Namen. Beide Zeilen enthalten nur Namen, nie Werte.
  • Die alten Namen werden mindestens bis 2.0.0 gelesen.
  • Die PDF-Schriftart folgt demselben Muster: LABELYARD_PDF_FONT wird zuerst gelesen, das alte PRINTHUB_PDF_FONT, wenn das neue nicht gesetzt oder leer ist, mit einer Warnung, die die Variable nennt.

Um die Umbenennung in einer Datei .env abzuschließen, ersetzt du das Präfix und startest neu:

Terminal-Fenster
sed -i 's/^PRINTER_HUB_/LABELYARD_/' .env

Das ändert nur die Datei .env. Compose-Dateien, die die Variablen selbst nennen (zum Beispiel PRINTER_HUB_SECRET_KEY=${PRINTER_HUB_SECRET_KEY:?...}), musst du von Hand anpassen, auf beiden Seiten jeder Zeile, sonst fragt Compose weiter nach dem alten Namen.

Behalte deinen bisherigen Ressourcenschlüssel (Traefik-Routername, Pangolin public-resources.<key>, das label für Caddy). Ein neuer Schlüssel legt eine neue Ressource neben der alten an, mit neuem Zertifikat und neuen Zugriffsregeln. Die Beispiele nutzen jetzt den Schlüssel labelyard; das betrifft nur neue Installationen.

Die Hostname-Variable der Beispiele heißt LABELYARD_HOST; deine eigene Proxy-Konfiguration darf jeden Namen nutzen.

Die alten Images (label-printer-hub-backend in beiden Registries) bekommen keine Aktualisierungen mehr. Regeln von Watchtower, Renovate oder Dependabot, die darauf festgelegt sind, bieten 1.6.0 nie an: Ändere den Image-Namen einmal von Hand, wie in den drei Schritten oben.