Zum Inhalt springen
CASOON

Web-Entwicklung mit Cloudflare: In vielen Fällen ohne PHP, WordPress oder eigene Server

Individuelle Kundenlösungen schnell und kosteneffizient entwickeln – ohne Server-Wartung

11 Minuten
Web-Entwicklung mit Cloudflare: In vielen Fällen ohne PHP, WordPress oder eigene Server
#Cloudflare Workers #Edge Computing #Serverless #Web-Tools
SerieCloudflare Platform
Teil 1 von 11

Wenn ein Kunde ein kleines Tool braucht – einen Metadaten-Analyzer, ein Rate-Limiting-Proxy, ein Admin-Panel für Termine – kommt die Frage: Server einrichten oder nicht? Meine Standardantwort ist seit einiger Zeit: nicht mehr. Cloudflare Workers erledigen das direkter, günstiger und ohne laufenden Betriebsaufwand. Das lässt sich zeigen, nicht nur behaupten.

Was Cloudflare Workers sind

Cloudflare begann als CDN – statische Inhalte weltweit verteilen. 2017 kamen Workers hinzu: die Möglichkeit, eigenen Code direkt im Cloudflare-Netzwerk auszuführen. Was anfangs für Header-Manipulationen und Redirects gedacht war, ist heute eine vollwertige Serverless-Plattform.

Workers laufen nicht auf einem zentralen Server, sondern am nächstgelegenen Cloudflare-Rechenzentrum – V8-Engine, gleiche Runtime wie Chrome. Kein VM-Management, keine Container, keine SSH-Zugänge.

Das Free-Tier reicht für viele Kundenprojekte dauerhaft: 100.000 Requests pro Tag, unlimitierte Bandbreite. Darüber hinaus kostet eine Million Requests 0,50 €. Eine kleine Business-Seite mit 1.000 Requests täglich bleibt kostenlos; ein mittelgroßes Tool bei 10.000 Requests täglich liegt bei 1,50 €/Monat.

Der Vergleich mit dem klassischen Setup fällt deutlich aus. PHP auf einem Server bedeutete: Hosting bezahlen, SSL-Zertifikate erneuern, Security-Updates einspielen, Backups einrichten. Cloudflare Workers bedeutet: wrangler deploy. Das Zertifikat kommt automatisch, die Skalierung auch.

Zustand ohne Datenbank: Cloudflare KV

Für viele kleine Tools braucht es keine MySQL-Datenbank. Cloudflare KV – ein Key-Value Store – reicht oft aus: Session-Management, Rate Limiting, Feature-Flags, einfache Content-Verwaltung.

// Speichern: IP-Adresse → Anzahl Requests heute
await kv.put(`ratelimit:ip:${clientIP}:${today}`, JSON.stringify({
  count: 1,
  date: today
}), {
  expirationTtl: 86400 // 24 Stunden
});

// Abrufen und prüfen
const data = await kv.get(ipKey, { type: 'json' });
if (data.count >= 200) {
  return new Response('Rate limit exceeded', { status: 429 });
}

100.000 Reads pro Tag, 1.000 Writes pro Tag – kostenlos. Bei wachsenden Datenmengen oder komplexen Queries kommt Cloudflare D1 ins Spiel (SQLite auf Edge) oder eine externe Datenbank per API-Verbindung.

Authentifizierung: Cloudflare Access

