Artikel · · 2 Min. Lesezeit

Folge 014: Lieber mit GitHub einloggen: Der Worker als Türsteher fürs CMS

Schluss mit Token-Zettel am Monitor: OAuth, Secrets in Cloudflare und Menüs, die du selbst zusammenklickst.

PAT funktioniert, aber kopieren, ablaufen, verlegen nervt (Einrichtung: Folge 013). Variante B: normal bei GitHub anmelden. Dazwischen sitzt ein Cloudflare Worker (kleines Programm auf Cloudflares Servern).

Wer macht was?

Du → /admin → Sveltia → Worker (Auth) → GitHub API
                ↓
         Commits → GitHub → Cloudflare Pages Build

Der Worker ist nicht deine Website, nur die Tür fürs CMS.

Umsetzung (grober Ablauf)

Per Issue (z. B. Menüs + GitHub-Login) lässt du den Agenten den Worker vorbereiten, oft mit „Deploy to Cloudflare“ (Zu Cloudflare bereitstellen). Worker-URL notieren.

Parallel GitHub OAuth App:

  • GitHub „Settings“ (Einstellungen) → „Developer settings“ (Entwicklereinstellungen) → „OAuth Apps“ (OAuth-Apps) → „New OAuth App“ (Neue OAuth-App).
  • „Homepage URL:“ (Startseiten-URL) deine Site (z. B. https://hautoo.storyofai.net).
  • „Callback URL:“ (Callback-URL) https://<worker-url>/callback (z. B. https://hautoo-sveltia-cms-auth.platomat.workers.dev/callback), exakt wie in der Doku.

„Client ID“ (Client-ID) und „Client Secret“ (Client-Geheimnis) im Worker unter „Settings“ (Einstellungen) → „Variables“ (Variablen) (Runtime Variables, siehe docs/sveltia/zugang-worker.md) — „Client Secret“ nur als Secret, nicht als Klartext.

„Allowed domains:“ (Zugelassene Domains) deine CMS-Domain.

In public/admin/config.yml: GitHub-backend mit Worker-URL, Branch main, committen, pushen.

PAT wegwerfen

OAuth läuft? Alten Token bei GitHub revoken, weniger Schlüssel im Umlauf.

Menüs selbst bauen

Collection menus: z. B. main, Footer legal. Einträge mit Label, Link zur Seite oder freie URL, optional Untermenü (eine Ebene).

Speichern im CMS → Commit „Update menu …“ → Cloudflare baut. Manchmal dauert der Hook einen Moment, unter Pages nach dem Deployment schauen („Retry“ (Erneut versuchen) baut denselben Commit nochmal, ersetzt keinen fehlenden Build).

Wenn’s knallt: Rebase-Konflikt

Lokal und im Live-CMS dieselbe Datei? Pull/Rebase kann stolpern. Dann Konflikt lösen. Remote-Stand behalten oder manuell mergen. Dem Agenten die Situation beschreiben hilft.

CI/CD in einem Satz

Code in Cursor → Push → Build. Text im CMS → Commit → Build. Kein FTP. Preview-Branches und Rollback von Cloudflare gelten weiter (Folge 012).

Untermenü-Aussehen (Aufklappen vs. Klick) ist Feintuning. Pipeline und Zugang stehen.

← Alle Artikel · Permalink