Zum Inhalt

Tischplan-Hub

Bei mehr als einer Kasse will man den Grundriss nicht mehrfach pflegen. Der Tischplan-Hub ist ein sehr kleiner optionaler Dienst, der ein Layout pro Betrieb hält — alle Kassen dieses Betriebs holen es von dort, und der grafische Editor läuft gleich mit.

Der Hub ist bewusst klein: ein einzelnes Java-Programm (Java 17), keine Datenbank, die Daten liegen als JSON-Dateien auf der Platte. Er ist etwas, das die IT eines Restaurants neben dem CCO Manager startet und danach vergisst. Den Hub erhalten Sie zusammen mit dem Plugin — sprechen Sie uns über das Kundenportal an.

So funktioniert es

  • Änderungen erreichen die Kassen von selbst. Jede Kasse fragt den Hub im Hintergrund, ob sich etwas getan hat (Standard alle 20 Sekunden, ein paar hundert Byte). Sobald ja, übernimmt sie den neuen Plan in ihre lokale Datei und zeigt ihn sofort auf jedem offenen Bildschirm — niemand muss neu laden, den Tab wechseln oder die Kasse neu starten. Wer gerade selbst bearbeitet, wird nicht unterbrochen: die Leiste sagt Bescheid, „Verwerfen" holt den neuen Stand.
  • Die lokale Datei ist der Offline-Cache. Fällt der Hub aus, läuft jede Kasse mit ihrer Kopie weiter — nur zentral ändern geht dann nicht. Gespeichert wird in dem Fall bewusst auch nicht lokal: eine Kasse mit einer stillen Privatversion des Layouts wäre schlimmer als eine abgelehnte Speicherung.
  • Konflikte werden abgelehnt statt überschrieben. Gespeichert wird zuerst zentral. Hat inzwischen jemand anderes gespeichert, lehnt der Hub ab und sagt es — statt fremde Arbeit stumm zu überschreiben.
  • Der Start ist unkompliziert: Hält der Hub für den Betrieb noch kein Layout, spielt die erste angebundene Kasse ihr vorhandenes Layout hinein — ein bestehender Plan muss nicht von Hand übertragen werden.
  • Der Hub ist keine Betriebsvoraussetzung: ohne Hub pflegt jede Kasse ihre eigene Datei, alles Übrige funktioniert unverändert.

Kassen anbinden

Je Kasse unter Konfiguration → Plugins → TablePlanPlugin die Einstellungen hubUrl, hubToken und hubTenant setzen — Details in der Konfiguration. Ein Betrieb (hubTenant) ist üblicherweise das Kassen-Prefix; der Name muss dateinamentauglich sein (A–Z, a–z, 0–9, _, -, maximal 32 Zeichen).

Editor im Hub

Der grafische Editor läuft direkt im Hub:

http://<hub>:8080/edit?tenant=<Betrieb>

Token eingeben, Plan zeichnen, Speichern — die Kassen holen die neue Fassung von selbst und zeichnen sie sofort neu, auch wenn der Tischplan gerade offen auf dem Bildschirm steht.

Starten und konfigurieren

Der Hub läuft als Container oder direkt als Jar. Konfiguriert wird er über Umgebungsvariablen:

Variable Bedeutung
HUB_TOKEN Zugangstoken für Kassen und Editor. Ohne Token startet der Hub nicht — außer ausdrücklich mit HUB_ALLOW_ANONYMOUS=1.
DATA_DIR Ablage der Layouts (Default ./data, im Container /data).
PORT Default 8080.

Daten und Sicherung

Der Hub legt pro Betrieb eine JSON-Datei mit dem aktuellen Stand an sowie einen Historien-Ordner, in dem jede gespeicherte Fassung liegt:

data/
  <Betrieb>.json                     aktueller Stand
  <Betrieb>.history/000001.json …    jede Fassung, unbegrenzt

Sichern heißt: das Verzeichnis kopieren. Zurückrollen heißt: eine ältere Fassung aus dem Historien-Ordner wieder als aktuellen Stand einspielen — im Zweifel hilft der Support.