Zoeken

Zoek in Kavel...

Documentatiemenu

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

Modules degraderen netjes. Zonder 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, development of production. Lokaal is dit development; uitgerolde Workers zetten het op production, wat de interactieve /rpc/docs-API-referentie uitschakelt.
  • `WEB_URL` De publieke URL van de webapp, http://localhost:3000 in 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:8787 in 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.

E-mail

  • `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 met wrangler secret put NAME of in het Cloudflare-dashboard. Ze komen nooit in de repo.
  • Gewone vars, de niet-gevoelige (ENVIRONMENT, WEB_URL), staan in wrangler.jsonc onder vars.
bash
wrangler secret put BETTER_AUTH_SECRET
wrangler secret put RESEND_API_KEY

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:

ts
export const Config = {
  brand: {
    name: "My App",
    tagline: "Ship faster on the edge",
    domain: "myapp.com",
    email: "hello@myapp.com",
    socialMedia: [
      { id: "github", name: "GitHub", url: "https://github.com/my-app" },
    ],
  },
};

Types opnieuw genereren

Na het wijzigen van Worker-bindings in wrangler.jsonc genereer je de Cloudflare-types opnieuw zodat de API type-veilig blijft:

bash
bun cf-typegen