Plugins installieren

Auf dieser Seite

EmDash-Plugins können auf zwei Arten installiert werden: vom Marktplatz über das Admin-Dashboard oder direkt in Ihrer Astro-Konfiguration hinzugefügt. Marktplatz-Plugins laufen immer in einer Sandbox; konfigurationsbasierte Plugins laufen je nachdem, in welchem Array sie deklariert sind (sandboxed: [] vs. plugins: []), sandboxed oder im Prozess.

Vom Marktplatz

Das Admin-Dashboard enthält einen Marktplatz-Browser, in dem Sie Plugins suchen, installieren und verwalten können.

Voraussetzungen

Um Marktplatz-Plugins zu installieren, benötigt Ihre Seite:

  1. Sandbox-Runner konfiguriert — Marktplatz-Plugins laufen in einer isolierten Laufzeitumgebung, die den Sandbox-Runner erfordert. Die folgende Konfiguration aktiviert ihn:

    import { defineConfig } from "astro/config";
    import emdash from "emdash/astro";
    
    export default defineConfig({
      integrations: [
        emdash({
          marketplace: "https://marketplace.emdashcms.com",
          sandboxRunner: "@emdash-cms/sandbox-cloudflare",
        }),
      ],
    });

    Auf Cloudflare Workers verwendet das Sandboxing die Dynamic Worker Loader API (kein zusätzliches Setup erforderlich). Auf Node.js installieren Sie den workerd-Sandbox-Runner:

    npm install @emdash-cms/sandbox-workerd

    Übergeben Sie dann den Runner explizit:

    emdash({
      marketplace: "https://marketplace.emdashcms.com",
      sandboxRunner: "@emdash-cms/sandbox-workerd/sandbox",
    })

    In der Entwicklung installieren Sie miniflare als Dev-Abhängigkeit für schnelleren Sandbox-Start:

    npm install -D miniflare
  2. Admin-Zugriff — Nur Administratoren können Plugins installieren oder entfernen.

Durchsuchen und Installieren

  1. Öffnen Sie das Admin-Panel und navigieren Sie zu Plugins > Marktplatz
  2. Durchsuchen oder suchen Sie ein Plugin
  3. Klicken Sie auf die Plugin-Karte, um die Detailseite zu sehen — README, Screenshots, Fähigkeiten und Ergebnisse des Sicherheitsaudits
  4. Klicken Sie auf Installieren
  5. Überprüfen Sie den Fähigkeits-Zustimmungsdialog — dieser zeigt an, worauf das Plugin zugreifen kann
  6. Bestätigen Sie die Installation

Das Plugin wird heruntergeladen, in Ihrem R2-Bucket der Seite gespeichert und im Sandbox-Runner geladen. Es ist sofort aktiv.

Fähigkeits-Zustimmung

Vor der Installation sehen Sie einen Dialog, der auflistet, worauf das Plugin Zugriff benötigt:

FähigkeitBedeutung
content:readIhre Inhalte lesen
content:writeInhalte erstellen, aktualisieren und löschen
media:readAuf Ihre Medienbibliothek zugreifen
media:writeMedien hochladen und verwalten
network:requestNetzwerkanfragen an bestimmte Hosts stellen

Sicherheitsaudit

Jede Plugin-Version im Marktplatz wurde einem automatisierten Sicherheitsaudit unterzogen. Das Audit-Ergebnis erscheint auf der Plugin-Karte:

  • Bestanden — Keine Probleme gefunden
  • Warnung — Geringfügige Bedenken markiert (überprüfen Sie die Ergebnisse)
  • Nicht bestanden — Erhebliche Sicherheitsprobleme erkannt

Sie können den vollständigen Audit-Bericht auf der Detailseite des Plugins einsehen, einschließlich einzelner Befunde und deren Schweregrad.

Updates

Wenn eine neuere Version eines installierten Plugins verfügbar ist:

  1. Gehen Sie zu Plugins im Admin-Panel
  2. Marktplatz-Plugins zeigen ein Update verfügbar-Badge
  3. Klicken Sie auf Update, um das Changelog und eventuelle Fähigkeitsänderungen zu sehen
  4. Wenn die neue Version zusätzliche Fähigkeiten erfordert, sehen Sie einen Diff und müssen genehmigen
  5. Bestätigen Sie das Update

Deinstallation

  1. Gehen Sie zu Plugins im Admin-Panel
  2. Klicken Sie auf das Marktplatz-Plugin, das Sie entfernen möchten
  3. Klicken Sie auf Deinstallieren
  4. Wählen Sie, ob die gespeicherten Daten des Plugins behalten oder gelöscht werden sollen
  5. Bestätigen

Der Sandbox-Code des Plugins wird aus Ihrem R2-Bucket entfernt und die Ausführung wird sofort gestoppt.

Aus der Konfiguration

Native Plugins — Ihr eigener Code oder über npm installierte Pakete — werden direkt zur Astro-Konfiguration hinzugefügt. Das folgende Beispiel registriert das SEO-Plugin:

import { defineConfig } from "astro/config";
import emdash from "emdash/astro";
import seoPlugin from "@emdash-cms/plugin-seo";

export default defineConfig({
  integrations: [
    emdash({
      plugins: [
        seoPlugin({ generateSitemap: true }),
      ],
    }),
  ],
});

Native Plugins:

  • Laufen im Prozess (nicht sandboxed)
  • Haben vollen Zugriff auf Node.js-APIs
  • Werden zur Build-Zeit und bei jedem Serverstart geladen
  • Können nicht über die Admin-UI installiert oder entfernt werden

Marktplatz vs. Konfiguration — wann welches verwenden

Marktplatz (sandboxed)Konfiguration (nativ oder In-Process sandboxed)
InstallationsmethodeEin-Klick in der Admin-UICode-Änderung + npm install + Deploy
AusführungSandbox-Laufzeit über den konfigurierten RunnerIm Prozess (oder sandboxed, wenn unter sandboxed: [] aufgelistet und ein Runner verfügbar ist)
FähigkeitenDurch die Sandbox-Bridge erzwungen — ctx.*-Gating plus Laufzeit-IsolationNur ctx.*-Gating (In-Process-Plugins können über direkten fetch(), env, imports umgehen)
Node.js-APIsNicht verfügbarVoller Zugriff (nur im Prozess)
React-Admin-SeitenNein (Block Kit stattdessen)Ja (native Plugins)
PT-Rendering-KomponentenNeinJa (native Plugins)
UpdatesEin-Klick im AdminVersions-Bump + Deploy
Am besten fürDie meisten PluginsPlugins, die Build-Zeit-Integration benötigen