Files
dogfather-universe/cloudflare-worker

DOGFATHER UNIVERSE — Bewerbungs-Postfach (Cloudflare Worker)

Dieser Worker nimmt Bewerbungen von bewerben.html entgegen und speichert sie in Cloudflare KV. Nur wer den richtigen Code kennt, kann sie über postfach.html einsehen — der Code wird serverseitig geprüft (nicht im Browser-Code sichtbar), das ist der eigentliche Schutz.

Kosten: läuft im kostenlosen Cloudflare-Tier (Workers Free + KV Free reichen für dieses Volumen locker).

Bereits deployed

Läuft schon unter: https://dogfather-universe-postfach.dogfather1608.workers.dev (Health-Check: /health). Die Website (assets/js/forms.js, index.html, postfach.html) zeigt bereits auf diese URL — die Schritte unten sind nur nötig, falls der Worker mal neu aufgesetzt werden muss (z.B. anderer Account, Code vergessen und Secret-Reset gewünscht).

Voraussetzungen

  • Ein (kostenloser) Cloudflare-Account
  • Node.js installiert (für npx wrangler)

Deploy in 5 Schritten

Alles im Ordner cloudflare-worker/ ausführen:

cd cloudflare-worker

# 1. Bei Cloudflare einloggen (öffnet Browser zur Anmeldung)
npx wrangler login

# 2. KV-Namespace anlegen (Speicher für die Bewerbungen)
npx wrangler kv namespace create BEWERBUNGEN

Die Ausgabe von Schritt 2 enthält eine id = "...". Diese id in wrangler.toml bei REPLACE_ME eintragen.

# 3. Geheimen Zugangscode für das Postfach festlegen
#    (wird abgefragt, nirgends im Code sichtbar — frei wählbar, z.B. ein langes Passwort)
npx wrangler secret put POSTFACH_CODE

# 4. Worker deployen
npx wrangler deploy

Schritt 4 gibt eine URL aus, z.B. https://dogfather-universe-postfach.<dein-account>.workers.dev.

# 5. Kurz testen
curl https://dogfather-universe-postfach.<dein-account>.workers.dev/health
# sollte {"ok":true,"service":"dogfather-universe-postfach"} zurückgeben

Website mit dem Worker verbinden

Nach dem Deploy die Worker-URL an zwei Stellen eintragen:

  1. assets/js/forms.js → Konstante API_BASE_URL ganz oben auf die Worker-URL setzen (ohne abschließenden Slash).
  2. postfach.html → Konstante API_BASE_URL im <script>-Block genauso setzen.

Danach gehen neue Bewerbungen automatisch an den Worker statt (nur) an den mailto:-Fallback, und postfach.html kann sie mit dem in Schritt 3 gesetzten Code anzeigen.

Wer den Code kennen darf

Der Code aus Schritt 3 ist dein Owner-Code — nur du (Dogi) solltest ihn kennen. Damit kannst du nicht nur Bewerbungen sehen, sondern auch Helfer-Codes für andere Personen vergeben (siehe unten). Code ändern: einfach wrangler secret put POSTFACH_CODE erneut ausführen und neuen Wert eingeben — alte Bewerbungen bleiben erhalten, nur der Zugangscode ändert sich.

Rollen für Rechte Hand, Linke Hand & Co.

Auf postfach.html gibt es — nur sichtbar, wenn du dich mit deinem Owner-Code einloggst — einen Bereich „Rollen verwalten". Dort kannst du:

  • Neue Codes erzeugen, mit Rolle (Rechte Hand / Linke Hand / frei) + Name (z.B. "VanVan"). Der neue Code wird einmalig angezeigt — sofort weitergeben/notieren, danach ist er nicht mehr abrufbar (nur als Hash gespeichert, aus Sicherheitsgründen).
  • Codes entziehen, falls sich jemandes Rolle ändert oder der Zugang nicht mehr gebraucht wird.

Was Helfer-Codes können: ausschließlich die eingegangenen Bewerbungen ansehen — dieselbe Ansicht wie du. Was sie NICHT können: neue Codes erzeugen, andere Codes entziehen, oder irgendetwas an der Website selbst verändern/löschen. Für Website-Änderungen gibt es in diesem Worker schlicht keine einzige Funktion — das ist technisch gar nicht möglich, egal welchen Code jemand hat.

Wartung

  • Bewerbungen ansehen: über postfach.html mit Code (empfohlen), oder direkt im Cloudflare Dashboard unter Workers & Pages → KV → BEWERBUNGEN.
  • Bewerbungen löschen: im Cloudflare Dashboard unter KV die einzelnen sub:...-Einträge entfernen.
  • CORS ist aktuell offen (*) — sobald die finale Domain feststeht, in src/worker.jscorsHeaders() auf die echte Domain einschränken (siehe TODO-Kommentar dort).