---
title: "Self-Hosting"
description: "Stellen Sie Vonvon als drei isolierte Workers in Ihrem Cloudflare-Konto bereit, einschließlich des vollständigen Inventars für Daten, Queues, Konsistenz, Email, Routing und Produktionskontrollen."
locale: "de"
---

> Documentation Index
> Fetch the relevant documentation index at: https://vonvon.id/de/llms.txt
> Use this file to discover all available pages before exploring further.

# Self-Hosting

## Erforderliche Bindings

| Bindung | Zweck |
| --- | --- |
| `vonvon-site, vonvon-console, vonvon` | Stellen Sie drei Workers bereit: Nimbus Site ist für die Apex-Dokumentation und die www-Weiterleitung zuständig, Console für /dash und Core für Hosted Auth, Protokolle, APIs, Jobs und Identitätsstatus. Site und Console binden nur ASSETS. |
| `DB, CACHE, STORAGE` | Core verwendet D1 für mandantenbezogene relationale Daten, KV nur für leselastige Caches und R2 für private Objekte. Stark konsistenter Zustand gehört niemals in KV. |
| `EMAIL, ANALYTICS, SITE_WORKER, CONSOLE_WORKER, ASSETS` | Core bindet Email Service und Analytics Engine sowie unidirektionale Service Bindings zu Site und Console als Fallback für Abfragen exakter Routen. Frontend Workers binden niemals zurück an Core. |
| `SESSION_REVOCATION, WEBAUTHN_CHALLENGE, OAUTH_STATE, PAR_STORE, DEVICE_FLOW, RATE_LIMITER, AUDIT_SEQ, METERING, GUEST_STORE, CIBA_STATE, IMPERSONATION_GRANTS` | Elf SQLite-gestützte Durable Objects serialisieren Sitzungen, Challenges, OAuth, PAR, Geräte- und CIBA-Status, Ratenlimits, Audit-Reihenfolge, Metering, Gäste und Impersonationsberechtigungen. |
| `vonvon-email, vonvon-whatsapp, vonvon-sms, vonvon-audit, vonvon-webhook, vonvon-metering, vonvon-scim-sync, vonvon-privacy` | Acht Quell-Queues verlagern Email-, WhatsApp-, SMS-, Audit-, Webhook-, Metering-, ausgehende SCIM- und Datenschutzaufgaben aus den Authentifizierungspfaden. |
| `8 source DLQs + 8 persistence-failure Queues` | Jede Quell-Queue benötigt eine eigene Dead-Letter-Queue und eine Quarantäne für Persistenzfehler, insgesamt also 24 Queues. Die gemeinsam genutzte vonvon-dlq ist veraltet und darf nicht verwendet werden. |

## Produktionskonfiguration

| Geheimnis | Zweck |
| --- | --- |
| `KEK, PEPPER, BOOTSTRAP_TOKEN` | Produktion und Staging erfordern KEK, PEPPER und BOOTSTRAP\_TOKEN als Workers Secrets. Speichern Sie diese niemals in Variablen, D1, Quelldateien oder Build-Protokollen. |
| `EMAIL_FROM_ADDRESS, EMAIL_FROM_NAME` | Legen Sie die nicht geheime Absenderidentität ausdrücklich fest. Vonvon validiert die Adresse und schlägt geschlossen fehl. Email Sending an beliebige Empfänger erfordert Workers Paid; D1, SQLite-gestützte Durable Objects und Queues sind im Rahmen ihrer Limits unter Workers Free verfügbar. |
| `TURNSTILE_SITE_KEY + TURNSTILE_SECRET; CLOUDFLARE_FOR_SAAS_*` | Konfigurieren Sie Turnstile als vollständiges Paar aus Site-Key und Secret. Optionale Cloudflare-for-SaaS-Hostnamen erfordern eine Zone, ein API-Token, einen aktiven Fallback-Ursprung, DNS und Routen. Zonen-WAF und Edge-Ratenbegrenzung bleiben separate Kontrollen; RATE\_LIMITER verweigert bei Fehlern den Zugriff. |

## Deployment-Prüfungen

Bevor die Produktionsreife erklärt wird, müssen alle 24 Queues abgeglichen, die D1-Migrationen angewendet, alle drei Workers erstellt und Apex, www, Wildcard-DNS, Integrität, Discovery, JWKS und Hosted Auth überprüft werden. Erfassen Sie anschließend Live-Nachweise für Email, DLQ-Wiedergabe, Datenschutzexport und 30-Tage-Löschung, stündlichen und täglichen Cron, Analytics, Turnstile und benutzerdefinierte Hostnamen. Lokale L0-L3-Nachweise sind kein L4; jede nicht ausgeführte Live-Prüfung ist UNKNOWN. Das vollständige Betriebshandbuch wird unter https://github.com/StringKe/vonvon/blob/main/docs/deployment.md gepflegt.

```shell
pnpm install
pnpm run cloudflare:queues:plan
pnpm run cloudflare:queues:create
pnpm run cloudflare:queues:check
pnpm check
pnpm test
pnpm build
pnpm smoke:l2-l3
pnpm smoke:three-workers

# Merge a reviewed, signed commit to main so Cloudflare Workers Builds deploys all three Workers.
curl https://<your-domain>/v1/health
curl https://<your-domain>/.well-known/openid-configuration
curl https://<your-domain>/jwks
curl https://<your-domain>/auth/config
curl -I https://www.<your-domain>/
```

Source: https://vonvon.id/de/self-hosting/index.mdx
