Documentation
Configuration de production
Checklist d’environnement et d’intégrations avant de déployer Motoko Base en production.
Utilisez cette checklist avant votre premier déploiement en production. Les variables requises démarrent l’app ; les intégrations optionnelles peuvent être activées une par une.
Référence complète des env : Environment Variables.
Requis
Ces quatre variables sont le minimum pour une app de production fonctionnelle :
| Variable | Valeur de production |
|---|---|
DATABASE_URL | Chaîne de connexion Postgres — préférer le transaction pooler Supabase (port 6543) à l’exécution |
BETTER_AUTH_SECRET | Secret aléatoire long — générer avec openssl rand -base64 32 ; ne jamais réutiliser le secret de dev |
BETTER_AUTH_URL | Origine HTTPS publique, p. ex. https://app.example.com |
NEXT_PUBLIC_APP_URL | La même origine publique — utilisée pour les short links et redirects |
Gardez BETTER_AUTH_URL et NEXT_PUBLIC_APP_URL alignés sur l’URL que les utilisateurs visitent réellement.
Exécutez les migrations contre la production avant ou pendant le premier déploiement :
pnpm db:migrateSi le DDL échoue via le pooler, utilisez temporairement une connexion directe (port 5432). Voir Migrations.
Base de données
| Vérification | Action |
|---|---|
| Postgres en marche | Supabase, Neon, RDS ou self-hosted — tout Postgres fonctionne |
| Migrations appliquées | pnpm db:migrate contre la production |
| Pooler pour l’exécution | Utiliser l’URL du transaction pooler dans DATABASE_URL pour les hosts serverless/multi-instance |
| RLS (Supabase) | Le starter livre RLS activé — l’app se connecte via le rôle pooler, pas la clé anon |
Détails : Database.
Better Auth et secrets
| Vérification | Action |
|---|---|
| Nouveau secret de production | Générer un BETTER_AUTH_SECRET frais — ne pas copier depuis .env.local |
| Origine HTTPS | BETTER_AUTH_URL doit correspondre à votre domaine live (cookies + callbacks en dépendent) |
| Trusted origins (optionnel) | BETTER_AUTH_TRUSTED_ORIGINS pour les hosts preview/staging |
Détails : Better Auth.
Callbacks OAuth
Si vous utilisez la connexion Google ou GitHub, mettez à jour à la fois la console du fournisseur et .env :
| Fournisseur | URL de callback de production |
|---|---|
{BETTER_AUTH_URL}/api/auth/callback/google | |
| GitHub | {BETTER_AUTH_URL}/api/auth/callback/github |
Définissez les identifiants de production GOOGLE_* / GITHUB_* — les apps OAuth sandbox/dev ne fonctionneront pas sur votre domaine live.
Détails : OAuth Setup.
Resend
Requis pour la vérification d’inscription et la réinitialisation du mot de passe en production.
| Variable | Notes |
|---|---|
RESEND_API_KEY | Clé API de production |
EMAIL_FROM | Expéditeur de domaine vérifié, p. ex. My App <noreply@yourdomain.com> |
Vérifiez votre domaine dans Resend (SPF/DKIM) avant le go-live.
Détails : Email (Resend).
Polar
Passez du sandbox à production lorsque le billing devient live.
| Variable | Notes |
|---|---|
POLAR_SERVER | production |
POLAR_ACCESS_TOKEN | Token d’organisation de production |
POLAR_PRO_MONTHLY_PRODUCT_ID | ID produit de production |
POLAR_WEBHOOK_SECRET | Depuis la config webhook de production |
URL du webhook : {NEXT_PUBLIC_APP_URL}/api/billing/webhooks/polar
Testez le checkout en sandbox d’abord. Détails : Payments (Polar).
Cloudflare R2
| Variable | Notes |
|---|---|
R2_ACCOUNT_ID | Compte Cloudflare |
R2_ACCESS_KEY_ID / R2_SECRET_ACCESS_KEY | Token API de production |
R2_BUCKET_NAME | Bucket privé |
Configurez le CORS du bucket pour votre origine de production si les uploads navigateur échouent.
Détails : Storage (R2).
PostHog
| Variable | Portée | Notes |
|---|---|---|
NEXT_PUBLIC_POSTHOG_PROJECT_TOKEN | Client | Token de projet de production |
NEXT_PUBLIC_POSTHOG_HOST | Client | Correspondre à votre région PostHog (US/EU) |
POSTHOG_PERSONAL_API_KEY | Serveur | Pour HogQL sur /dashboard/analytics |
POSTHOG_PROJECT_ID | Serveur | ID de projet de production |
POSTHOG_HOST | Serveur | Host API (pas le host d’ingest) |
Détails : Analytics (PostHog).
Sentry
| Variable | Notes |
|---|---|
NEXT_PUBLIC_SENTRY_DSN | DSN du projet de production |
SENTRY_AUTH_TOKEN | CI/build — upload des source maps |
SENTRY_ORG / SENTRY_PROJECT | CI/build — slugs d’org et de projet |
Définissez les variables Sentry dans votre environnement de build (CI), pas seulement au runtime, pour que les source maps soient uploadées pendant pnpm build.
Sentry est désactivé pendant next dev — vérifiez avec pnpm build && pnpm start ou sur l’hôte déployé.
Détails : Monitoring (Sentry).
Checklist pré-lancement
- Variables d’environnement de production définies sur l’hôte (ne jamais committer de secrets)
-
BETTER_AUTH_SECRETfrais généré -
BETTER_AUTH_URLetNEXT_PUBLIC_APP_URLpointent vers le domaine HTTPS live - Migrations appliquées à la base de production
- Domaine Resend vérifié ; tester l’e-mail de vérification
- URLs de callback OAuth mises à jour (si connexion sociale)
- Webhook Polar pointe vers l’URL de production (si billing)
-
pnpm buildréussit en local ou en CI - Smoke test : inscription → vérification → dashboard → intégrations clés
Déploiement — Déployer sur toute plateforme compatible Next.js + exemple Vercel.