Rechercher

Rechercher dans Kavel...

Menu de documentation

Configuration

Deux choses à configurer : les secrets des services que vous utilisez et les détails de votre marque. Cette page est la référence complète pour les deux.

Où vit la configuration

Les secrets locaux se trouvent dans apps/api/.dev.vars (ignoré par git). Le scaffolder le crée à partir de .dev.vars.example, qui liste chaque variable utilisable par les modules choisis, si bien que vous ne voyez que les variables qui concernent votre application. Les détails de marque vivent à part, dans packages/ui/src/config.ts.

Remarque

Les modules se dégradent proprement. Sans RESEND_API_KEY, le module e-mail journalise et n'envoie rien ; sans clés Stripe, les endpoints de paiement restent inactifs. Vous pouvez construire et explorer avant de brancher le moindre service externe.

Variables principales

Elles existent dans toute application Kavel, quels que soient les modules choisis.

  • `ENVIRONMENT` Le mode d'exécution, development ou production. En local il vaut development ; les workers déployés le mettent à production, ce qui désactive la référence d'API interactive /rpc/docs.
  • `WEB_URL` L'URL publique de l'application web, http://localhost:3000 en développement. Utilisée pour le CORS et pour construire les liens dans les e-mails et les callbacks d'authentification.
  • `API_URL` L'URL publique du Worker API, http://localhost:8787 en développement. L'application web la lit pour joindre le backend.

Variables des modules

Chaque module n'ajoute que ses propres variables à .dev.vars.example. Renseignez celles des modules que vous avez activés.

Auth

  • `BETTER_AUTH_SECRET` Requis. Signe les sessions et les tokens. Générez-en un avec openssl rand -base64 32.
  • `GITHUB_CLIENT_ID` et `GITHUB_CLIENT_SECRET` Optionnels. Activent la connexion sociale GitHub, créés dans les réglages de votre application OAuth GitHub.
  • `GOOGLE_CLIENT_ID` et `GOOGLE_CLIENT_SECRET` Optionnels. Activent la connexion sociale Google, depuis la console Google Cloud.

Laissez les paires OAuth vides pour garder ces fournisseurs désactivés. La connexion par e-mail et mot de passe fonctionne sans aucune d'elles.

E-mail

  • `RESEND_API_KEY` Requis pour l'envoi. Votre clé d'API Resend. Sans elle, le module journalise l'e-mail et n'assure pas la livraison.
  • `EMAIL_FROM` L'adresse d'expéditeur, par exemple My App <noreply@myapp.com>. Le domaine doit être vérifié dans Resend.
  • `CONTACT_TO` L'adresse où sont livrées les soumissions du formulaire de contact.

Paiements

  • `STRIPE_SECRET_KEY` Requis. Votre clé secrète Stripe, depuis le tableau de bord Stripe.
  • `STRIPE_WEBHOOK_SECRET` Requis. Vérifie les webhooks Stripe entrants, affiché lorsque vous enregistrez votre endpoint de webhook.
  • `STRIPE_PRICE_ID` Le prix facturé par le paiement.

Local vs production

.dev.vars sert uniquement au développement local et n'est jamais committé. En production, les mêmes noms se répartissent en deux catégories :

  • Secrets, les valeurs sensibles (clés d'API, BETTER_AUTH_SECRET, clés Stripe), se définissent avec wrangler secret put NAME ou dans le tableau de bord Cloudflare. Ils ne touchent jamais le dépôt.
  • Variables simples, les non sensibles (ENVIRONMENT, WEB_URL), vivent dans wrangler.jsonc sous vars.
bash
wrangler secret put BETTER_AUTH_SECRET
wrangler secret put RESEND_API_KEY

Avertissement

.dev.vars sert uniquement au développement local. En production, définissez les secrets sur le Worker avec wrangler secret put NAME, ne les committez jamais. Voir Déploiement.

Configuration de la marque

Votre nom, votre slogan, vos coordonnées et vos liens sociaux vivent dans un seul objet typé, dans packages/ui/src/config.ts. Les pages marketing, le pied de page et les modèles d'e-mail le lisent : mettre à jour votre marque tient en une seule modification :

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" },
    ],
  },
};

Régénérer les types

Après avoir modifié les bindings du Worker dans wrangler.jsonc, régénérez les types Cloudflare pour que l'API reste typée :

bash
bun cf-typegen