Migrer une application Next.js de Vercel vers votre propre serveur
Pour migrer une application Next.js de Vercel vers votre propre serveur, reliez le même dépôt GitHub au panneau Coolify du serveur, copiez les variables d'environnement, remplacez les éléments propres à Vercel (cron, analytique, stockage), testez sur une adresse temporaire et basculez l'enregistrement A de votre domaine en dernier. La documentation de Next.js indique que toutes les fonctionnalités marchent sur un serveur Node.js. Votre déploiement Vercel reste en ligne jusqu'à la bascule : vous avez donc un moyen de revenir en arrière.
Il s'agit en réalité d'un choix de modèle de facturation. La documentation de Vercel explique que l'infrastructure est facturée selon les données transférées, les requêtes et la durée de calcul. Un serveur coûte une mensualité fixe pour la RAM, le CPU et le disque que vous choisissez. Notre comparaison montre comment faire vos propres calculs.
Ce qui change quand vous migrez
| Sujet | Vercel | Votre serveur |
|---|---|---|
| Facturation | À l'usage | Mensualité fixe, trafic illimité, sauvegarde quotidienne incluse dans le prix |
| Emplacement | Réseau de diffusion mondial | Un serveur, à Istanbul |
| Pics de trafic | La plateforme les absorbe et la facture grossit | Le site ralentit quand la capacité s'épuise, et vous augmentez la taille |
| Compilations | Sur les machines de la plateforme | Sur le même serveur : les compilations déterminent donc la mémoire nécessaire |
| Maintenance | Le travail de la plateforme | Mises à jour du système, des paquets et supervision sont à vous, comme l'accès root |
| Aperçus | Automatiques pour les branches | Activés séparément dans Coolify |
| Sécurité réseau | Vercel Firewall | Vous gérez le pare-feu du serveur |
Pour être clair : il y a un seul serveur, pas de diffusion mondiale en périphérie, et la maintenance devient la vôtre. Qui n'y verra pas d'inconvénient ? Si vos visiteurs sont surtout en Turquie et dans les pays voisins, un seul emplacement suffit. Si toutes vos pages lisent une même base de données, les réponses attendent cette base où que le code tourne. Les tableaux de bord, outils internes et produits au trafic prévisible ont rarement besoin d'une mise à l'échelle automatique. Si votre public est réparti dans le monde, si votre trafic monte fortement, ou si vous ne voulez jamais toucher à la maintenance, Vercel peut mieux convenir.
Préparer le nouveau serveur
- Commandez depuis la page VPS Next.js. Le serveur est livré avec Coolify.
- Reliez le dépôt. La voie courte : ouvrez le projet dans Claude Code ou Cursor, collez la ligne Collez dans votre outil d'IA de l'onglet Vue d'ensemble, et l'outil le déploie. Vous pouvez aussi le faire à la main.
- Fixez votre version de Node avec
engines.nodedanspackage.json. - Récupérez vos variables :
vercel env pull .env.move --environment=production. Les valeurs secrètes ne peuvent pas être relues : la CLI écrit donc des valeurs de remplacement et vous les obtenez de leur source. Gardez le fichier hors du dépôt et saisissez son contenu sous Environment Variables dans Coolify, avec les valeursNEXT_PUBLIC_disponibles à la compilation. - Cherchez le code propre à Vercel :
grep -n "@vercel/" package.jsonetgrep -rnE "VERCEL_|x-vercel-" app src. Les variables système commeVERCEL_URLn'existent pas sur votre serveur : utilisez les vôtres.
Fonctionnalités de Next.js et éléments propres à Vercel
| Élément | Sur votre serveur | Ce qu'il faut faire |
|---|---|---|
| Optimisation des images | Fonctionne avec next start, sans configuration | Utilise le CPU et la mémoire de votre serveur |
| ISR et cache | Fonctionnent d'eux-mêmes sur une instance avec un disque local | Plusieurs instances doivent partager le cache, et il se remplit de nouveau après chaque déploiement |
| Middleware (Proxy dans Next.js 16) | Fonctionne avec next start, sans configuration | Les requêtes sont désormais traitées à Istanbul |
| Tâches cron | vercel.json n'est pas lu | Appelez le même chemin depuis Scheduled Tasks dans Coolify : curl -fsS -H "Authorization: Bearer $CRON_SECRET" http://localhost:3000/api/cron. Le cron de Vercel suit l'UTC, tandis que Coolify utilise le fuseau horaire du serveur |
| Redirections et en-têtes | vercel.json n'est pas lu | Déplacez-les dans next.config |
| Web Analytics, Speed Insights | S'appuient sur des routes que Vercel ajoute à un déploiement | Retirez les composants et utilisez un outil comme Umami |
| AI Gateway | Appelable depuis n'importe quel serveur | Définissez AI_GATEWAY_API_KEY |
Et Postgres, KV et Blob ?
- Postgres et KV : la documentation de Vercel indique que ces produits n'existent plus et que les anciennes bases ont été transférées à des fournisseurs de la Marketplace : vos données se trouvent donc chez un fournisseur distinct, derrière une variable d'environnement. Reprenez cette variable et l'application atteint la même base. Si la facturation passe par votre compte Vercel, récupérez vos données avant de le fermer. Une base de données éloignée ajoute cette distance à chaque requête.
- La déplacer sur votre serveur : créez PostgreSQL dans Coolify, exportez avec
pg_dump -Fc "OLD-DATABASE-URL" --no-owner --no-privileges -f backup.dumpet téléversez l'archive avec Import backup sur la page Backups de la base de données. Si Redis ne sert que de cache, repartir de zéro convient généralement. - Blob :
BLOB_READ_WRITE_TOKENfonctionne aussi depuis un autre hébergeur, vous pouvez donc le laisser tel quel. Pour ramener les fichiers sur votre serveur, modifiez le code et montez le dossier avec Persistent Storage.
Basculer votre domaine sans interruption
- Testez sur l'adresse HTTPS que Coolify vous donne : connexion, formulaires, paiements, images, et Execute now pour le cron.
dig NS example.com +shortmontre où se trouvent vos enregistrements : la page Domains de Vercel si elle liste les serveurs de noms de Vercel, sinon votre fournisseur DNS.- Abaissez le TTL des enregistrements racine et
www, par exemple à 300 secondes, et attendez que l'ancien TTL soit écoulé. - Si la base de données déménage aussi, arrêtez les écritures et chargez la copie finale.
- Faites pointer l'enregistrement A vers l'adresse IP du serveur. Ne touchez pas aux enregistrements MX et TXT pour l'e-mail.
- Ajoutez le domaine avec
httpssur la page Domains de Coolify et appuyez sur Redeploy. Le certificat est émis automatiquement. - Gardez le déploiement Vercel en ligne quelques jours. Les visiteurs dont le cache a gardé l'ancien enregistrement y arrivent, et vous pouvez refaire pointer l'enregistrement en arrière si besoin.
- Une fois le trafic déplacé, retirez le domaine du projet Vercel, coupez la connexion Git avec Disconnect et rétablissez le TTL.
Le certificat n'est émis qu'une fois le domaine pointé vers le serveur : les premiers visiteurs peuvent donc voir brièvement un avertissement de certificat. Basculez à une heure creuse.
Questions fréquentes
Avec quelle taille dois-je commencer ?
La page de vente recommande au moins 4 Go de RAM, 2 vCores et 40 Go de disque. Un petit projet s'est compilé avec 2 Go, tandis qu'un projet de 85 paquets a manqué de mémoire avec 2 Go et s'est compilé avec 4 Go. Vous pouvez augmenter la taille depuis votre panneau.
Combien cela coûtera-t-il par mois ?
Cette taille coûte environ $6 par mois (TVA incluse), et hors de Turquie, vous payez en dollars américains. Le trafic est illimité.
Dois-je transférer un domaine acheté chez Vercel ?
Non. La documentation de Vercel traite l'enregistrement et le DNS séparément. Modifier l'enregistrement A chez Vercel suffit, et votre enregistrement remplace ceux par défaut.
Comment fonctionnent les mises à jour après la migration ?
Avec un webhook, git push compile et publie chaque version. Si l'une se passe mal, la page Rollback de Coolify vous ramène à une image antérieure.
Puis-je migrer sans déplacer la base de données ?
Oui, et c'est l'ordre le moins risqué. Déplacez d'abord l'application, la base de données plus tard.
Commentaires0
Pas encore de commentaire
Soyez le premier à partager votre avis.
Veuillez vous connecter ou vous inscrire pour laisser un commentaire.