· 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).

Das Video zu dieser Folge

Dieses Video ist mit Zugangscode geschützt. Nach der Freischaltung bleibst du in diesem Browser angemeldet (localStorage), bis der Zugang abläuft oder du ihn zurücksetzt.

Du hast noch keinen ZugangsCode? Dann melde dich bei mir!

E-Mail-Adresse folgt (CMS Contact email oder Build-Variable CONTACT_EMAIL).

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.

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.