96 lines
4.1 KiB
Markdown
96 lines
4.1 KiB
Markdown
# 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:
|
|
|
|
```bash
|
|
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.
|
|
|
|
```bash
|
|
# 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`.
|
|
|
|
```bash
|
|
# 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.js` →
|
|
`corsHeaders()` auf die echte Domain einschränken (siehe TODO-Kommentar dort).
|