Frontend bei Cloudflare betreiben
Esta página aún no está disponible en tu idioma.
PLUS Ein Frontend, das die Headless-Schnittstelle liest, kann als Cloudflare Worker laufen: Cloudflare baut die Website bei jeder Änderung im Git-Repository und liefert sie weltweit aus. WP-ImmoMakler bleibt die Datenquelle und meldet nach jedem Import, dass die Website neu gebaut werden soll. Diese Seite beschreibt, was Sie dafür in WordPress und bei Cloudflare einstellen. Die Beispiele beziehen sich auf ein Astro-Frontend mit vorab erzeugten Seiten und serverseitigen Routen für Suche und Formulare, wie es der Astro-Starter von 49heroes umsetzt.
Was Cloudflare kostet
Abschnitt betitelt „Was Cloudflare kostet“Im kostenlosen Workers-Tarif gelten diese Grenzen:
| Kostenloser Tarif | Grenze |
|---|---|
| Serverseitig erzeugte Anfragen (Suche, Formulare, Merkliste, Suchauftrag-Seite, Webhook) | 100.000 pro Tag |
| Rechenzeit pro Anfrage | 10 ms |
| Vorab erzeugte Seiten, Bilder, Skripte | kostenlos und unbegrenzt |
| Builds aus Git | 3.000 Minuten pro Monat, einer gleichzeitig |
Detailseiten, Kategorieseiten und Inhaltsseiten werden beim Build erzeugt und zählen nicht als Anfragen. Die Wartezeit auf WordPress zählt nicht zur Rechenzeit, nur das Erzeugen der Seite. Die Rechenzeiten sehen Sie bei Cloudflare unter Observability des Workers. Der kostenpflichtige Tarif beginnt bei 5 US-Dollar im Monat; die aktuellen Bedingungen stehen in der Preisübersicht von Cloudflare.
Voraussetzungen
Abschnitt betitelt „Voraussetzungen“- WP-ImmoMakler ab Version 5.71.0 in einer PLUS-Edition
- Ihre WordPress-Website ist aus dem Internet erreichbar und hat ein gültiges Zertifikat. Ein Worker ruft keine privaten Adressen und keine Seiten mit selbst signiertem Zertifikat ab.
- Ein Cloudflare-Konto und das Git-Repository Ihres Frontends bei GitHub oder GitLab
In WordPress einrichten
Abschnitt betitelt „In WordPress einrichten“Im Backend Ihrer Website (wp-admin) unter WP-ImmoMakler → Integrationen → Headless:
-
Schnittstelle einschalten
Aktivieren Sie Headless-Schnittstelle aktivieren und speichern Sie. Prüfen Sie, ob die Schnittstelle antwortet:
Terminal-Fenster curl -s https://www.ihre-domain.de/wp-json/immomakler-headless/v1/siteDie Antwort beginnt mit
{"api_version":. Antwortet WordPress mitrest_no_route, ist die Schnittstelle noch ausgeschaltet oder ein Objekt-Cache hält die alten Einstellungen; leeren Sie dann den Cache. -
Zugangsdaten notieren
Notieren Sie unter Zugangsdaten den API-Key und unter Webhook-Secret und Status das Webhook-Secret. Beide hinterlegen Sie später bei Cloudflare.
-
Adresse Ihres Frontends eintragen
Tragen Sie unter Adresse Ihres Frontends die Adresse des Workers ein, zum Beispiel
https://ihr-projekt.ihr-konto.workers.dev, später Ihre eigene Domain. Die Links der Schnittstelle, der E-Mails zu Anfragen und der Suchaufträge zeigen dann auf das Frontend. Die Adresse erfahren Sie nach dem ersten Build bei Cloudflare; Sie können das Feld bis dahin leer lassen. -
Vertrauenswürdige Proxy-Adressen eintragen
Ein Worker sendet Formulare im Namen der Besucher und hat keine feste Adresse. Tragen Sie unter Vertrauenswürdige Proxy-Adressen die Adressbereiche ein, die Cloudflare unter cloudflare.com/ips veröffentlicht, einen pro Zeile in CIDR-Schreibweise, zum Beispiel
173.245.48.0/20oder2400:cb00::/32. Ohne diese Bereiche zählt die Begrenzung der Anfragen pro Stunde alle Besucher Ihres Frontends zusammen. Mehr dazu unter Formulare über die Headless-Schnittstelle.
Bei Cloudflare einrichten
Abschnitt betitelt „Bei Cloudflare einrichten“-
Repository verbinden
Öffnen Sie im Cloudflare-Dashboard Workers & Pages → Create → Import a repository und wählen Sie das Repository Ihres Frontends. Bei einem privaten Repository einer Organisation muss die GitHub-App von Cloudflare Zugriff darauf haben; das genehmigen Inhaber der Organisation bei GitHub unter Settings → GitHub Apps.
-
Build einstellen
Vergeben Sie einen Projektnamen aus Kleinbuchstaben, Ziffern und Bindestrichen; er wird Teil der Adresse. Für den Astro-Starter lautet der Build-Befehl
npm run buildund der Deploy-Befehlnpx wrangler deploy. Preview builds können Sie ausgeschaltet lassen, solange Sie nur im Hauptzweig arbeiten; jede Vorschau braucht eigene Variablen und Secrets. -
Build-Variablen eintragen
Die Variablen unter Advanced settings → Variables gelten nur für den Build. Werte, die beim Build in die Website geschrieben werden, gehören hierher; ändern Sie einen, braucht es einen neuen Build. Für den Astro-Starter:
Name Wert DEPLOY_TARGETcloudflareIMMOMAKLER_API_URLhttps://www.ihre-domain.de/wp-json/immomakler-headless/v1PUBLIC_SITE_URLdie Adresse des Workers, nach dem ersten Build Lassen Sie keine Zeile mit leerem Wert stehen, sonst reagiert der Button Deploy nicht. Den API-Key braucht der Build nur, wenn API-Key auch für lesende Anfragen verlangen eingeschaltet ist.
-
Ersten Build starten und Adresse übernehmen
Klicken Sie auf Deploy. Nach dem Build zeigt die Übersicht des Workers seine Adresse,
https://<Projektname>.<Konto>.workers.dev; die Subdomain Ihres Kontos steht auch in der Übersicht unter Workers & Pages. Tragen Sie die Adresse alsPUBLIC_SITE_URLunter Settings → Build → Variables and secrets und in WordPress als Adresse Ihres Frontends ein, und starten Sie den Build neu (Retry build). -
Secrets hinterlegen
Unter Settings → Runtime variables and secrets legen Sie im Bereich Production die Werte an, die der Worker bei jeder Anfrage liest. Klicken Sie jeweils auf Add variable und wählen Sie als Type den Eintrag Secret:
Name Wert IMMOMAKLER_API_KEYder API-Key aus dem Tab Headless IMMOMAKLER_WEBHOOK_SECRETdas Webhook-Secret aus demselben Tab BUILD_HOOK_URLdie Adresse des Deploy Hooks aus dem nächsten Abschnitt Secrets wirken ohne neuen Build. Eine Build-Variable ist zur Laufzeit nicht verfügbar: Ein API-Key, der nur dort steht, fehlt den Formularen.
Nach jedem Import neu bauen
Abschnitt betitelt „Nach jedem Import neu bauen“WP-ImmoMakler meldet Änderungen an das Frontend, und das Frontend startet bei Cloudflare einen Build:
-
Deploy Hook anlegen
Legen Sie bei Cloudflare unter Settings → Builds → Deploy Hooks einen Hook für den Hauptzweig an und kopieren Sie seine Adresse. Wer diese Adresse kennt, kann Builds starten; behandeln Sie sie wie ein Passwort. Hinterlegen Sie sie als Secret
BUILD_HOOK_URL. Ist die Adresse in fremde Hände geraten, löschen Sie den Hook, legen einen neuen an und ersetzen das Secret. -
Webhook in WordPress einschalten
Schalten Sie unter Webhook senden den Versand ein und tragen Sie unter Webhook-Adresse die Adresse ein, die Ihr Frontend für Benachrichtigungen bereitstellt, beim Astro-Starter
https://<Adresse des Workers>/api/revalidate/, mit dem Schrägstrich am Ende. Die Wartezeit (Sekunden) fasst die Änderungen eines Imports zu einem einzigen Build zusammen. -
Verbindung prüfen
Klicken Sie auf Testnachricht senden. Die Einstellungen melden, ob die Nachricht zugestellt wurde; eine Testnachricht löst keinen Build aus. Um die ganze Kette zu prüfen, ändern und speichern Sie eine Immobilie: Nach der Wartezeit erscheint bei Cloudflare unter Deployments ein neuer Build.
Wie die Nachricht aufgebaut ist und wie Ihr Frontend die Signatur prüft, beschreibt Webhook, Links und Weiterleitung.
Eigene Domain
Abschnitt betitelt „Eigene Domain“Hinterlegen Sie Ihre Domain bei Cloudflare unter Settings → Domains & Routes. Ändern Sie danach die Adresse an allen Stellen: PUBLIC_SITE_URL bei Cloudflare (mit neuem Build), Adresse Ihres Frontends und Webhook-Adresse in WordPress. Tragen Sie die Domain außerdem bei Ihrem Captcha-Anbieter als erlaubte Domain ein, und unter Erlaubte Ursprünge (Origins), wenn Besucher-Browser WordPress direkt aufrufen, etwa für die Adressvorschläge der Umkreissuche.
Häufige Fragen
Abschnitt betitelt „Häufige Fragen“Ist der Betrieb kostenlos?
Abschnitt betitelt „Ist der Betrieb kostenlos?“Im kostenlosen Tarif bezahlen Sie nichts, solange die Website innerhalb der Grenzen aus Was Cloudflare kostet bleibt. Vorab erzeugte Seiten zählen nicht mit.
Kann ich die Website lokal bauen und per SFTP hochladen?
Abschnitt betitelt „Kann ich die Website lokal bauen und per SFTP hochladen?“Nur zum Teil. Die vorab erzeugten Seiten sind einfache Dateien, die jeder Webspace ausliefert. Die Suche mit Filtern, die Formulare, die Merkliste, die Suchauftrag-Seite und die Benachrichtigung nach Importen brauchen aber einen Server, der Anfragen beantwortet. Dafür gibt es zwei Wege: einen Hosting-Tarif, der Node.js-Anwendungen ausführt, oder ein Frontend, das Suche und Formulare direkt aus dem Browser an die Schnittstelle schickt; die Formularrouten nehmen solche Anfragen von den erlaubten Ursprüngen an. Neue Immobilien erscheinen bei einem hochgeladenen Build erst nach dem nächsten Build und Upload.
Brauche ich Vorschau-Builds?
Abschnitt betitelt „Brauche ich Vorschau-Builds?“Nein. Vorschau-Builds erzeugen für jeden Zweig außer dem Hauptzweig eine eigene Vorschau. Jede Vorschau braucht eigene Variablen und Secrets und hat eine eigene Adresse, die in WordPress nicht als erlaubter Ursprung eingetragen ist.
Wo trage ich welche Variable ein?
Abschnitt betitelt „Wo trage ich welche Variable ein?“Werte, die beim Build in die Website geschrieben werden (DEPLOY_TARGET, IMMOMAKLER_API_URL, PUBLIC_SITE_URL), gehören zu den Build-Variablen, beim Anlegen unter Advanced settings → Variables, später unter Settings → Build → Variables and secrets. Werte, die der Worker bei jeder Anfrage liest (IMMOMAKLER_API_KEY, IMMOMAKLER_WEBHOOK_SECRET, BUILD_HOOK_URL), legen Sie nach dem Anlegen als Secret unter Settings → Runtime variables and secrets an.
Woher kenne ich die Adresse des Workers?
Abschnitt betitelt „Woher kenne ich die Adresse des Workers?“Sie setzt sich aus dem Projektnamen und der workers.dev-Subdomain Ihres Kontos zusammen. Die Subdomain zeigt die Übersicht unter Workers & Pages, die vollständige Adresse die Übersicht des Workers nach dem ersten Build.
Fehlerbehebung
Abschnitt betitelt „Fehlerbehebung“| Was Sie sehen | Ursache | Lösung |
|---|---|---|
| Der Button Deploy reagiert nicht | eine Variable mit leerem Wert oder ein ungültiges Feld | leere Zeilen entfernen, nach rot markierten Feldern suchen |
Der Build bricht ab mit GET /site failed with 404 Es wurde keine Route gefunden | die Schnittstelle ist in WordPress ausgeschaltet | Schnittstelle einschalten |
| Der Build bricht mit einem Zertifikats- oder Verbindungsfehler ab | WordPress ist nicht öffentlich erreichbar | eine öffentlich erreichbare WordPress-Website mit gültigem Zertifikat verwenden |
| Formulare schlagen fehl, der Spam-Token antwortet mit 502, WordPress meldet 403 | IMMOMAKLER_API_KEY fehlt zur Laufzeit, steht nur bei den Build-Variablen oder weicht vom API-Key in WordPress ab | unter Runtime variables and secrets als Secret hinterlegen, den aktuellen API-Key kopieren |
| Log: “Headless webhook address redirects; followed it once” | der Webhook-Adresse fehlt der Schrägstrich am Ende, das Frontend leitet weiter; WP-ImmoMakler folgt der Weiterleitung auf derselben Domain | die im Log unter to genannte Adresse eintragen, zum Beispiel …/api/revalidate/ |
| Log: “Headless webhook refused by the front end” mit Status 301, 302, 307 oder 308 | die Webhook-Adresse leitet auf eine andere Domain oder mit einer Art von Weiterleitung weiter, der WP-ImmoMakler nicht folgt | die endgültige Adresse eintragen |
| Testnachricht oder Log: Status 503 | IMMOMAKLER_WEBHOOK_SECRET fehlt | als Secret hinterlegen |
| Testnachricht: Status 401 | das Secret weicht von dem in WordPress ab | Secret erneut kopieren |
| Importe bauen die Website nicht neu | BUILD_HOOK_URL fehlt oder Webhook senden ist aus | Deploy Hook und Webhook einrichten |
| Importe bauen die Website nur bis zum nächsten Push neu | BUILD_HOOK_URL wurde als Variable statt als Secret angelegt, der nächste Deploy hat sie entfernt | als Secret neu anlegen |
| Der Sprachumschalter oder E-Mails führen zu WordPress | Adresse Ihres Frontends ist leer | Adresse eintragen, neu bauen |
Kanonische Links zeigen auf localhost | PUBLIC_SITE_URL fehlt | Build-Variable eintragen, neu bauen |