Open WebUI fuer VF — Build-Sprint 1
Eine sehr lange Session. Stack ist live, MCPs sind angebunden, Andre + Christoph noch nicht onboarded, RDS-Migration ist Pflicht-Followup. Plus diverse Pre-Work: mcp-vf-hosted-Migration auf Fargate-Tunnel, Security-Audit, Christoph-Onboarding-Doku, DSGVO-Briefing.
Was live ist (2026-05-12 abends)
https://vf-chat.agenticventures.de— Open WebUI v0.9.5 auf AWS Fargate (eu-central-1, av-production)- 3 Container im Task: open-webui + litellm + cloudflared
- LiteLLM-Sidecar bridged Bedrock-API zu OpenAI-Format (Open WebUI hat kein natives Bedrock)
- 3 Bedrock-Modelle: Sonnet 4.6, Haiku 4.5, Opus 4.7 (Opus aktuell nicht im Account aktiviert → Marvin muss Modell-Access klicken)
- Custom Model
vf-sonnet(Sonnet 4.6 + MCP-Tools attached + System-Prompt mit{{CURRENT_DATE}}) - mcp-vf-hosted (Papierkram + TicketPAY + M365) eingebunden via OAuth-2.1-Streamable-HTTP
- Tunnel
db84013f-3ab3-4ac6-bdbf-eca5b137a5ea - CloudWatch-Dashboard
open-webui-vf - 1 User: Marvin (hello@marvinkuehlmann.com, Admin)
Was NICHT live ist
- Andre + Christoph User-Onboarding (Phase 4)
- RDS-PostgreSQL-Migration (Phase 6, Pflicht — SQLite-EFS-Hangs siehe Lessons)
- Auto-Restart-Lambda fuer Hang-Mitigation (Phase 5)
- Cloudflare-Edge-Rate-Limit (Phase 5)
- Opus-4.7-Bedrock-Account-Access (1 UI-Klick fuer Marvin)
- Pricing-Entscheidung formalisiert in AVV-Anhang
Zeitstrahl der Session
| Zeit | Was |
|---|---|
| Vormittag | mcp-vf-hosted: ECS Express → Fargate + cloudflared-Sidecar (siehe separate Run-Akte security-audit-mcp-vf-hosted) |
| Vormittag | Security-Audit + Fixes auf mcp-vf-hosted (C1 Prompt-Injection, H1+H2 PII-Filter, H3 RateLimit-TTL, H4 Image-Digest-Pin) |
| Vormittag | DSGVO-Briefing fuer Christoph + Christoph-Onboarding-Anleitung |
| Mittag | LibreChat-Alternativen-Recherche → Open WebUI als Empfehlung |
| Nachmittag | Open WebUI Pattern-File + Projekt + Launch-Prompt + Sprint-Roadmap geschrieben |
| Nachmittag | Build-Sprint gestartet: Repo, CDK-Stack, Tunnel-Setup |
| Nachmittag | Erster Bug: Mongo-Sidecar wegen LibreChat-Pattern-Carryover (Open WebUI nutzt SQLite, kein Mongo!) — Mongo raus, EFS-Volume fuer SQLite |
| Nachmittag | Zweiter Bug: Open WebUI hat kein natives Bedrock → LiteLLM-Sidecar dazu |
| Abend | Tunnel-Token-Setup via CF-API + Service hochgefahren |
| Abend | Marvin als Admin registriert, API-Key holen → ENABLE_API_KEYS=true Stack-Fix |
| Abend | MCP-Tool-Server registriert (URL-vs-Path-Bug behoben) |
| Abend | OAuth-Authorize-Flow geklappt — Tools live |
| Abend | Smoke-Test: Sonnet 4.6 nutzt ticketpay_list_events erfolgreich (59 Events, 4968 Tickets) |
| Abend | Date-Context-Problem: Claude antwortet „Juli 2025” weil kein System-Prompt |
| Abend | Custom Model vf-sonnet mit System-Prompt + MCP-Tools angelegt via API |
| Abend | UI-Hangs (2×): SQLite-Lock-Contention auf EFS bei Browser-Request-Storm |
| Abend | UVICORN_WORKERS=2 + DEFAULT_MODELS=vf-sonnet als Sofort-Mitigation deployed |
| Abend | Cost-Diskussion + Pricing-Variante A/B/C |
| Abend | Marvin: Self-Cost-Pricing fuer VF (Freunde) entschieden |
Verlinkte Files (entstanden in dieser Session)
- decisions.md — Architektur- + Pricing-Entscheidungen
- lessons-learned.md — Was wir beim Bauen gelernt haben (Quirks, Gotchas)
- open-webui-fargate-bedrock.md — Pattern-File (mehrfach iteriert)
- _index.md — Projekt-Akte
- launch-prompt.md — Sprint-1-Launch-Prompt
- sprint-roadmap-ai-native-office.md — Sprint 2-5 Roadmap
- sprint-2-replicate-hosted.md — Image-Gen-MCP-Plan
- bedrock-eu-image-gen-limitation.md — ADR
~/source/apps/open-webui-vf/infra/lib/open-webui-vf-stack.ts— CDK-Stack-Code~/source/apps/open-webui-vf/README.md— Repo-Doku
Followups (in Reihenfolge der Wichtigkeit)
- PFLICHT: RDS-Migration (1 Tag, +14 €/Mo) — Phase 6. SQLite-EFS-Hangs werden sonst regelmaessig auftreten
- Phase 4: Andre + Christoph einladen — sobald Setup stabil
- Auto-Restart-Lambda + Cloudflare-Edge-Rate-Limit (Phase 5) — Hang-Mitigation
- Opus-4.7-Bedrock-Account-Access aktivieren (UI-Klick im Bedrock-Console)
tmp/owui-admin-keySecret loeschen nach Sprint-Abschluss- Pricing-AVV-Anpassung mit VF formalisieren (Self-Cost-Konditionen + Bedrock-Pass-Through + Sunset-Clause)
- Default-System-Prompt-Frage klaeren: aktuell nur in Custom-Model
vf-sonnet. Wenn User stattdessenclaude-sonnet-4-6nackt waehlt, hat er keinen Date-Context - Sprint 2 starten (mcp-replicate-hosted fuer Image-Gen) wenn VF nach Image-Gen fragt
- mcp-m365 v0.3 delegated OAuth wenn Multi-User-SharePoint-Audit kritisch wird
Wichtige Cost-Punkte
- Fix-Cost aktuell: ~55 €/Mo (Open WebUI-Stack + mcp-vf-hosted + Misc)
- Fix-Cost nach RDS-Migration: ~65 €/Mo
- Bedrock variabel (mit LiteLLM-Caching + Modell-Mix Sonnet/Haiku): 30-150 €/Mo bei Pilot-Use
- Pricing an VF: Self-Cost (Marvin’s Entscheidung 2026-05-12) — siehe decisions.md fuer Schutzklauseln