Für Admin-Bereiche und interne Tools lohnt sich kein eigenes Auth-System. Cloudflare Access schützt Routen ohne Code-Änderungen: Im Dashboard eine Application anlegen, die Domain oder einen Pfad schützen, eine E-Mail-Domain-Policy setzen. Wer /admin/* öffnet, bekommt einen Login-Screen, gibt seine E-Mail ein, erhält einen One-Time-Code, und hat bei Domain-Match Zugriff.

# wrangler.toml
name = "kunde-tool"
routes = [
  { pattern = "admin.kunde.de/*", custom_domain = true }
]

Im Dashboard: Domain admin.kunde.de, Rule “E-Mail endet mit @kunde.de”, Session-Dauer 24 Stunden. Kostenlos bis 50 User. Wer das einmal eingerichtet hat, will OAuth nicht mehr selbst implementieren.

Für öffentliche Tools mit optionalem Login funktioniert eine eigene Token-Lösung über KV:

async function requestLogin(email) {
  const token = generateToken(); // 6-stelliger Code
  await kv.put(`auth:${token}`, email, { expirationTtl: 900 });
  await sendEmail(email, `Ihr Code: ${token}`);
}

async function verifyToken(token) {
  const email = await kv.get(`auth:${token}`);
  if (!email) return { error: 'Token abgelaufen' };

  const sessionId = crypto.randomUUID();
  await kv.put(`session:${sessionId}`, email, { expirationTtl: 86400 });
  return { sessionId, email };
}

Cloudflare Access passt für Admin-Bereiche und B2B-Kunden; die eigene Token-Lösung für öffentliche Tools mit optionalem Login.

Praxis-Beispiel: Meta Analyzer

Der Meta Analyzer zeigt, wie das in der Praxis aussieht: Webseiten auf SEO-Faktoren analysieren, Open Graph Tags und strukturierte Daten prüfen, mit Rate Limiting (5.000 Anfragen/Tag global, 200/Tag pro IP) und einer REST API für externe Integration.

Entwicklungszeit: ~8 Stunden. Kosten: 10 €/Jahr für die Domain. Cloudflare Workers selbst: 0 €. Wartung seitdem: 0 Stunden/Monat.

Ein vergleichbares Tool auf einem gemieteten VPS bedeutet 20–50 €/Monat, Update-Zyklen und gelegentliche Fehlersuche. Für ein Tool dieser Größenordnung lohnt sich das nicht.

Terminverwaltung: WordPress-Alternative

Ein häufiger Kundenwunsch: Termine auf der Website anzeigen – Schulungen, Messen, Webinare – ohne Buchungssystem. Die WordPress-Lösung kostet 15 €/Monat Hosting plus Wartungszeit, über 2.000 € pro Jahr. Die Workers-Variante: REST API, Admin-Panel mit Cloudflare Access, Frontend-Widget – entwickelt in 7 Stunden, Betriebskosten 0 €.

Die vollständige Anleitung dazu: Terminverwaltung mit Cloudflare Workers: Deep-Dive.

Vom Konzept zum Live-Tool

1
Lokale Entwicklung pnpm install und wrangler login — der Worker läuft dann unter localhost:8787.
2
Code schreiben TypeScript oder JavaScript. KV, D1, R2 als direkte Bindings verfügbar.
3
Deploy wrangler deploy — dauert ~20 Sekunden.
4
Automatisch konfiguriert Custom Domain, SSL-Zertifikat, DNS-Einträge, KV-Anbindung — alles ohne manuellen Eingriff.
5
Updates Code ändern, erneut deployen. Zero-Downtime: neue Version sofort live, laufende Requests laufen noch aus.

Mehrere Kunden, ein Workflow

Für Projekte mit mehreren Cloudflare-Accounts: Account-ID direkt in der wrangler.toml. Kein versehentliches Deployen in den falschen Account.

# kunde-a/wrangler.toml
name = "tool-kunde-a"
account_id = "kunde-a-account-id-123"

# kunde-b/wrangler.toml
name = "tool-kunde-b"
account_id = "kunde-b-account-id-456"

Wrangler prüft beim Deploy, ob der eingeloggte Account mit der konfigurierten ID übereinstimmt, und bricht sonst ab. Das verhindert Fehler, die ohne diesen Check leicht passieren.

CI/CD mit GitHub Actions

Für wiederkehrende Deployments:

# .github/workflows/deploy.yml
name: Deploy to Cloudflare Workers

on:
  push:
    branches: [main]

jobs:
  deploy:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v3
      - uses: pnpm/action-setup@v2
      - run: pnpm install
      - run: pnpm wrangler deploy
        env:
          CLOUDFLARE_API_TOKEN: ${{ secrets.CLOUDFLARE_API_TOKEN }}
          CLOUDFLARE_ACCOUNT_ID: ${{ secrets.CLOUDFLARE_ACCOUNT_ID }}

Push zu GitHub, 30 Sekunden später ist der Worker live.

Grenzen

Ehrlichkeit gehört dazu. Workers sind nicht für alles geeignet.

CPU-Zeit ist auf 10–50ms pro Request begrenzt. Video-Encoding, ML-Inferenz oder aufwändige Berechnungen laufen woanders. Für langlaufende Prozesse gibt es Cloudflare Durable Objects, aber das ist ein anderes Paradigma.

KV skaliert gut bis etwa 100.000 Einträge. Bei größeren Datenmengen oder relationalen Abfragen kommt Cloudflare D1 ins Spiel oder eine externe Datenbank per API-Verbindung.

File Uploads sind auf 100 MB pro Request begrenzt. Für größere Dateien – Videos, Backups – gibt es Cloudflare R2, S3-kompatibel.

Vergleich

KriteriumWorkersPHP/Shared HostingVPS/Dedicated
Setup-Zeit5 Min1–2 Stunden4–8 Stunden
Kosten (klein)0–5 €/Monat5–15 €/Monat20–100 €/Monat
Latenz (global)10–50ms100–500ms50–300ms
SkalierungAutomatischManuellManuell
WartungKeineMittelHoch
SSL/HTTPSAutomatischMeist extraManuell
DDoS-SchutzInkludiertExtraExtra

DSGVO & Datenschutz

Sobald personenbezogene Daten gespeichert werden – E-Mail-Adressen in KV, Nutzer-Sessions – gelten DSGVO-Anforderungen. Cloudflare bietet ein Data Processing Agreement mit Standardvertragsklauseln und ist nach dem EU-US Data Privacy Framework zertifiziert. Regionale Speicherorte für KV-Daten sind wählbar.

Für volle Datensouveränität: EU-basierte Dienstleister per API anbinden. Supabase bietet EU-Hosting, PlanetScale hat eine EU-Region, Hetzner Cloud mit PostgreSQL ist ein deutscher Anbieter. Für Session-Daten und Caching reicht Cloudflare KV; für Kundendatenbanken mit sensiblen Informationen ist ein EU-Dienstleister die sicherere Wahl.

Mehr zu Cloudflare und DSGVO: Cloudflare DSGVO-konform nutzen.

Einordnung

Workers verändern nicht, was möglich ist – das war mit klassischem Hosting auch erreichbar. Sie verändern, wie aufwändig es ist. Ein Tool, das früher einen ganzen Abend Infrastruktur-Setup bedeutete, ist jetzt ein Nachmittag Logik. Der Betrieb fällt weg, weil es nichts zu betreiben gibt.

Das eignet sich für ein bestimmtes Segment: spezialisierte Tools, interne Helfer, kleine APIs, Admin-Panels. Kein Ersatz für komplexe Datenbankanwendungen, kein vollständiger CMS-Stack. Aber für Kundenprojekte in diesem Bereich ist es die reibungsloseste Option, die ich gefunden habe.