Configuratie
Twee dingen om te configureren: de secrets voor de diensten die je gebruikt, en je merkgegevens. Deze pagina is de volledige referentie voor beide.
Waar configuratie staat
Lokale secrets staan in apps/api/.dev.vars (gitignored). De scaffolder maakt het bestand aan vanuit .dev.vars.example, dat elke variabele opsomt die de gekozen modules kunnen gebruiken, zodat je alleen de variabelen ziet die op jouw app van toepassing zijn. Merkgegevens staan apart in packages/ui/src/config.ts.
Let op
RESEND_API_KEY logt de e-mailmodule en slaat het verzenden over; zonder Stripe-sleutels blijven de checkout-endpoints slapen. Je kunt bouwen en rondklikken voordat je één externe dienst koppelt.Kernvariabelen
Deze bestaan in elke Kavel-app, welke modules je ook kiest.
- `ENVIRONMENT` De runtime-modus,
developmentofproduction. Lokaal is ditdevelopment; uitgerolde Workers zetten het opproduction, wat de interactieve/rpc/docs-API-referentie uitschakelt. - `WEB_URL` De publieke URL van de webapp,
http://localhost:3000in development. Gebruikt voor CORS en voor het opbouwen van links in e-mails en auth-callbacks. - `API_URL` De publieke URL van de API-Worker,
http://localhost:8787in development. De webapp leest deze om de backend te bereiken.
Modulevariabelen
Elke module voegt alleen zijn eigen variabelen toe aan .dev.vars.example. Vul die voor de modules in die je hebt ingeschakeld.
Auth
- `BETTER_AUTH_SECRET` Verplicht. Ondertekent sessies en tokens. Genereer er een met
openssl rand -base64 32. - `GITHUB_CLIENT_ID` en `GITHUB_CLIENT_SECRET` Optioneel. Zetten GitHub social login aan, aangemaakt in de instellingen van je GitHub OAuth-app.
- `GOOGLE_CLIENT_ID` en `GOOGLE_CLIENT_SECRET` Optioneel. Zetten Google social login aan, vanuit de Google Cloud-console.
Laat de OAuth-paren leeg om die providers uit te houden. Aanmelden met e-mail en wachtwoord werkt zonder een van deze.
- `RESEND_API_KEY` Vereist om te verzenden. Je Resend-API-sleutel. Zonder deze logt de module de e-mail en slaat de bezorging over.
- `EMAIL_FROM` Het From-adres, bijvoorbeeld
My App <noreply@myapp.com>. Het domein moet geverifieerd zijn in Resend. - `CONTACT_TO` Waar inzendingen van het contactformulier worden bezorgd.
Betalingen
- `STRIPE_SECRET_KEY` Verplicht. Je Stripe-secret-key uit het Stripe-dashboard.
- `STRIPE_WEBHOOK_SECRET` Verplicht. Verifieert binnenkomende Stripe-webhooks, getoond wanneer je je webhook-endpoint registreert.
- `STRIPE_PRICE_ID` De prijs waarvoor de checkout afrekent.
Lokaal vs productie
.dev.vars is alleen voor lokale ontwikkeling en wordt nooit gecommit. In productie splitsen dezelfde namen zich in twee soorten:
- Secrets, de gevoelige waarden (API-sleutels,
BETTER_AUTH_SECRET, Stripe-sleutels), zet je metwrangler secret put NAMEof in het Cloudflare-dashboard. Ze komen nooit in de repo. - Gewone vars, de niet-gevoelige (
ENVIRONMENT,WEB_URL), staan inwrangler.jsoncondervars.
Waarschuwing
.dev.vars is alleen voor lokale ontwikkeling. Zet secrets in productie op de Worker met wrangler secret put NAME, commit ze nooit. Zie Deployment.Merkconfiguratie
Je naam, tagline, contactgegevens en sociale links staan in één getypeerd object in packages/ui/src/config.ts. Marketingpagina's, de footer en e-mailtemplates lezen eruit, dus je merk bijwerken is één aanpassing:
Types opnieuw genereren
Na het wijzigen van Worker-bindings in wrangler.jsonc genereer je de Cloudflare-types opnieuw zodat de API type-veilig blijft: