Documentation
Déploiement
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 startLes migrations s’exécutent séparément (pas pendant next build) :
pnpm db:migrateComplétez la checklist Configuration de production avant le go-live.
Étapes indépendantes de la plateforme
- Connectez votre dépôt à l’hôte (ou déployez un artefact buildé).
- Définissez les variables d’environnement de Configuration de production.
- Exécutez les migrations contre le Postgres de production (
pnpm db:migrate— utilisez une URL DB directe si le pooler bloque le DDL). - Build :
pnpm build(Node 22+, installez les deps avecpnpm install). - Start :
pnpm start(port par défaut3000— configurezPORTsi l’hôte l’exige). - Configurez les webhooks — Polar →
{APP_URL}/api/billing/webhooks/polarlorsque le billing est activé. - Smoke test — inscription, vérification e-mail, ouvrir le dashboard, tester les intégrations activées.
Notes pour tout hôte
| Sujet | Orientation |
|---|---|
| Serverless / edge | Fonctionne — l’app utilise App Router + Server Actions standard. Préférez le pooler Postgres pour DATABASE_URL. |
| Serveur longue durée | Fonctionne — mêmes variables d’environnement et commandes. |
| Docker | Build multi-stage : install → pnpm build → exécuter pnpm start avec l’env de production. |
| Preview/staging | Variables et identifiants OAuth/Polar sandbox séparés ; optionnel BETTER_AUTH_TRUSTED_ORIGINS. |
| Secrets | Ne jamais committer .env. Utilisez le gestionnaire de secrets de l’hôte. Ne jamais exposer de secrets serveur via NEXT_PUBLIC_*. |
| Source maps Sentry | Dé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
- Poussez votre dépôt vers GitHub, GitLab ou Bitbucket
- Importez le projet dans Vercel
- Preset framework : Next.js (détecté automatiquement)
- Commande de build :
pnpm build(Vercel détecte pnpm viapackageManagerdanspackage.json) - 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:migrateVercel n’exécute pas les migrations automatiquement. Options :
- Les lancer manuellement depuis votre machine contre le
DATABASE_URLde production - Ajouter une étape CI (GitHub Action) qui exécute
pnpm db:migrateau 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 :
- Mettez à jour
BETTER_AUTH_URLetNEXT_PUBLIC_APP_URLvers votre domaine personnalisé si vous en ajoutez un - Mettez à jour les URLs de callback OAuth et le webhook Polar pour correspondre au domaine live
- Redéployez si les variables d’environnement ont changé
5. Domaine personnalisé
- Project Settings → Domains → ajoutez votre domaine
- Mettez à jour le DNS selon les instructions Vercel
- Définissez
BETTER_AUTH_URLetNEXT_PUBLIC_APP_URLsurhttps://yourdomain.com - Mettez à jour les URLs OAuth Google/GitHub et le webhook Polar
- Redéployez
6. Vérifier
- Inscription → recevoir l’e-mail de vérification (Resend)
- Connexion →
/dashboardse charge - Optionnel : checkout Polar, upload R2, événements PostHog dans le dashboard, erreur de test Sentry (
pnpm build && pnpm starten local ou vérifier Issues après déploiement)
Autres plateformes (résumé)
| Plateforme | Approche |
|---|---|
| Railway | Connecter le dépôt, définir les env vars, build pnpm build, start pnpm start, attacher le plugin Postgres |
| Fly.io | Dockerfile ou fly launch, définir les secrets via fly secrets set, lancer les migrations via release command |
| Render | Web Service, build pnpm install && pnpm build, start pnpm start |
| Docker | Image 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.