Documentation

Configuration de production

Checklist d’environnement et d’intégrations avant de déployer Motoko Base en production.

Ouvrir dansChatGPT (s’ouvre dans un nouvel onglet)Claude (s’ouvre dans un nouvel onglet)Cursor (s’ouvre dans un nouvel onglet)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 :

VariableValeur de production
DATABASE_URLChaîne de connexion Postgres — préférer le transaction pooler Supabase (port 6543) à l’exécution
BETTER_AUTH_SECRETSecret aléatoire long — générer avec openssl rand -base64 32 ; ne jamais réutiliser le secret de dev
BETTER_AUTH_URLOrigine HTTPS publique, p. ex. https://app.example.com
NEXT_PUBLIC_APP_URLLa 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:migrate

Si le DDL échoue via le pooler, utilisez temporairement une connexion directe (port 5432). Voir Migrations.

Base de données

VérificationAction
Postgres en marcheSupabase, Neon, RDS ou self-hosted — tout Postgres fonctionne
Migrations appliquéespnpm db:migrate contre la production
Pooler pour l’exécutionUtiliser 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érificationAction
Nouveau secret de productionGénérer un BETTER_AUTH_SECRET frais — ne pas copier depuis .env.local
Origine HTTPSBETTER_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 :

FournisseurURL de callback de production
Google{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.

VariableNotes
RESEND_API_KEYClé API de production
EMAIL_FROMExpé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.

VariableNotes
POLAR_SERVERproduction
POLAR_ACCESS_TOKENToken d’organisation de production
POLAR_PRO_MONTHLY_PRODUCT_IDID produit de production
POLAR_WEBHOOK_SECRETDepuis 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

VariableNotes
R2_ACCOUNT_IDCompte Cloudflare
R2_ACCESS_KEY_ID / R2_SECRET_ACCESS_KEYToken API de production
R2_BUCKET_NAMEBucket privé

Configurez le CORS du bucket pour votre origine de production si les uploads navigateur échouent.

Détails : Storage (R2).

PostHog

VariablePortéeNotes
NEXT_PUBLIC_POSTHOG_PROJECT_TOKENClientToken de projet de production
NEXT_PUBLIC_POSTHOG_HOSTClientCorrespondre à votre région PostHog (US/EU)
POSTHOG_PERSONAL_API_KEYServeurPour HogQL sur /dashboard/analytics
POSTHOG_PROJECT_IDServeurID de projet de production
POSTHOG_HOSTServeurHost API (pas le host d’ingest)

Détails : Analytics (PostHog).

Sentry

VariableNotes
NEXT_PUBLIC_SENTRY_DSNDSN du projet de production
SENTRY_AUTH_TOKENCI/build — upload des source maps
SENTRY_ORG / SENTRY_PROJECTCI/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_SECRET frais généré
  • BETTER_AUTH_URL et NEXT_PUBLIC_APP_URL pointent 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 build ré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.