Open WebUI fuer Vibe Factory
Aktive Pilot-Instanz von Open WebUI v0.9.5 gehostet fuer VF unter https://vf-chat.agenticventures.de. Sprint 1 live seit 2026-05-12.
Stack
Browser (Andre/Christoph/Marvin)
-> Cloudflare Edge (vf-chat.agenticventures.de)
-> Cloudflare Tunnel (db84013f-...)
-> AWS Fargate Task (av-production / eu-central-1, x86 1 vCPU/3 GB)
|- open-webui (v0.9.5, Python+Node, Port 8080)
|- litellm (Bedrock-Bridge, Port 4000 intern)
`- cloudflared (Sidecar, Tunnel-Connector)
-> AWS Bedrock eu-central-1 (Claude 4.x via eu-CRIS-Profile)
-> AWS S3 (File-Uploads, KMS-encrypted)
-> AWS RDS PostgreSQL 17.9 t4g.micro Single-AZ (webui-DB, seit 2026-05-14)
-> AWS EFS-Volume (NUR noch BertModel-Cache + sentence-transformers, KEINE DB-Files mehr)
-> mcp-vf.agenticventures.de (separater Stack, Papierkram + TicketPAY + M365)
Pattern-Source: open-webui-fargate-bedrock
Verfuegbare Modelle
Stand 2026-05-18: drei Persona-Custom-Models statt einem Allrounder. User waehlen je nach Aufgabe.
| Custom Model | Persona | Tool-Whitelist | Sichtbar fuer |
|---|---|---|---|
| vf-julia | Julia (Buchhaltung) | Papierkram-Vollzugriff + TicketPAY + SharePoint-Files + Code-Interpreter + Web-Search | aktuell alle (TODO: auf Group buchhaltung restricten) |
| vf-nova | Nova (Design) | SharePoint (Excel/PowerPoint/Files) + Replicate (FLUX) + Web-Search + Code-Interpreter, KEIN Papierkram | alle |
| vf-cosmo | Cosmo (Projektmanagement) | SharePoint (Mail-Drafts, Kalender, Files) + TicketPAY (Event-Status) + Web-Search + Code-Interpreter, KEIN Papierkram + KEIN Replicate | alle |
Hidden Models (Admin-View only):
vf-sonnet— der alte Allrounder, archiviert. Chat-Historien bleiben verlinkt.vf-haiku-backend,vf-opus-backend— Backend-Routing-Models fuer Welle-1-Klassifikator (kein User-Picker).claude-sonnet-4-6,arena-model— Base + Open-WebUI-Tester, fuer normale User nicht waehlbar.
Bedrock-Pricing (EU-CRIS):
- Sonnet 4.6 — 16.50/M Output
- Haiku 4.5 — 5/M
- Opus 4.6 — 75/M (4.7 noch nicht im Account-Access)
Cost (Stand 2026-05-17, post RDS-Migration)
| Komponente | EUR/Mo |
|---|---|
| Fargate-Task (1 vCPU/3 GB x86, 3 Container) | 35 € |
| RDS PostgreSQL t4g.micro Single-AZ + 20 GB GP3 + 7d Backup | 14 € |
| EFS-Volume + Backup (nur noch fuer BertModel-Cache) | 2 € |
| S3-Uploads + KMS + CloudWatch Logs | 7 € |
| Open WebUI-Stack Fix-Cost | ~58 € |
| Plus mcp-vf-hosted (separater Stack) | 9 € |
| Gesamt Fix | ~67 €/Mo |
| Bedrock-API (variabel, mit Prompt-Caching + Modell-Mix) | 30-150 €/Mo |
Pricing fuer VF
Self-Cost-Konditionen (siehe p1):
- Hosting at-cost weiterverrechnet
- Bedrock 1:1 Pass-Through
- Sunset 2026-08-31, dann Review
- Sprint 2-4 Custom-Development separat (Stundensatz)
MCP-Tool-Konfiguration (Stand 2026-05-15)
16 Core-Tools in Open-WebUI function_name_filter_list — Sonnet 4.6 sieht nur die fuer 80% der Anfragen relevanten Tools, nicht alle 139. Fuer den Rest gibt es das search_tools(query, namespace?, detail?) Meta-Tool das on-demand Schemas liefert.
Core-Liste: papierkram_get_info, papierkram_list_invoices, papierkram_list_vouchers, papierkram_list_companies, papierkram_monatsabschluss, papierkram_offene_posten, papierkram_kunde_uebersicht, ticketpay_list_events, ticketpay_event_bilanz, sharepoint_list_sites, sharepoint_search_files, sharepoint_list_messages, sharepoint_search_messages, sharepoint_create_draft, sharepoint_send_mail, search_tools
Hintergrund: 139 Tools total fuehren bei Bedrock Sonnet 4.6 zu ListTools ohne darauffolgende CallToolRequest-Events (verifikziert 2026-05-15, CloudWatch). 16 Tools: 4 parallele Tool-Calls problemlos.
Admin-API: Whitelist aendern via POST https://vf-chat.agenticventures.de/api/v1/configs/tool_servers mit Admin-Key aus aws secretsmanager get-secret-value --secret-id tmp/owui-admin-key.
Bekannte Issues
SQLite-EFS-Lock-Contention→ RESOLVED 2026-05-14 durch RDS-PostgreSQL-Migration (Phase 6). MVCC eliminiert Lock-Block, parallele Reads ohne UI-Hangs.UVICORN_WORKERS=1ist jetzt der Stand (Multi-Worker triggert peewee_migrate Race-Condition).- Opus-4.7 nicht im Bedrock-Account aktiviert — Marvin muss in Bedrock Console → Model Access den Haken setzen
- System-Prompt nur in
vf-sonnetCustom Model — wenn User claude-sonnet-4-6 nackt waehlt, kein Date-Context - App-Name-Suffix „(Open WebUI)” — hardcoded in v0.9.5-Build, Whitelabel-Removal ist Enterprise-Feature (paywall). Header-Titel + Browser-Tab zeigen weiter „VF Chat (Open WebUI)“. Workaround nur via Custom-Image-Build.
Cost-Audit 2026-05-18 — Patches pending deploy
Cost-Audit (_index) hat zwei strukturelle Treffer entdeckt: Cache-Hit-Rate nur 17% (statt 70%+) wegen {{CURRENT_TIME}}-Cache-Killer im System-Prompt, plus Klassifikator-Routing-Decisions silent. Stack-Edits in open-webui-vf-stack.ts und prompts/vf-sonnet.txt committed. Spar-Potenzial gesamt ~$320-380/Mo. Deploy + System-Prompt-Update in OWUI Custom-Model pending — siehe active-work. Pattern: bedrock-llm-cost-audit-checkliste.
Branding (Stand 2026-05-18 v2)
VF-Icon ist ueber alle 17 Static-Asset-Pfade (Backend + Build) ausgeliefert. Mechanismus: ENTRYPOINT-Wrapper im CDK-Stack curlet WEBUI_FAVICON_URL beim Container-Start in jeden Pfad. Pfad-Liste in open-webui-vf-stack.ts rund um die entryPoint-Override des owui-Containers.
Aktuelles VF-Icon: 256×256 PNG von Webflow-CDN (siehe README). MD5 c8d32f3ac6eb7f000c2bfd9e6905c1b8.
Folgekunden-Pattern: pro Tenant WEBUI_FAVICON_URL setzen + Stack-Redeploy = ~5 Min.
Phase-1-Update 2026-05-19 — Anti-Slop-Block in vf-nova
- Anti-Slop-Block in
vf-novaSystem Prompt deployed (44176 chars nach Patch, +3634 Delta zu v2.x). Source-of-Truth:~/source/apps/open-webui-vf/prompts/vf-nova.txt. Push viaPOST /api/v1/models/model/update?id=vf-novamit Admin-Key + Mozilla-User-Agent (Cloudflare 1010 sonst). - Inhalt: sieben Cardinal Sins (Indigo-Hex-Blocklist
#6366f1etc. fuer alle Layers inkl Background-Mesh/Radial-Gradient/Glow, Forbidden-Gradients purple→blue / blue→cyan / indigo→pink, Emoji-Feature-Icons-Verbot, Filler-Copy-Verbot, Invented-Metrics-Verbot, Sans-on-Serif-Mismatch, Rounded-Card-with-Left-Border-Accent) plus Image-Gen-Negativ-Prompt-Snippet fuer Replicate-Calls. Adapted from nexu-io/open-designcraft/anti-ai-slop.md(Apache 2.0). - Smoke-Test 2026-05-19 17:55-18:05 CEST via Bedrock-CLI direkt: Verifikation in _index. v3.0 hatte Indigo-Hex
#8b5cf6als Background-Layer durchgehen lassen → v3.0.1-Patch geschaerft, re-getestet, clean. - Plan-Kontext: 2026-05-19-design-stack-julian.
- Native Image-Gen via Replicate — als Phase 1.2 geplant, beim Live-Check verworfen. OWUI 0.9.5 supportet als
IMAGE_GENERATION_ENGINEnuropenai/automatic1111/comfyui/gemini, kein Replicate. Image-Gen erfolgt weiter via Tool-Use; vollwertig nach Sprint 2 (mcp-replicate-hosted, sprint-2-replicate-hosted).
[KORREKTUR 2026-05-17] Capability-File-Sync mit Stack-Realitaet
Die Issue-Liste sagte bis 2026-05-17 noch „SQLite-EFS-Lock-Contention offen, RDS-Migration als Phase 6 ausstehend”. Tatsaechlich war RDS bereits am 2026-05-14 deployed (Stack-Code in ~/source/apps/open-webui-vf/infra/lib/open-webui-vf-stack.ts Zeilen 215-256, sprint-2-master-plan.md Zeile 9 als done markiert). Capability-File war out-of-sync mit Production.
Konsequenz fuers Audit _index: Memory & State 4/10 → 7/10, Aggregat 6.6 → 7.0. Korrigiert in correction-2026-05-17.
Operations
- Live-Health-URL:
https://vf-chat.agenticventures.de/api/config(auth-frei, JSON) - Logs: CloudWatch Log-Group
/aws/ecs/default/open-webui-vf, Streamsopen-webui/*,litellm/*,cloudflared/* - Dashboard: open-webui-vf in CloudWatch
- Restart bei Hang:
aws ecs stop-task --cluster default --task <arn>— ECS startet automatisch neuen Task - Deploy:
cd ~/source/apps/open-webui-vf/infra && npx cdk deploy --profile av-production - Stack-Code:
~/source/apps/open-webui-vf/infra/lib/open-webui-vf-stack.ts
Sicherheit
- TaskRole hat Bedrock-Invoke + S3-RW + EFS-Mount, kein anderes AWS-Access
- Egress-only Security Group, einziger Public-Eingang ist cloudflared-Tunnel
- KMS-Keys fuer S3 + Secrets
- Open WebUI
enable_signup: false,enable_api_keys: true(fuer Admin-Automation) ENABLE_FORWARD_USER_INFO_HEADERS: truean MCPs (Per-User-Audit)
Cross-Refs
- mcp-vf-hosted — der MCP der hinter dem Chat haengt
- _index — Projekt mit Sprint-Plan
- open-webui-fargate-bedrock — Pattern-File
- bedrock-eu-image-gen-limitation — warum Image-Gen nicht in Bedrock
- _index — vollstaendige Build-Doku
- vibe-factory