Documentation

Déploiement

Déployez Motoko Base sur toute plateforme compatible Next.js, avec un parcours Vercel comme option recommandée.

Ouvrir dansChatGPT (s’ouvre dans un nouvel onglet)Claude (s’ouvre dans un nouvel onglet)Cursor (s’ouvre dans un nouvel onglet)Déployez Motoko Base sur toute plateforme compatible Next.js, avec un parcours Vercel comme option recommandée.

Motoko Base est une application Next.js standard et peut être déployée sur toute plateforme qui prend en charge Next.js — Vercel, Railway, Fly.io, Render, Docker sur un VPS, AWS, Cloudflare ou Node self-hosted.

Exigences :

  • Node.js ≥ 22
  • pnpm (ou traduisez les scripts vers votre gestionnaire de paquets)
  • Capacité de définir des variables d’environnement au build et au runtime
  • PostgreSQL accessible depuis l’hôte

Commandes de build et de démarrage :

pnpm install
pnpm build
pnpm start

Les migrations s’exécutent séparément (pas pendant next build) :

pnpm db:migrate

Complétez la checklist Configuration de production avant le go-live.


Étapes indépendantes de la plateforme

  1. Connectez votre dépôt à l’hôte (ou déployez un artefact buildé).
  2. Définissez les variables d’environnement de Configuration de production.
  3. Exécutez les migrations contre le Postgres de production (pnpm db:migrate — utilisez une URL DB directe si le pooler bloque le DDL).
  4. Build : pnpm build (Node 22+, installez les deps avec pnpm install).
  5. Start : pnpm start (port par défaut 3000 — configurez PORT si l’hôte l’exige).
  6. Configurez les webhooks — Polar → {APP_URL}/api/billing/webhooks/polar lorsque le billing est activé.
  7. Smoke test — inscription, vérification e-mail, ouvrir le dashboard, tester les intégrations activées.

Notes pour tout hôte

SujetOrientation
Serverless / edgeFonctionne — l’app utilise App Router + Server Actions standard. Préférez le pooler Postgres pour DATABASE_URL.
Serveur longue duréeFonctionne — mêmes variables d’environnement et commandes.
DockerBuild multi-stage : install → pnpm build → exécuter pnpm start avec l’env de production.
Preview/stagingVariables et identifiants OAuth/Polar sandbox séparés ; optionnel BETTER_AUTH_TRUSTED_ORIGINS.
SecretsNe jamais committer .env. Utilisez le gestionnaire de secrets de l’hôte. Ne jamais exposer de secrets serveur via NEXT_PUBLIC_*.
Source maps SentryDéfinir SENTRY_AUTH_TOKEN, SENTRY_ORG, SENTRY_PROJECT dans l’environnement de build.

Guide officiel de déploiement Next.js : nextjs.org/docs/app/getting-started/deploying


Recommandé : Vercel

Vercel est l’option recommandée — hébergement Next.js zero-config, preview deployments et support natif de la stack utilisée par Motoko Base.

Docs Vercel : vercel.com/docs

1. Importer le projet

  1. Poussez votre dépôt vers GitHub, GitLab ou Bitbucket
  2. Importez le projet dans Vercel
  3. Preset framework : Next.js (détecté automatiquement)
  4. Commande de build : pnpm build (Vercel détecte pnpm via packageManager dans package.json)
  5. Commande d’install : pnpm install

2. Variables d’environnement

Dans Project Settings → Environment Variables, ajoutez les vars de Configuration de production :

  • Production — toutes les valeurs de production
  • Preview — valeurs staging/sandbox (Polar sandbox, apps OAuth de test, etc.)

Au minimum pour la production :

DATABASE_URL=
BETTER_AUTH_SECRET=
BETTER_AUTH_URL=https://your-app.vercel.app
NEXT_PUBLIC_APP_URL=https://your-app.vercel.app
RESEND_API_KEY=
EMAIL_FROM=

Ajoutez les variables d’intégration au fur et à mesure (Polar, R2, PostHog, Sentry, OAuth, OpenAI).

Pour les source maps Sentry, définissez aussi SENTRY_AUTH_TOKEN, SENTRY_ORG et SENTRY_PROJECT pour l’environnement Production afin qu’ils soient disponibles au build.

3. Migrations de base de données

Exécutez les migrations avant le premier déploiement de production (ou depuis la CI) :

# Locally or CI — point DATABASE_URL at production (direct URL if needed)
pnpm db:migrate

Vercel n’exécute pas les migrations automatiquement. Options :

  • Les lancer manuellement depuis votre machine contre le DATABASE_URL de production
  • Ajouter une étape CI (GitHub Action) qui exécute pnpm db:migrate au déploiement
  • Utiliser les outils de migration Supabase si vous hébergez Postgres là-bas

4. Déployer

Poussez sur votre branche principale — Vercel build et déploie automatiquement.

Après le premier déploiement :

  1. Mettez à jour BETTER_AUTH_URL et NEXT_PUBLIC_APP_URL vers votre domaine personnalisé si vous en ajoutez un
  2. Mettez à jour les URLs de callback OAuth et le webhook Polar pour correspondre au domaine live
  3. Redéployez si les variables d’environnement ont changé

5. Domaine personnalisé

  1. Project Settings → Domains → ajoutez votre domaine
  2. Mettez à jour le DNS selon les instructions Vercel
  3. Définissez BETTER_AUTH_URL et NEXT_PUBLIC_APP_URL sur https://yourdomain.com
  4. Mettez à jour les URLs OAuth Google/GitHub et le webhook Polar
  5. Redéployez

6. Vérifier

  • Inscription → recevoir l’e-mail de vérification (Resend)
  • Connexion → /dashboard se charge
  • Optionnel : checkout Polar, upload R2, événements PostHog dans le dashboard, erreur de test Sentry (pnpm build && pnpm start en local ou vérifier Issues après déploiement)

Autres plateformes (résumé)

PlateformeApproche
RailwayConnecter le dépôt, définir les env vars, build pnpm build, start pnpm start, attacher le plugin Postgres
Fly.ioDockerfile ou fly launch, définir les secrets via fly secrets set, lancer les migrations via release command
RenderWeb Service, build pnpm install && pnpm build, start pnpm start
DockerImage Node 22, copier le dépôt, pnpm install --frozen-lockfile && pnpm build, CMD pnpm start

Les mêmes variables d’environnement et la même étape de migration s’appliquent partout — seule la configuration de l’hôte change.


Configuration de production — Checklist complète pré-lancement.

Environment Variables — Référence complète des env.