marker: auf iris-server-hosts umstellen (Picker mit needs, host_id statt ssh_target, Panel ohne SSH-Felder) #135

Closed
opened 2026-10-19 09:24:13 +00:00 by alf · 7 comments
Owner

Warum

Folge von iris/iris-plugins#115: Plugins wählen ihren Rechner nur noch aus der Liste von iris-server-hosts (Kennung host_id) und kennen weder SSH-Adresse noch Schlüssel. Marker ist das erste der fünf GPU-Plugins, das umgestellt wird (heartmula, whisper, qwen-tts-linux und comfyui-bridge folgen in eigenen Issues). Das Panel holt heute /gpu-hosts/targets; diese Route gibt es auf beiden Servern nicht mehr (404), der Picker bleibt leer.

Spezifikation

  • Picker: Das Panel fragt GET /hosts/targets?needs=gpu&needs=docker und zeigt die Rechner mit Karte(n) und Docker. Die Anforderung steht bewusst nur im Picker-Aufruf, nicht im Manifest (host_capabilities): Marker läuft auf Apple Silicon auch lokal ohne Host, die Installations-Sperre darf es dort nicht verhindern.
  • Kennung statt Ziel: Das Panel sendet nur host_id (bei „Verbindung testen“, Installation, Start). Gespeichert wird host_id in marker_plugin_config.json; ssh_target wird nicht mehr geschrieben (ein früher gespeichertes gpu_host_id wird einmal als Vorauswahl gelesen).
  • Keine SSH-Felder: Der Abschnitt „SSH-Schlüssel“ und das Feld „Anderer Rechner (SSH-Ziel …)“ entfallen, auch unter „Erweitert“. Der Installationspfad bleibt unter „Erweitert“. Ist kein passender Rechner da, verweist ein Hinweis auf „Hosts“.
  • Texte: „GPU-Host“, „GPU-Rechner“ und „GPU-Hosts-Verwaltung“ heißen jetzt „Rechner“ bzw. „Hosts“ (Panel, Build-Skript-Hinweis, PLAN.md).
  • Version: 1.18.0.

Nicht in diesem Issue

Die anderen vier GPU-Plugins (eigene Issues) und der Check-Knopf auf der Iris-Seite.

Stand

  • Panel umgestellt
  • Paket gebaut und von Alf getestet (Picker, Installation und Aktualisierung des Marker-Servers, lokale Einrichtung)
  • Eingereicht: iris-plugins#136

Verlauf und PRs stehen in den Kommentaren. Eingereicht wird erst nach Alfs Test.

## Warum Folge von iris/iris-plugins#115: Plugins wählen ihren Rechner nur noch aus der Liste von `iris-server-hosts` (Kennung `host_id`) und kennen weder SSH-Adresse noch Schlüssel. Marker ist das erste der fünf GPU-Plugins, das umgestellt wird (heartmula, whisper, qwen-tts-linux und comfyui-bridge folgen in eigenen Issues). Das Panel holt heute `/gpu-hosts/targets`; diese Route gibt es auf beiden Servern nicht mehr (404), der Picker bleibt leer. ## Spezifikation - **Picker:** Das Panel fragt `GET /hosts/targets?needs=gpu&needs=docker` und zeigt die Rechner mit Karte(n) und Docker. Die Anforderung steht bewusst nur im Picker-Aufruf, nicht im Manifest (`host_capabilities`): Marker läuft auf Apple Silicon auch lokal ohne Host, die Installations-Sperre darf es dort nicht verhindern. - **Kennung statt Ziel:** Das Panel sendet nur `host_id` (bei „Verbindung testen“, Installation, Start). Gespeichert wird `host_id` in `marker_plugin_config.json`; `ssh_target` wird nicht mehr geschrieben (ein früher gespeichertes `gpu_host_id` wird einmal als Vorauswahl gelesen). - **Keine SSH-Felder:** Der Abschnitt „SSH-Schlüssel“ und das Feld „Anderer Rechner (SSH-Ziel …)“ entfallen, auch unter „Erweitert“. Der Installationspfad bleibt unter „Erweitert“. Ist kein passender Rechner da, verweist ein Hinweis auf „Hosts“. - **Texte:** „GPU-Host“, „GPU-Rechner“ und „GPU-Hosts-Verwaltung“ heißen jetzt „Rechner“ bzw. „Hosts“ (Panel, Build-Skript-Hinweis, PLAN.md). - **Version:** 1.18.0. ## Nicht in diesem Issue Die anderen vier GPU-Plugins (eigene Issues) und der Check-Knopf auf der Iris-Seite. ## Stand - [x] Panel umgestellt - [x] Paket gebaut und von Alf getestet (Picker, Installation und Aktualisierung des Marker-Servers, lokale Einrichtung) - [x] Eingereicht: iris-plugins#136 Verlauf und PRs stehen in den Kommentaren. Eingereicht wird erst nach Alfs Test.
Author
Owner

