Déployer sur Vercel (Next.js) et Railway (Node.js)
⏱ 50 minLes plateformes modernes rendent le déploiement simple — mais il faut connaître les bonnes pratiques.
Vercel — la plateforme officielle de Next.js
npm install -g vercel
vercel login
vercel # déploie le projet courant
vercel --prod # déploiement en production
Configuration via vercel.json :
{
"env": {
"ANTHROPIC_API_KEY": "@anthropic-api-key"
},
"regions": ["iad1"],
"rewrites": [
{ "source": "/api/(.*)", "destination": "/api/$1" }
]
}
Railway — backend Node.js + PostgreSQL
Railway déploie automatiquement depuis GitHub et peut provisionner une base PostgreSQL.
# Via railway CLI
npm install -g @railway/cli
railway login
railway init
railway up
Railway détecte automatiquement Node.js et lance npm start.
Variables d'environnement en production
Toutes les plateformes proposent un gestionnaire de secrets :
- Vercel : Project Settings → Environment Variables
- Railway : Variables tab
- AWS : Systems Manager Parameter Store ou Secrets Manager
Ne jamais faire :
# ❌ Committer un .env
git add .env # JAMAIS
# ✅ .gitignore doit contenir .env*
echo ".env*" >> .gitignore
✍️ Exercices de la leçon
2 exercicesFais-les dans l'ordre, dans un vrai fichier .py — pas dans ta tête. Ne déplie la correction qu'après avoir écrit quelque chose, même faux.
Exercice A — Mettre l'application en ligne
Application directe · Tu appliques ce que tu viens de lire.
Déploie ton application Next.js sur Vercel et ton API Node sur Railway :
- 1.le dépôt Git connecté, avec un déploiement automatique à chaque push sur
main - 2.les variables d'environnement configurées dans l'interface de la plateforme, jamais dans le dépôt
- 3.deux environnements distincts : preview (branches) et production (
main), avec des secrets différents - 4.vérifie qu'aucun secret n'est présent dans l'historique Git
- 5.teste que l'URL de preview et l'URL de production ne pointent pas sur la même base de données
Le point 5 est celui qu'on découvre le plus douloureusement.
Exercice B — Ça marche en local, ça casse en production
Page blanche · Aucun squelette : à toi de choisir la méthode.
Page blanche. Diagnostic à distance.
Ton application tourne parfaitement en local. Le déploiement échoue — ou pire, il réussit et l'application plante à l'ouverture.
Écris le protocole de diagnostic pour ces trois symptômes, dans l'ordre des causes les plus probables :
- 1.le build échoue sur la plateforme mais passe en local
- 2.le build réussit, mais l'application affiche une erreur 500 à l'ouverture
- 3.tout fonctionne en preview, et casse uniquement en production
Pour chaque symptôme : les causes classées par fréquence, la commande ou l'endroit qui permet de trancher, et le correctif.
Puis donne la commande qui reproduit localement les conditions de la plateforme — celle qui aurait évité la moitié de ces problèmes.
Indice sur le n° 1 : il existe une cause qui ne peut littéralement pas se produire sur un Mac ou sous Windows.