Plugin „iris-forgejo“: eigenes Forgejo und eigenen Plugin-Marktplatz einrichten, verwalten und teilen #113

Closed
opened 2026-10-16 22:23:34 +00:00 by alf · 7 comments
Owner

Warum

Wer Plugins entwickelt oder teilen will, braucht ein Forgejo mit Plugin-Repo und Registry. Das ist heute reine Handarbeit (eigener Server, Repos, Token, Branch-Schutz, Verkabelung mit dem Marktplatz). Das Plugin iris-forgejo richtet das auf Zuruf ein: ein eigenes Forgejo und darauf ein eigener Plugin-Marktplatz, den der Nutzer verwaltet und später mit anderen teilt. Es baut auf iris-plugin-dev (Entwickeln und Veröffentlichen) und auf dem Registry-Katalog im Marktplatz (iris/Iris, mehrere Registries) auf.

Entscheidungen (grill-me, 2026-10-17)

  • Wo es läuft (präzisiert 2026-10-17): Das Plugin legt das Docker-Projekt direkt auf dem Host an, auf dem der Iris-Server läuft („Dieser Iris-Server“). Ist iris-server-hosts (bisher gpu-hosts) installiert, kann es stattdessen auf einem dort konfigurierten Host eingerichtet werden. Das Plugin hat keine eigene Hostliste und keine SSH-Felder: Hosts, Schlüssel und Zugang verwaltet iris-server-hosts (siehe iris-plugins#115). Ohne iris-server-hosts läuft es nur auf dem Iris-Server.
  • Umfang der Einrichtung („Forgejo plus fertiger Marktplatz“): Forgejo, Admin, Organisation, Plugin-Repo und öffentlich lesbares Registry-Repo, Branch-Schutz auf main, ein eng begrenztes Token (nur Repository und Issue schreiben, kein Admin), Verkabelung: Adresse, Repos und Token in iris-plugin-dev eintragen und die neue Registry im Katalog des Marktplatzes anlegen. Das Admin-Passwort wird einmal gezeigt.
  • Zugang (präzisiert 2026-10-17): Das Plugin installiert nur auf einer lokalen LAN-Adresse des gewählten Hosts. Wer das Forgejo für andere erreichbar machen will, sorgt selbst für die Außenanbindung (nginx-Reverse-Proxy mit Port-Weiterleitung am Router oder ein Tailscale-Netz). Das Plugin installiert keinen Proxy, öffnet keine Ports und prüft nur, dass die Adresse antwortet. Ob http mit einer LAN-IP als Registry funktioniert (App Transport Security nimmt IP-Adressen nach Apples Dokumentation aus), wird beim Bauen mit einem echten Test belegt; bis dahin gilt https als sicherer Weg.
  • Zwei Instanzen: Das eigene Forgejo ist offen (anonym lesbar). Für private Plugins richtet man ein zweites, internes Forgejo ein; Berechtigungen auf Registry-Ebene gibt es nicht. Das Plugin verwaltet mehrere Instanzen nebeneinander (öffentlich/intern); die interne Registry ist im Katalog (iris/Iris#69) eine weitere Quelle; iris-plugin-dev wählt je Vorhaben die Instanz.
  • Freigabe an andere: Lesen (Registry-Adresse weitergeben, anonym lesbar) und Mitwirken: Eingeladene bekommen ein Konto mit Schreibrecht im Plugin-Repo; main bleibt geschützt, Plugins kommen per PR, der Besitzer merged. Das Registry-Repo ist nur für den Besitzer beschreibbar. (Hinweis zur Umsetzung: Forgejo hat keine Einladungslinks für Konten; der Besitzer legt das Konto an, mit einmaligem Passwort und Zwang zur Änderung.)
  • Fremde Plugins übernehmen: einzelne Plugins samt Store-Material aus einer fremden Registry in die eigene kopieren, mit Herkunft; die Lizenz prüft das Plugin nicht, sondern zeigt die Herkunft und fragt nach.
  • Reihenfolge: zuerst der Registry-Katalog im Marktplatz (iris/Iris), dann dieses Plugin. Ohne den Katalog ist es nutzbar, wenn der Nutzer die Registry-Adresse von Hand einträgt.
  • Nicht Teil: Reverse Proxy, Zertifikate, Portfreigaben, Backup (das Plugin nennt nur den Datenordner), Signaturen, automatische Lizenzprüfung, geschlossene Registries.

Wie

Plan, Befehle, Compose-Vorlage, Bauabschnitte und offene Fragen: plugins/iris-forgejo/PLAN.md. Die Beschreibung bleibt die Spezifikation; der Verlauf steht in den Kommentaren.

## Warum Wer Plugins entwickelt oder teilen will, braucht ein Forgejo mit Plugin-Repo und Registry. Das ist heute reine Handarbeit (eigener Server, Repos, Token, Branch-Schutz, Verkabelung mit dem Marktplatz). Das Plugin `iris-forgejo` richtet das auf Zuruf ein: ein eigenes Forgejo und darauf ein **eigener Plugin-Marktplatz**, den der Nutzer verwaltet und später mit anderen teilt. Es baut auf `iris-plugin-dev` (Entwickeln und Veröffentlichen) und auf dem Registry-Katalog im Marktplatz (iris/Iris, mehrere Registries) auf. ## Entscheidungen (grill-me, 2026-10-17) - **Wo es läuft (präzisiert 2026-10-17):** Das Plugin legt das Docker-Projekt **direkt auf dem Host an, auf dem der Iris-Server läuft** („Dieser Iris-Server“). Ist `iris-server-hosts` (bisher `gpu-hosts`) installiert, kann es stattdessen auf einem dort **konfigurierten Host** eingerichtet werden. Das Plugin hat **keine eigene Hostliste und keine SSH-Felder**: Hosts, Schlüssel und Zugang verwaltet `iris-server-hosts` (siehe iris-plugins#115). Ohne `iris-server-hosts` läuft es nur auf dem Iris-Server. - **Umfang der Einrichtung („Forgejo plus fertiger Marktplatz“):** Forgejo, Admin, Organisation, **Plugin-Repo** und öffentlich lesbares **Registry-Repo**, Branch-Schutz auf `main`, ein **eng begrenztes Token** (nur Repository und Issue schreiben, kein Admin), Verkabelung: Adresse, Repos und Token in `iris-plugin-dev` eintragen und die neue Registry im Katalog des Marktplatzes anlegen. Das Admin-Passwort wird einmal gezeigt. - **Zugang (präzisiert 2026-10-17):** Das Plugin installiert nur auf einer **lokalen LAN-Adresse** des gewählten Hosts. Wer das Forgejo für andere erreichbar machen will, sorgt selbst für die Außenanbindung (nginx-Reverse-Proxy mit Port-Weiterleitung am Router oder ein Tailscale-Netz). Das Plugin installiert keinen Proxy, öffnet keine Ports und prüft nur, dass die Adresse antwortet. Ob `http` mit einer LAN-IP als Registry funktioniert (App Transport Security nimmt IP-Adressen nach Apples Dokumentation aus), wird beim Bauen mit einem echten Test belegt; bis dahin gilt `https` als sicherer Weg. - **Zwei Instanzen:** Das eigene Forgejo ist offen (anonym lesbar). Für **private Plugins** richtet man ein **zweites, internes Forgejo** ein; Berechtigungen auf Registry-Ebene gibt es nicht. Das Plugin verwaltet mehrere Instanzen nebeneinander (öffentlich/intern); die interne Registry ist im Katalog (iris/Iris#69) eine weitere Quelle; `iris-plugin-dev` wählt je Vorhaben die Instanz. - **Freigabe an andere:** Lesen (Registry-Adresse weitergeben, anonym lesbar) **und Mitwirken**: Eingeladene bekommen ein Konto mit Schreibrecht im Plugin-Repo; `main` bleibt geschützt, Plugins kommen per PR, der Besitzer merged. Das Registry-Repo ist nur für den Besitzer beschreibbar. (Hinweis zur Umsetzung: Forgejo hat keine Einladungslinks für Konten; der Besitzer legt das Konto an, mit einmaligem Passwort und Zwang zur Änderung.) - **Fremde Plugins übernehmen:** einzelne Plugins samt Store-Material aus einer fremden Registry in die eigene kopieren, mit Herkunft; die Lizenz prüft das Plugin nicht, sondern zeigt die Herkunft und fragt nach. - **Reihenfolge:** zuerst der Registry-Katalog im Marktplatz (iris/Iris), dann dieses Plugin. Ohne den Katalog ist es nutzbar, wenn der Nutzer die Registry-Adresse von Hand einträgt. - **Nicht Teil:** Reverse Proxy, Zertifikate, Portfreigaben, Backup (das Plugin nennt nur den Datenordner), Signaturen, automatische Lizenzprüfung, geschlossene Registries. ## Wie Plan, Befehle, Compose-Vorlage, Bauabschnitte und offene Fragen: `plugins/iris-forgejo/PLAN.md`. Die Beschreibung bleibt die Spezifikation; der Verlauf steht in den Kommentaren.
Author
Owner

PR #114 gemergt: docs(plugins): Pläne für den Registry-Katalog im Marktplatz (iris/Iris#69) und das Forgejo-Plugin (#113)
#114

Commits:

  • docs(plugins): Pläne für den Registry-Katalog im Marktplatz (iris/Iris#69) und das Forgejo-Plugin (#113)
PR #114 gemergt: docs(plugins): Pläne für den Registry-Katalog im Marktplatz (iris/Iris#69) und das Forgejo-Plugin (#113) https://forgejo.lewerken.duckdns.org/iris/iris-plugins/pulls/114 Commits: - docs(plugins): Pläne für den Registry-Katalog im Marktplatz (iris/Iris#69) und das Forgejo-Plugin (#113)
Author
Owner

Präzisierung: Hostwahl

Auf Alfs Wunsch: Das Forgejo-Plugin legt den Docker-Container direkt auf dem Host des Iris-Servers an oder, wenn gpu-hosts installiert ist, auf einem dort konfigurierten Host. Keine eigene Hostliste, keine SSH-Felder im Plugin. Die Vereinheitlichung für alle Plugins ist als eigenes Issue erfasst (#115); iris-forgejo übernimmt sie von Anfang an.

## Präzisierung: Hostwahl Auf Alfs Wunsch: Das Forgejo-Plugin legt den Docker-Container direkt auf dem Host des Iris-Servers an oder, wenn `gpu-hosts` installiert ist, auf einem dort konfigurierten Host. Keine eigene Hostliste, keine SSH-Felder im Plugin. Die Vereinheitlichung für alle Plugins ist als eigenes Issue erfasst (#115); `iris-forgejo` übernimmt sie von Anfang an.
Author
Owner

PR #116 gemergt: docs(iris-forgejo): Hostwahl über Iris-Server und gpu-hosts, keine eigenen SSH-Felder (#113)
#116

Commits:

  • docs(iris-forgejo): Hostwahl über Iris-Server und gpu-hosts, keine eigenen SSH-Felder (#113)
PR #116 gemergt: docs(iris-forgejo): Hostwahl über Iris-Server und gpu-hosts, keine eigenen SSH-Felder (#113) https://forgejo.lewerken.duckdns.org/iris/iris-plugins/pulls/116 Commits: - docs(iris-forgejo): Hostwahl über Iris-Server und gpu-hosts, keine eigenen SSH-Felder (#113)
Author
Owner

Präzisierung: Hosts statt GPU-Hosts

gpu-hosts wird zu iris-server-hosts weiterentwickelt (iris-plugins#115): allgemeine Hosts, ob GPU vorhanden ist, ergibt sich aus der Hardware. iris-forgejo braucht dort einen Host mit Docker, keine GPU. Weitere Plugins (zum Beispiel ein Nextcloud-Einrichtungs-Plugin) bauen auf denselben Hosts auf.

## Präzisierung: Hosts statt GPU-Hosts `gpu-hosts` wird zu `iris-server-hosts` weiterentwickelt (iris-plugins#115): allgemeine Hosts, ob GPU vorhanden ist, ergibt sich aus der Hardware. `iris-forgejo` braucht dort einen Host mit Docker, keine GPU. Weitere Plugins (zum Beispiel ein Nextcloud-Einrichtungs-Plugin) bauen auf denselben Hosts auf.
Author
Owner

PR #117 gemergt: docs(iris-forgejo): Hosts über iris-server-hosts (bisher gpu-hosts) (#113, #115)
#117

Commits:

  • docs(iris-forgejo): Hosts über iris-server-hosts (bisher gpu-hosts) (#113, #115)
PR #117 gemergt: docs(iris-forgejo): Hosts über iris-server-hosts (bisher gpu-hosts) (#113, #115) https://forgejo.lewerken.duckdns.org/iris/iris-plugins/pulls/117 Commits: - docs(iris-forgejo): Hosts über iris-server-hosts (bisher gpu-hosts) (#113, #115)
Author
Owner

Präzisierung: Zugang und mehrere Instanzen

Auf Alfs Wunsch: Installation nur auf einer LAN-Adresse; Außenanbindung (nginx mit Port-Weiterleitung oder Tailscale) macht der Nutzer selbst. Das eigene Forgejo bleibt offen; für private Plugins gibt es ein zweites, internes Forgejo, daher mehrere Instanzen im Plugin und eine Instanzwahl in iris-plugin-dev. Die frühere Aussage „die Mac-App erlaubt kein unverschlüsseltes http“ war zu pauschal: Für IP-Adressen im LAN ist ein Test nötig (steht im Plan), für Domainnamen bleibt https nötig.

## Präzisierung: Zugang und mehrere Instanzen Auf Alfs Wunsch: Installation nur auf einer LAN-Adresse; Außenanbindung (nginx mit Port-Weiterleitung oder Tailscale) macht der Nutzer selbst. Das eigene Forgejo bleibt offen; für private Plugins gibt es ein zweites, internes Forgejo, daher mehrere Instanzen im Plugin und eine Instanzwahl in `iris-plugin-dev`. Die frühere Aussage „die Mac-App erlaubt kein unverschlüsseltes http“ war zu pauschal: Für IP-Adressen im LAN ist ein Test nötig (steht im Plan), für Domainnamen bleibt `https` nötig.
Author
Owner

PR #118 gemergt: docs(iris-forgejo): LAN-Installation, zwei Instanzen, http im LAN prüfen (#113)
#118

Commits:

  • docs(iris-forgejo): LAN-Installation, zwei Instanzen, http im LAN prüfen (#113)
PR #118 gemergt: docs(iris-forgejo): LAN-Installation, zwei Instanzen, http im LAN prüfen (#113) https://forgejo.lewerken.duckdns.org/iris/iris-plugins/pulls/118 Commits: - docs(iris-forgejo): LAN-Installation, zwei Instanzen, http im LAN prüfen (#113)
alf closed this issue 2026-10-27 10:38:53 +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#113
No description provided.