Hustler: Name in der Oberfläche, Budget höchstens 150 $/Monat (6 $/Tag) mit hartem Deckel

Kenso, 17.10.: "150 € im Monat max", "nenne es Hustler". Technische
Namen (workers*) bleiben.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
ClaudeandClaude Opus 5.5 committed 2026-10-17 20:26:42 +00:00
1 parent 740089c997
commit 11e4280a92
8 files changed
+184 -156

No files matched your search

@@ -1167,9 +1167,9 @@ Voraussetzung: P1 läuft (Container `webklar-workers`, nginx-Block `/api/workers
5. **Image bauen und Dienst neu starten.** `cd /home/webklar/apps && free -m && docker compose build workers && docker compose up -d --no-deps workers`. *Prüfen:* `docker logs --tail 40 webklar-workers` (Zeile `workers listening on 8092`, keine Stacktraces) und `docker exec webklar-workers node -e "fetch('http://localhost:8092/api/workers/health').then(r=>r.json()).then(console.log)"` → `{ ok: true, … }`. Der erste Lauf des Alarm-Ticks setzt den Lesestand auf die aktuell höchste Mail (keine Altmails). Zusätzlich: `docker exec webklar-workers ls -l /app/prompts/clara.md /app/prompts/bea.md /app/prompts/rita.md /app/prompts/finn.md` zeigt die vier Dateien (Mount aus P1 ist da); fehlt eine, wirft der Dienst `Prompt fehlt: <id>` beim ersten Aufruf der Rolle.
6. **Postfach prüfen (manuell).** `docker exec webklar-workers node scripts/check-alert-mailbox.mjs`. Erwartet: Zeilen mit `uidValidity`, `uidNext`, `exists` und Absender-Domains, kein Passwort. `IMAP_AUTH` bedeutet falsches Passwort: in `.env` korrigieren, Dienst neu starten (der Dienst pausiert nach einem Anmeldefehler 6 Stunden und versucht es nicht in Schleife).
7. **Konten und Suchaufträge anlegen (von Hand).** Kleinanzeigen: Suchauftrag(e) mit Anzeigentyp „Gesuche“ (z. B. „Website erstellen“, „Homepage“, „Webdesigner“) und Benachrichtigung an die Alarm-Adresse; die Bestätigungs-Mail der Plattform anklicken. freelancermap und freelance.de: Suchagenten „Webdesign/Website/WordPress“ an dieselbe Adresse. Prüfung: Im Alarm-Postfach liegt je Plattform eine Bestätigungs- oder Test-Mail.
8. **Erste echte Alarm-Mail abwarten.** Sobald sie da ist (höchstens 10 Minuten bis zum nächsten Lauf), in WOMS → Workers → Kim anklicken: die Spur zeigt „Anzeigen gelesen“, der Raum „Kleinanzeigen“ ist nicht mehr grau. Steht dort „Alarm-Mail nicht lesbar“, leite die Mail (ohne persönliche Daten) weiter; sie ersetzt die Fixture aus Annahme A1/A2, und der Parser wird angepasst. Steht dort „Alarm-Mail ohne gültige Absender-Prüfung verworfen“, schick stattdessen nur die Kopfzeilen `From` und `Authentication-Results` der Mail (Gmail: Mail öffnen → „Original anzeigen“); fehlt `Authentication-Results` ganz, fügt dein Postfach-Anbieter die Zeile nicht ein, und die Prüfung muss für ihn angepasst werden. Nichts wird bis dahin ungeprüft übernommen.
8. **Erste echte Alarm-Mail abwarten.** Sobald sie da ist (höchstens 10 Minuten bis zum nächsten Lauf), in WOMS → Hustler → Kim anklicken: die Spur zeigt „Anzeigen gelesen“, der Raum „Kleinanzeigen“ ist nicht mehr grau. Steht dort „Alarm-Mail nicht lesbar“, leite die Mail (ohne persönliche Daten) weiter; sie ersetzt die Fixture aus Annahme A1/A2, und der Parser wird angepasst. Steht dort „Alarm-Mail ohne gültige Absender-Prüfung verworfen“, schick stattdessen nur die Kopfzeilen `From` und `Authentication-Results` der Mail (Gmail: Mail öffnen → „Original anzeigen“); fehlt `Authentication-Results` ganz, fügt dein Postfach-Anbieter die Zeile nicht ein, und die Prüfung muss für ihn angepasst werden. Nichts wird bis dahin ungeprüft übernommen.
9. **nginx prüfen.** `curl -s -o /dev/null -w '%{http_code}\n' https://ticket.webklar.com/api/workers/pult` → `401`.
10. **WOMS ausliefern.** Erst wenn P2 live ist: `git -C /home/webklar/apps/ticket.webklar.com/dev-workers push origin feature/workers:test`; nach etwa 3 Minuten in WOMS → Workers → Reiter „Freigabe“: „Nichts wartet auf dich“.
10. **WOMS ausliefern.** Erst wenn P2 live ist: `git -C /home/webklar/apps/ticket.webklar.com/dev-workers push origin feature/workers:test`; nach etwa 3 Minuten in WOMS → Hustler → Reiter „Freigabe“: „Nichts wartet auf dich“.
11. **Pult-Probe.** `docker exec webklar-workers node scripts/pult-test.mjs` druckt eine Id. In „Freigabe“ erscheint „[TEST] Pult-Probe – bitte verwerfen“. Prüfen: „Kopieren & öffnen“ öffnet webklar.com in neuem Tab und der Entwurf liegt in der Zwischenablage; „Ich kümmere mich“ zeigt deinen Namen; „Verwerfen“ (zweimal klicken) lässt den Eintrag verschwinden (Reiter „Erledigt“).
12. **Datenschutz-Freigabe, dann Clara einschalten.** Erst wenn der Abschnitt „Interessenten“ in der Datenschutzerklärung freigegeben und in WOMS „Rechtliches“ hochgeladen ist (P6) und du den Hinweistext der Erstantwort (P3-T13, „Texte (exakt)“, Test `buildFinalText`) gelesen und freigegeben hast (die Adresse darin ist `https://www.webklar.com/datenschutz#interessenten`, sie muss auf der Live-Seite wirklich zum Abschnitt führen): `docker exec webklar-workers node scripts/datenschutz-schalter.mjs --an`. Es gibt genau diesen einen Schalter (`settings.privacyInteressentenLive`, kein Env); sobald P6 eingerichtet ist, nimmst du stattdessen `p6-freischalten.mjs datenschutz --check` und `--set`, das vorher die Live-Seite prüft und dasselbe Feld setzt (A5). Prüfung: Ausgabe `Datenschutz-Schalter: an`; innerhalb von 2 Minuten (Tick `anfragen`) entstehen Pult-Einträge für bereits bewertete Anfragen; ohne Anfragen bleibt „Freigabe“ leer (bei 0–3 Gesuchen pro Woche normal).
13. **Rückweg.** Sofort stoppen: Pausenschalter in WOMS. Erstantworten abstellen: `docker exec webklar-workers node scripts/datenschutz-schalter.mjs --aus`. Alarm-Lesen abstellen: Raum „Kleinanzeigen“/„Portale“ in den Einstellungen deaktivieren. Alter Stand: `git -C /home/webklar/apps/workers checkout <vorheriger Commit>`, `docker compose build workers && docker compose up -d --no-deps workers`.