Plugins¶
Diese Seite richtet sich an Administratoren: wie Sie ein Plugin oder ein Theme installieren, was Sie dabei akzeptieren und was der Server ihm auf Ihrem Host erlaubt. Alles geschieht unter Verwaltung → Plugins. Die Seiten für Plugin-Autoren sind am Ende aufgeführt.
Ein Plugin ergänzt Evey um etwas, das es selbst nicht kann: einen Abschnitt auf der Startseite, eine Einblendung im Player, eine Metadatenquelle, ein Theme. Jedes Plugin ist ein eigener Prozess, der über einen lokalen Socket mit dem Server kommuniziert, durch eine Sandbox isoliert und auf die Berechtigungen beschränkt, die sein Manifest angibt. Seine Oberfläche, falls es eine hat, läuft in einem isolierten Rahmen der Seite.
Ein Plugin installieren¶
- Öffnen Sie unter Verwaltung → Plugins den Punkt Plugin
installieren und wählen Sie die Plugin-Datei (.zip). Liefert der
Autor eine Signatur mit, fügen Sie sie unter Signaturdatei (.zip.sig,
optional) hinzu. Der Reiter Von URL installiert stattdessen über
einen Link. Hängen Sie
#sha256:<hash>an die URL an, damit der Download geprüft wird. - Vorschau & Installieren analysiert das Paket, ohne es zu installieren. Die Vorschau zeigt die Berechtigungen und Fähigkeiten, die das Plugin anfordert, das Ergebnis der Statischen Analyse und, wenn eine Signatur mitgegeben wurde, das Signatur-Urteil mit dem Herausgeber. Die Slots und die Hosts werden beim Update und im Sicherheits-Dashboard angezeigt.
- Diese Liste ist verbindlich: Das ist alles, was das Plugin tun können wird. Bestätigen Sie, und das Plugin startet.
Ein Paket, in dem die Analyse ein kritisches Muster findet, wird abgelehnt,
egal was Sie antworten. Warnungen werden angezeigt, die Entscheidung liegt bei
Ihnen. Die Sprache des Plugins muss zu den Verfügbaren Laufzeiten des
Servers gehören: Das Standard-Image bringt Python, Node.js, PHP, Ruby und Lua mit, das Image
-nodejs behält Python und Node.js und das Image -lean nur Python.
Signierte Plugins
Ein Plugin-Autor kann das ZIP mit cosign
signieren; sein öffentlicher Schlüssel reist im Paket. Evey prüft die
Signatur selbst (kein cosign-Programm) und zeigt Signiert von
Mit warn wird das Urteil angezeigt und nichts blockiert; mit enforce
werden nur vertrauenswürdige Herausgeber installiert. Für Autoren: siehe
Ihr Plugin signieren.
Ein Plugin aktualisieren¶
Auf der Karte des Plugins nimmt Aus Quelle aktualisieren … das neue ZIP entgegen (einen Pfad oder eine URL) und zeigt dieselbe Vorschau. Ein Update muss eine höhere Version haben als die installierte. Verlangt es neue Berechtigungen, Fähigkeiten, Slots oder Hosts, zeigt die Vorschau Diese Aktualisierung beantragt neue Berechtigungen und listet den Unterschied auf: Nichts wird übernommen, bevor Sie Genehmigen und installieren wählen. Das analysierte Paket ist das installierte Paket: Sein Hashwert wird beim Übernehmen des Updates noch einmal geprüft.
Die installierten Plugins verwalten¶
Jede Karte zeigt den Zustand des Plugins (Aktiviert oder Deaktiviert) und bietet:
| Aktion | Was sie tut |
|---|---|
| Aktiviert / Deaktiviert | Startet oder stoppt den Prozess des Plugins. Ein deaktiviertes Plugin behält seine Dateien und seine Konfiguration. |
| Konfiguration | Die Einstellungen, die das Plugin angibt (ein API-Schlüssel, eine Stadt, eine Einheit...). Geheime Felder werden maskiert angezeigt und nie an den Browser zurückgeschickt. |
| Protokolle | Die letzten Zeilen, die das Plugin über den Host geschrieben hat. |
| Deinstallieren | Entfernt den Prozess, die Dateien und die gespeicherten Daten des Plugins. |
Ressourcenlimits oben auf der Seite begrenzt jeden Plugin-Prozess. Die Werte im Verwaltungsbereich sind die Standardwerte. Die Umgebungsvariable legt sie fest, solange im Verwaltungsbereich noch nie gespeichert wurde.
| Feld | Standard | Umgebungsvariable |
|---|---|---|
| Max. Arbeitsspeicher (MiB) | 256 | EVEY_PLUGINS_MEMORY_MB |
| Max. Prozesse | 64 | EVEY_PLUGINS_PIDS_MAX |
| Max. Festplatte (MiB) | 100 | EVEY_PLUGINS_DISK_MAX_MB |
| CPU-Nice (0-19) | 10 | EVEY_PLUGINS_CPU_NICE |
| Sandbox-Modus | auto |
EVEY_PLUGINS_SANDBOX_MODE |
Arbeitsspeicher, Prozesse und Festplatte gelten beim nächsten Durchlauf der
Überwachung, die ein Plugin stoppt, das sie überschreitet. CPU-Priorität und
Sandbox-Modus gelten für danach gestartete Plugins. 0 stellt für
Arbeitsspeicher und Prozesse den Standardwert wieder her; nur die Festplattengrenze behandelt 0 als „aus“.
Das Sicherheits-Dashboard hält pro Plugin die Befunde der Analyse, das
Ergebnis der Signaturprüfung und den letzten Fehler fest. Seine Zeile
Host-Sandbox zeigt den Sandbox-Modus, der auf dieser Maschine wirklich
gilt: Steht dort basic, bietet der Host keine Beschränkung des Dateisystems
pro Pfad, und Plugin-Sandbox einrichten
erklärt, was zu ändern ist.
Plugins sind standardmäßig eingeschaltet. EVEY_PLUGINS_ENABLED=false
schaltet das gesamte Plugin-System ab.
Was ein Plugin auf Ihrem Host tun kann¶
Egal, was sein Manifest angibt, ein Plugin:
- sieht sein eigenes Verzeichnis, weder die Daten des Servers noch die Mediendateien;
- hat keinen direkten Netzwerkzugang: Ein Plugin mit der Berechtigung
networkerreicht nur die Hosts, die es angegeben hat, über den Server, mitGETundHEAD; - kann keine Kindprozesse starten, es sei denn, es gibt
subprocessan; - läuft unter den Ressourcenlimits oben und, wenn der Host es erlaubt, unter einem eigenen Benutzer.
Seine Oberfläche ist auf die Slots beschränkt, die das Manifest angibt: einen
Abschnitt oder den großen Bereich oben auf der Startseite, eine Seitenleiste
in einer Bibliothek oder auf einer Detailseite, eine Einblendung im Player,
die Darstellungseinstellungen, den unteren Teil der Navigationsleiste oder
einen Eintrag im Verwaltungsmenü, der die eigene Seite des Plugins öffnet.
Ein Plugin kann nie etwas in den Bildschirmen für Anmeldung, Einrichtung und
Sicherheit oder in den vorhandenen Verwaltungsbildschirmen anzeigen. In seinem
Rahmen hat es keinen Zugriff auf die Seite, Ihre Cookies oder Ihre Sitzung:
Was es vom Server liest, läuft über ein kurzlebiges Token, das auf die zwei
Berechtigungen beschränkt ist, die es verlangen darf (public für eine
sichere Auswahl aus Medientiteln und Postern, prefs für die Einstellungen
des aktuellen Benutzers in seinem eigenen Namensraum).
Die Berechtigungen, die ein Plugin verlangen kann, stehen unter Berechtigungen und Slots. Wie die Sandbox funktioniert und was sie trotzdem nicht verhindern kann, steht unter Plugin-Sandbox und Bedrohungsmodell.
Der Server prüft, welche Hosts ein Plugin kontaktiert, nicht welche Daten es sendet
Steht ein Host einmal auf der Liste eines Plugins, kann der Server nicht prüfen, was das Plugin an ihn schickt. Prüfen Sie ein Plugin eines Drittanbieters vor der Installation, wie jede andere Software, und betrachten Sie seine Host-Liste als Liste derer, die die Titel Ihrer Bibliothek erhalten können.
Themes¶
Ein Theme ist ein Paket mit kind: theme ohne Prozess: ein Stylesheet und
optional ein Skript, das isoliert in einem versteckten Rahmen läuft. Es wird
über denselben Dialog Plugin installieren installiert; das Stylesheet wird
bei der Installation bereinigt. Jeder Benutzer wählt es dann unter
Einstellungen → Darstellung → Design. Was ein Theme enthalten darf, steht
unter Themes.
Ein Plugin schreiben¶
| Seite | Inhalt |
|---|---|
| Ein Plugin schreiben | Ein erstes Plugin Schritt für Schritt, der Installationsablauf, Signieren, Verteilung. Fangen Sie hier an. |
| Plugin-API-Referenz | Das Manifest, die Backend-Aufrufe und der Datenspeicher, die evey.*-Brücke der Oberfläche. |
| Berechtigungen und Slots | Was ein Manifest angeben darf, was bei der Installation geprüft wird, die Regeln für externe Abrufe, die Slots. |
| Themes | Die Oberfläche mit CSS und einem Skript in einer Sandbox umgestalten. |
| Webhooks und API-Schlüssel | Evey mit anderen Werkzeugen verbinden, ohne ein Plugin zu schreiben. |