Entwicklung: Panel umgestellt, Paket zum Testen (noch nicht eingereicht)

Geändert (Marker 1.18.0, lokal, ungeshippt):

  • Picker holt GET /hosts/targets?needs=gpu&needs=docker statt /gpu-hosts/targets (404). Einträge zeigen Karten aus gpus[] (Name, VRAM in GB); reachable gibt es nicht mehr.
  • Das Panel schickt nur host_id (Verbindung testen, Installation, Start). Gespeichert wird host_id (früheres gpu_host_id wird einmal als Vorauswahl gelesen); ssh_target wird nicht mehr geschrieben. Die Config-Route ersetzt die ganze Datei, ein altes ssh_target verschwindet beim nächsten Speichern.
  • Entfallen: Abschnitt „SSH-Schlüssel“ (samt Public-Key-Laden), Feld „Anderer Rechner (SSH-Ziel …)“, Auflösung eines von Hand eingetragenen Ziels. Der Installationspfad bleibt unter „Erweitert“.
  • Texte: „GPU-Host“/„GPU-Rechner“ → „Rechner“; leerer Picker verweist auf „Hosts“. Die Adresse aus dem Picker dient nur, um die Server-URL nach der Installation vorauszufüllen (http://host:8001), sie wird nicht gespeichert.
  • Build-Skript (Version, Hinweistexte) und PLAN.md („Rechnerwahl“) angepasst.

Entscheidung: Die Anforderung (GPU und Docker) steht im Picker-Aufruf, nicht im Manifest, damit die Installations-Sperre Marker nicht auf einem Mac blockiert, der es lokal auf der Apple-GPU nutzt.

Geprüft: JavaScript des Panels syntaktisch (node --check); die Picker-Route liefert die erwarteten Felder (Live-Prüfung in #115). Das Panel selbst ist noch nicht in der App gelaufen.

Zum Testen: ~/Desktop/marker-1.18.0.irisplugin in Iris importieren (Marker ist auf dem Mac deinstalliert; Einstellungen → Plugins → Importieren), dann Konfigurieren: Picker zeigt 192.168.178.153/iris-server (nicht self: der Mac hat keine Karte), „Verbindung testen“, Installation, Konvertierung. Eingereicht wird erst nach Alfs Test; dann PR hier verlinkt.

## Entwicklung: Panel umgestellt, Paket zum Testen (noch nicht eingereicht) **Geändert (Marker 1.18.0, lokal, ungeshippt):** - Picker holt `GET /hosts/targets?needs=gpu&needs=docker` statt `/gpu-hosts/targets` (404). Einträge zeigen Karten aus `gpus[]` (Name, VRAM in GB); `reachable` gibt es nicht mehr. - Das Panel schickt nur `host_id` (Verbindung testen, Installation, Start). Gespeichert wird `host_id` (früheres `gpu_host_id` wird einmal als Vorauswahl gelesen); `ssh_target` wird nicht mehr geschrieben. Die Config-Route ersetzt die ganze Datei, ein altes `ssh_target` verschwindet beim nächsten Speichern. - Entfallen: Abschnitt „SSH-Schlüssel“ (samt Public-Key-Laden), Feld „Anderer Rechner (SSH-Ziel …)“, Auflösung eines von Hand eingetragenen Ziels. Der Installationspfad bleibt unter „Erweitert“. - Texte: „GPU-Host“/„GPU-Rechner“ → „Rechner“; leerer Picker verweist auf „Hosts“. Die Adresse aus dem Picker dient nur, um die Server-URL nach der Installation vorauszufüllen (`http://host:8001`), sie wird nicht gespeichert. - Build-Skript (Version, Hinweistexte) und PLAN.md („Rechnerwahl“) angepasst. **Entscheidung:** Die Anforderung (GPU und Docker) steht im Picker-Aufruf, nicht im Manifest, damit die Installations-Sperre Marker nicht auf einem Mac blockiert, der es lokal auf der Apple-GPU nutzt. **Geprüft:** JavaScript des Panels syntaktisch (`node --check`); die Picker-Route liefert die erwarteten Felder (Live-Prüfung in #115). Das Panel selbst ist noch nicht in der App gelaufen. **Zum Testen:** `~/Desktop/marker-1.18.0.irisplugin` in Iris importieren (Marker ist auf dem Mac deinstalliert; Einstellungen → Plugins → Importieren), dann Konfigurieren: Picker zeigt `192.168.178.153`/`iris-server` (nicht `self`: der Mac hat keine Karte), „Verbindung testen“, Installation, Konvertierung. Eingereicht wird erst nach Alfs Test; dann PR hier verlinkt.
Author
Owner

Marker 1.18.0 im Marktplatz veröffentlicht (Registry-Commit c9fb606)

Auf Alfs Wunsch (Plugins immer veröffentlichen, damit er sie zum Testen direkt aus dem Marktplatz installiert) per ./publish-plugins.sh marker veröffentlicht (vorher Probelauf: 1 aktualisiert). Das Paket entspricht dem Stand im Arbeitsverzeichnis, der Code ist noch nicht in main (kommt per ship nach Alfs Test).

Zum Testen: Marker im Marktplatz installieren oder aktualisieren (statt der Datei vom Schreibtisch), dann Konfigurieren: Picker, „Verbindung testen“, Installation, Konvertierung.

## Marker 1.18.0 im Marktplatz veröffentlicht (Registry-Commit `c9fb606`) Auf Alfs Wunsch (Plugins immer veröffentlichen, damit er sie zum Testen direkt aus dem Marktplatz installiert) per `./publish-plugins.sh marker` veröffentlicht (vorher Probelauf: 1 aktualisiert). Das Paket entspricht dem Stand im Arbeitsverzeichnis, der Code ist noch nicht in `main` (kommt per `ship` nach Alfs Test). **Zum Testen:** Marker im Marktplatz installieren oder aktualisieren (statt der Datei vom Schreibtisch), dann Konfigurieren: Picker, „Verbindung testen“, Installation, Konvertierung.
Author
Owner

Verknüpft: Die Infrastruktur für Zustandsanzeige und Rechnerwahl bei „Laden“ steht in iris/Iris#85 (iris/Iris#85). Marker bekommt dort config-status, verliert die Installationsfrage MARKER_SERVER_URL und richtet die lokale Umgebung nach der Wahl ein; die Umstellung hier (Picker, host_id) bleibt der Teil in diesem Issue.

Verknüpft: Die Infrastruktur für Zustandsanzeige und Rechnerwahl bei „Laden“ steht in iris/Iris#85 (https://forgejo.lewerken.duckdns.org/iris/Iris/issues/85). Marker bekommt dort `config-status`, verliert die Installationsfrage `MARKER_SERVER_URL` und richtet die lokale Umgebung nach der Wahl ein; die Umstellung hier (Picker, `host_id`) bleibt der Teil in diesem Issue.
Author
Owner

Marker 1.19.0 veröffentlicht (Registry-Commit ba99018) — wartet auf Alfs Test

Folgt aus der Grill-me-Runde in iris/Iris#85: Die Rechnerwahl passiert bei „Laden“ im Marktplatz, nicht mehr in einer Installationsfrage.

Geändert: install_config (MARKER_SERVER_URL) entfällt; Manifest host_capabilities: ["gpu","docker"] und local_mode: ["macos"]; post_install.sh liest IRIS_HOST_MODE (local: lokale Umgebung einrichten, pending: nichts einrichten) und bricht auf Intel/Linux nicht mehr ab; config-status (Grün/Gelb, siehe PLAN.md), local-install und local-install-status (richten die lokale Umgebung über denselben Hook ein); das Panel zeigt „Bitte wählen …“, führt „Dieser Iris-Server (lokal)“ im Picker und hat „Lokale Umgebung einrichten“. Zu 1.18.0 (nur Picker, host_id statt SSH-Feldern) ist das die Fortsetzung.

Geprüft: 13 neue Tests (tests/test_config_status.py), JavaScript des Panels per node --check, Paket gebaut und der Inhalt angesehen. Nicht geprüft: das Panel in der App, der Marktplatz-Ablauf „Laden“ (braucht die neu gebaute Iris-App aus iris/Iris#85) und die lokale Einrichtung auf diesem Mac.

Zum Testen: Iris-App neu bauen, Marker im Marktplatz installieren (es gibt zwei passende GPU-Rechner, also öffnet sich das Konfigurationsfenster), „Bitte wählen …“ ersetzen, speichern, und den Knopf in der Kachel prüfen. Eingereicht wird erst nach Alfs Test.

## Marker 1.19.0 veröffentlicht (Registry-Commit `ba99018`) — wartet auf Alfs Test Folgt aus der Grill-me-Runde in iris/Iris#85: Die Rechnerwahl passiert bei „Laden“ im Marktplatz, nicht mehr in einer Installationsfrage. **Geändert:** `install_config` (`MARKER_SERVER_URL`) entfällt; Manifest `host_capabilities: ["gpu","docker"]` und `local_mode: ["macos"]`; `post_install.sh` liest `IRIS_HOST_MODE` (`local`: lokale Umgebung einrichten, `pending`: nichts einrichten) und bricht auf Intel/Linux nicht mehr ab; `config-status` (Grün/Gelb, siehe PLAN.md), `local-install` und `local-install-status` (richten die lokale Umgebung über denselben Hook ein); das Panel zeigt „Bitte wählen …“, führt „Dieser Iris-Server (lokal)“ im Picker und hat „Lokale Umgebung einrichten“. Zu 1.18.0 (nur Picker, `host_id` statt SSH-Feldern) ist das die Fortsetzung. **Geprüft:** 13 neue Tests (`tests/test_config_status.py`), JavaScript des Panels per `node --check`, Paket gebaut und der Inhalt angesehen. Nicht geprüft: das Panel in der App, der Marktplatz-Ablauf „Laden“ (braucht die neu gebaute Iris-App aus iris/Iris#85) und die lokale Einrichtung auf diesem Mac. **Zum Testen:** Iris-App neu bauen, Marker im Marktplatz installieren (es gibt zwei passende GPU-Rechner, also öffnet sich das Konfigurationsfenster), „Bitte wählen …“ ersetzen, speichern, und den Knopf in der Kachel prüfen. Eingereicht wird erst nach Alfs Test.
Author
Owner

Marker 1.19.1: Panel vereinfacht (veröffentlicht)

Alfs Rückmeldung zum Panel aus 1.19.0 (öffnete sich bei „Laden“ von selbst): zu kompliziert, der Marker-Server-Abschnitt überflüssig, die „Erweitert“-Hülle soll „Installieren auf:“ heißen.

Geändert: Der Abschnitt „Marker-Server“ (URL-Feld, „Verbindung testen“) und die „Erweitert“-Hülle entfallen, ebenso der SSH-„Verbindung testen“-Knopf mit seinem falschen Hinweis („muss getestet sein, bevor gespeichert werden kann“). Es gibt einen Abschnitt „Installieren auf:“ mit dem Picker und darunter nur, was zur Wahl gehört: lokal „Lokale Umgebung einrichten“ samt lokaler Betriebsart; ein Rechner „Installieren/Aktualisieren“ mit Fortschritt, dazu unter „Optionen“ Installationspfad und GPU-Gerät. Die Adresse des Marker-Servers ergibt sich aus dem Rechner (http://<Rechner>:8001) und wird nie von Hand eingetragen: Sie wird nach der Installation automatisch gespeichert (oder beim Speichern, wenn der Server dort schon antwortet), lokal bleibt sie leer. LLM-Boost und Speichern unverändert.

Geprüft: 13 Tests grün, JavaScript per node --check, alle getElementById-Ziele existieren im HTML. Das Panel selbst habe ich nicht in der App gesehen.

Bewusst entfernt, bitte prüfen: der SSH-Test („Verbindung testen“); die Installation prüft die Verbindung selbst.

## Marker 1.19.1: Panel vereinfacht (veröffentlicht) Alfs Rückmeldung zum Panel aus 1.19.0 (öffnete sich bei „Laden“ von selbst): zu kompliziert, der Marker-Server-Abschnitt überflüssig, die „Erweitert“-Hülle soll „Installieren auf:“ heißen. **Geändert:** Der Abschnitt „Marker-Server“ (URL-Feld, „Verbindung testen“) und die „Erweitert“-Hülle entfallen, ebenso der SSH-„Verbindung testen“-Knopf mit seinem falschen Hinweis („muss getestet sein, bevor gespeichert werden kann“). Es gibt einen Abschnitt **„Installieren auf:“** mit dem Picker und darunter nur, was zur Wahl gehört: **lokal** „Lokale Umgebung einrichten“ samt lokaler Betriebsart; **ein Rechner** „Installieren/Aktualisieren“ mit Fortschritt, dazu unter „Optionen“ Installationspfad und GPU-Gerät. Die Adresse des Marker-Servers ergibt sich aus dem Rechner (`http://<Rechner>:8001`) und wird nie von Hand eingetragen: Sie wird nach der Installation automatisch gespeichert (oder beim Speichern, wenn der Server dort schon antwortet), lokal bleibt sie leer. LLM-Boost und Speichern unverändert. **Geprüft:** 13 Tests grün, JavaScript per `node --check`, alle `getElementById`-Ziele existieren im HTML. Das Panel selbst habe ich nicht in der App gesehen. **Bewusst entfernt, bitte prüfen:** der SSH-Test („Verbindung testen“); die Installation prüft die Verbindung selbst.
Author
Owner

Marker 1.19.2: schon installierter Marker-Server ist grün (veröffentlicht)

Befund: Die Installation auf iris-server schlug mit unauthorized beim Laden von forgejo.lewerken.duckdns.org/iris/marker:latest fehl. Die Docker-Anmeldung des Hosts an der Registry (~/.docker/config.json, Benutzer alf) wird abgelehnt (vermutlich ein Token von vor dem Wechsel am 2026-10-08, für beide Namen forgejo.lewerken.duckdns.org und docker:3000); mit dem aktuellen $FORGEJO_TOKEN ist das Image lesbar (200). Auf dem Host läuft schon ein Marker-Server (Image von vor zwei Wochen, healthy), das Panel hatte das sogar gemeldet.

Entscheidung Alf: Die Docker-Anmeldung auf iris-server wird nicht angefasst (Vorschläge: eigenes Token nur mit Leserecht auf Pakete oder das vorhandene Token); stattdessen soll ein schon laufender Marker-Server grün als „installiert“ erscheinen statt einer roten Fehlermeldung.

Geändert: Antwortet der Marker-Server auf dem gewählten Rechner, steht grün „Der Marker-Server ist auf diesem Rechner installiert und läuft.“ und der Knopf heißt „Aktualisieren“ (sonst „Installieren“ mit „Auf diesem Rechner ist noch kein Marker-Server installiert.“). Rot erscheint nur noch, wenn eine ausdrücklich gestartete Installation oder Aktualisierung wirklich scheitert; der Fehler wird dann wie bisher mit dem Protokoll gezeigt, nicht verschluckt.

Grenze / offen: Der laufende Server ist die alte Fassung des Images und lässt sich von hier aus erst aktualisieren, wenn die Docker-Anmeldung des Hosts erneuert ist (bewusst nicht gemacht). Aktualisieren scheitert bis dahin mit unauthorized. Das Panel habe ich nicht in der App gesehen (nur node --check).

## Marker 1.19.2: schon installierter Marker-Server ist grün (veröffentlicht) **Befund:** Die Installation auf `iris-server` schlug mit `unauthorized` beim Laden von `forgejo.lewerken.duckdns.org/iris/marker:latest` fehl. Die Docker-Anmeldung des Hosts an der Registry (`~/.docker/config.json`, Benutzer `alf`) wird abgelehnt (vermutlich ein Token von vor dem Wechsel am 2026-10-08, für beide Namen `forgejo.lewerken.duckdns.org` und `docker:3000`); mit dem aktuellen `$FORGEJO_TOKEN` ist das Image lesbar (200). Auf dem Host läuft schon ein Marker-Server (Image von vor zwei Wochen, healthy), das Panel hatte das sogar gemeldet. **Entscheidung Alf:** Die Docker-Anmeldung auf `iris-server` wird nicht angefasst (Vorschläge: eigenes Token nur mit Leserecht auf Pakete oder das vorhandene Token); stattdessen soll ein schon laufender Marker-Server grün als „installiert“ erscheinen statt einer roten Fehlermeldung. **Geändert:** Antwortet der Marker-Server auf dem gewählten Rechner, steht grün „Der Marker-Server ist auf diesem Rechner installiert und läuft.“ und der Knopf heißt „Aktualisieren“ (sonst „Installieren“ mit „Auf diesem Rechner ist noch kein Marker-Server installiert.“). Rot erscheint nur noch, wenn eine ausdrücklich gestartete Installation oder Aktualisierung wirklich scheitert; der Fehler wird dann wie bisher mit dem Protokoll gezeigt, nicht verschluckt. **Grenze / offen:** Der laufende Server ist die alte Fassung des Images und lässt sich von hier aus erst aktualisieren, wenn die Docker-Anmeldung des Hosts erneuert ist (bewusst nicht gemacht). Aktualisieren scheitert bis dahin mit `unauthorized`. Das Panel habe ich nicht in der App gesehen (nur `node --check`).
Author
Owner

PR #136 gemergt: feat(marker): Rechnerwahl bei „Laden“, config-status, lokale Einrichtung, vereinfachtes Panel; iris-server-hosts config-status; Prüfung beim Veröffentlichen (#135, iris/Iris#85)
#136

Commits:

  • feat(marker): Rechnerwahl bei „Laden“, config-status, lokale Einrichtung, vereinfachtes Panel; iris-server-hosts config-status; Prüfung beim Veröffentlichen (#135, iris/Iris#85)
PR #136 gemergt: feat(marker): Rechnerwahl bei „Laden“, config-status, lokale Einrichtung, vereinfachtes Panel; iris-server-hosts config-status; Prüfung beim Veröffentlichen (#135, iris/Iris#85) https://forgejo.lewerken.duckdns.org/iris/iris-plugins/pulls/136 Commits: - feat(marker): Rechnerwahl bei „Laden“, config-status, lokale Einrichtung, vereinfachtes Panel; iris-server-hosts config-status; Prüfung beim Veröffentlichen (#135, iris/Iris#85)
alf closed this issue 2026-10-21 23:37:40 +00:00
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
iris/iris-plugins#135
No description provided.