Zum Inhalt springen

Publishing-Kanäle

Publishing-Kanäle pushen oder stellen Dokumentinhalte an externe Systeme bereit, wenn sich Dokumente ändern — ergänzend zu Webhooks (die über Ereignisse benachrichtigen) und Export (manuelle einmalige Downloads).

  • Capability Publishing (oder Team-Admin)
  • Server-Env: PUBLISHING_ENCRYPTION_KEY (siehe Installation)
  • Für Git-Mirrors: optional GIT_MIRROR_ALLOWED_HOSTS für Nicht-Standard-Hosts

Einstellungen → Publishing — Liste der Kanäle, Zustellungsprotokoll, Assistent zum Anlegen/Bearbeiten.

TransportFunktionsweiseIdeal für
PullConsumer holt Inhalte selbst über die token-gesicherte Pull-API ab (Bearer-Token)Static Sites, SSR-Apps, einfache Integrationen
WebhookOrimora POSTet die Dokument-Payload bei Änderung an deine URLCMS-Updates, eigene Pipelines
Git-MirrorOrimora committet/pusht Markdown in ein Git-RepositoryDocs-Sites (GitHub Pages, GitLab CI)

Jeder Kanal adressiert Inhalte über:

  • Collection — ein Ordner und seine Dokumente
  • Tag — alle Dokumente mit einem bestimmten Tag

Du musst explizit eine Collection oder einen Tag wählen (kein „gesamter Workspace”-Wildcard).

FormatBeschreibung
markdownMarkdown-Dateien (Standard für Git-Mirror)
jsonTipTap-JSON
htmlGerendertes HTML (wo unterstützt)
  1. Kanal anlegen → Transport Pull, Format Markdown. Optional eine Deploy-Hook-URL eintragen (siehe unten).
  2. Dokumente an den Kanal publizieren per „An Kanal senden…” — die Pull-API liefert genau dieses kuratierte Set (nie ein unpubliziertes Dokument)
  3. Ein Token am Kanal erstellen — behandle es wie ein Passwort
  4. Dein Consumer ruft periodisch oder zur Build-Zeit ab. Die fertige Pull-API-URL steht auf der Kanal-Karte und lässt sich dort kopieren.

Deploy-Hook: statische Seiten automatisch neu bauen

Abschnitt betitelt „Deploy-Hook: statische Seiten automatisch neu bauen“

Statische Generatoren (Starlight, Hugo, Astro …) übernehmen neue Inhalte erst beim nächsten Build. Trage am Pull-Kanal die Build-Hook-URL deines Hosts ein, dann POSTet Orimora nach jedem Publizieren dorthin und der Rebuild startet automatisch:

  • Netlify: Site configuration → Build & deploy → Build hooks
  • Vercel: Project → Settings → Git → Deploy Hooks
  • Cloudflare Pages: Settings → Builds & deployments → Deploy hooks
  • Coolify: POST /api/v1/deploy?uuid=<app-uuid> — verlangt zusätzlich einen Authorization-Header (Bearer <api-token>); dafür gibt es am Kanal das optionale Header-Feld unter der Hook-URL

Server-gerenderte Consumer (SSR/ISR) brauchen keinen Hook — sie holen Inhalte zur Laufzeit ab. Der Hook ist Best-Effort: Schlägt er fehl, bleibt das Publizieren trotzdem erfolgreich; der Fehler erscheint am Kanal.

Ein Pull-Kanal erzeugt beim Publizieren bewusst keine Zustellung — der Inhalt wird erst sichtbar, wenn ein Consumer ihn abruft. Drei Signale zeigen den Erfolg:

  1. Direkt nach dem Publizieren: Der Dialog bestätigt „Inhalte stehen über die Pull-API bereit” (und ob der Deploy-Hook ausgelöst wurde).

  2. „Zuletzt abgerufen” auf der Kanal-Karte: stempelt jeden authentifizierten Pull-API-Abruf — die ehrliche End-to-End-Bestätigung.

  3. Manuell per curl (Werte von der Kanal-Karte):

    Terminal-Fenster
    curl -H "Authorization: Bearer <token>" \
    "https://deine-instanz.example/api/v1/published/<kanal-id>/documents"

    Du musst deine publizierten Dokumente als JSON sehen.

Ähnlich zu Webhooks, sendet aber Dokument-Payloads zum Publizieren statt generischer Event-Umschläge. Konfiguriere URL und optionales Signatur-Geheimnis. Fehlgeschlagene Zustellungen können den Kanal automatisch pausieren (PUBLISHING_CHANNEL_*-Env-Vars).

  1. Transport Git-Mirror
  2. Repository-URL (GitHub, GitLab, Bitbucket, Gitea, Codeberg standardmäßig unterstützt)
  3. Branch und optionales Pfad-Präfix
  4. Credentials angeben (PAT oder Deploy Key) — verschlüsselt gespeichert

Orimora pusht Markdown bei Dokumentänderungen. Stelle sicher, dass das Token Push-Zugriff auf den Ziel-Branch hat.

Webhook- und Git-Mirror-Kanäle zeigen aktuelle Zustellungen: Status, HTTP-Code, Dauer, Fehlermeldung. Damit debuggst du fehlgeschlagene Pushes oder Webhook-Antworten. Pull-Kanäle haben prinzipbedingt keine Zustellungen — dort gilt stattdessen „Zuletzt abgerufen” auf der Kanal-Karte (siehe oben).

FunktionEntwickler → WebhooksEinstellungen → Publishing
ZweckEvent-BenachrichtigungenInhalts-Sync
PayloadEvent-Umschlag + Model-SnapshotDokumentinhalt im gewählten Format
TransportsNur HTTP POSTPull, Webhook, Git-Mirror
ScopePro Event-AbonnementPro Collection oder Tag