Skip to content

Mehrere Instanzen verbinden (Master-Slave)

Betreibst du mehr als eine CachePanel-Instanz (z. B. eine an jedem Standort, oder eine pro LAN-Party-Location), kannst du eine davon als Master einrichten: sie zeigt den Live-Status aller verbundenen Slave-Instanzen an einem Ort und kann dort per Klick einen Prefill auslösen.

Das Prinzip

  • Eine Slave-Instanz erzeugt für sich selbst einen Instanz-Token — ein eigener, von allem anderen getrennter Token-Typ, extra für dieses Feature.
  • Diesen Token trägt man in der Master-Instanz ein, zusammen mit Name und Adresse der Slave-Instanz.
  • Ab dann kann der Master über diesen Token mit der Slave-Instanz sprechen — aber nur innerhalb eines bewusst engen Rahmens (siehe unten).

1. Instanz-Token auf der Slave-Instanz erzeugen

Auf der Instanz, die ferngesteuert werden soll:

  1. Einstellungen → Integrationen → Instanz-Tokens.
  2. "Instanz-Token erzeugen", einen Namen vergeben (z. B. Master-Standort-A).
  3. Den angezeigten Token sofort kopieren — er wird danach nie wieder im Klartext angezeigt, nur sein Hash bleibt gespeichert.

2. Slave-Instanz auf dem Master eintragen

Auf der Instanz, die als Master dienen soll:

  1. Einstellungen → Integrationen → Verbundene Instanzen.
  2. "Instanz hinzufügen": Name, Basis-URL der Slave-Instanz (z. B. https://lancache-standort-a.example.com), und den in Schritt 1 kopierten Token einfügen.
  3. Speichern.

Instanzen-Seite: verbundene Instanzen registrieren, eigene Instanz-Tokens erzeugen

Die Slave-Instanz erscheint jetzt in der Sammel-Ansicht mit ihrem Live-Status (aus ihrer eigenen /api/ha/sensors-Kennzahlen-Übersicht). Ist eine Instanz gerade nicht erreichbar, zeigt nur ihr eigener Eintrag einen Fehler — der Rest der Ansicht bleibt unbeeinträchtigt.

Prefill aus der Ferne auslösen

In der Sammel-Ansicht lässt sich für jede verbundene Slave-Instanz ein Prefill-Lauf direkt anstoßen — der Master schickt dafür einen Aufruf an die Slave-Instanz, die den Lauf lokal ausführt und das Ergebnis zurückmeldet. Ein echter Lauf kann mehrere Minuten dauern, die Anfrage wartet entsprechend lange auf das Ergebnis.

Sicherheitsgrenzen des Instanz-Tokens

Der Instanz-Token ist kein normaler API-Token (siehe Sicherheit) — er ist ein eigener, separater Token-Typ mit einem fest eingebauten, bewusst engen Berechtigungsrahmen:

  • Erlaubt: Status lesen (dieselben Kennzahlen wie die Home-Assistant-Anbindung), Prefill auf der Slave-Instanz auslösen.
  • Explizit NICHT erlaubt: Einstellungen lesen/ändern, Nutzerverwaltung, Backup/Restore, eigene Token verwalten (auch nicht sich selbst weitere Instanz-Tokens erzeugen), Cache leeren.

Selbst wenn ein Instanz-Token einmal geleakt würde, käme ein Angreifer damit nicht an Secrets oder Kontoverwaltung heran — nur an die zwei oben genannten, engen Fähigkeiten.

Der auf dem Master eingetragene Token wird verschlüsselt gespeichert, genau wie jedes andere Secret in CachePanel. Eine Slave-Instanz sieht in ihrer eigenen Token-Liste nie, ob/welcher Master sie gerade nutzt — nur, dass der Token existiert und wann er erzeugt wurde.

Widerrufen

Ein Instanz-Token lässt sich auf der Slave-Instanz jederzeit unter Einstellungen → Integrationen → Instanz-Tokens widerrufen — der zugehörige Master verliert damit sofort den Zugriff, unabhängig davon, ob man den Eintrag dort auch entfernt.

Veröffentlicht unter der MIT-Lizenz.