ich habe einen beitrag über den umstieg von vercel zu cloudflare geschrieben. ich war schon auf firebase.

cybersecurity · May 25, 2026 · 1 min read

der beitrag, den ich über den umzug dieser seite zu cloudflare pages geschrieben habe, war falsch.

ich habe diese seite nicht umgezogen. sie stand die ganze zeit auf firebase hosting, und der grund, warum niemand den fehler bemerkt hat, ist, dass die dateien, die das Gegenteil behaupteten, direkt im repo lagen: eine wrangler.toml, ein public/_headers, und ein functions/-verzeichnis voller cloudflare-pages-functions. alle drei beschrieben ein hosting-setup, das nie das war, was den verkehr beantwortet hat.

wie ich es herausgefunden habe

ich habe mir meine eigenen response-header angesehen, statt dem repo zu glauben. vary: x-fh-requested-host — fh ist firebase hosting. dann habe ich das html, das die domain tatsächlich auslieferte, gegen die seite verglichen, von der ich glaubte, sie sei live, und sie waren byteweise identisch — beide ein april-build, der dem größten teil dieser seite vorausging.

das projekt enthält außerdem vier hosting-sites. das projekt-default und das hinter der echten domain lieferten exakt dieselben 2713 bytes html. ein einfaches firebase deploy ohne explizites target hätte stillschweigend das falsche überschrieben, ohne fehler und ohne warnung.

was tatsächlich läuft

  • statisches hosting für die ganze app, mit einem rewrite, der jede client-route auf ein html-dokument abbildet
  • cache-header in einer datei, die ich lesen kann, statt einer regel-engine, die sie mit kommata zusammenführt
  • ein befehl zum deployen, aus einer konfiguration, die auf einen bildschirm passt

worauf ich ehrlich gesagt verzichtet habe

das functions/-verzeichnis waren cloudflare-pages-functions. firebase hosting ist statisch, also laufen sie nicht. das bedeutet:

  • /ping, /json, /help und die terminal-ansicht antworten mit dem seiten-html statt mit text
  • der gästebuch-endpoint gibt nichts brauchbares zurück
  • das pro-beitrag-umschreiben der og:-tags für bots führt nie aus

ich kann das portieren, wenn ich es wirklich brauche. ich habe es nicht getan, und ich schreibe es lieber hierher, als ein 200 mit dem falschen inhalt weiter so aussehen zu lassen, als funktioniere es.

die eigentliche lehre

nicht, dass firebase besser ist als cloudflare. ist es nicht, und ich behaupte nicht, dass es das ist. die lehre ist, dass eine konfigurationsdatei in deinem repo eine behauptung über deine infrastruktur ist, und nichts überprüft sie. ich wusste nur deshalb, wo diese seite lebt, weil ich die header gelesen habe, statt das repository zu lesen.

ein kommentar ist kein deployment.