[{"data":1,"prerenderedAt":113},["ShallowReactive",2],{"seo-verification":3,"blog-nodejs-20-fin-de-vie-migrer-vps-fr":6},{"google":4,"bing":5},"EycwPY2XMyTkVzas3n1ygeNJFGAH513qrMjfDljzsMQ","",{"id":7,"slug":8,"title":9,"excerpt":10,"readTime":11,"views":12,"isPinned":13,"publishedAt":14,"category":15,"categories":21,"featuredImage":23,"bgImage":24,"posterImage":25,"relatedSolution":23,"intro":26,"sections":27,"ctaTitle":70,"ctaBody":71,"ctaButton":72,"ctaUrl":73,"relatedPosts":74},223,"nodejs-20-fin-de-vie-migrer-vps","Node.js 20 en fin de vie : migrer votre VPS","Node.js 20 n'a plus de correctif de sécurité depuis le 30 avril 2026. Auditer vos serveurs et migrer vers Node.js 24 sans casser la production.",9,0,false,"2026-08-05T00:00:00+00:00",{"id":16,"name":17,"slug":18,"color":19,"icon":20},4,"Développement","developpement","bg-warning\u002F10 text-warning","dev",[22],{"id":16,"name":17,"slug":18,"color":19,"icon":20},null,"\u002Fblog\u002Fcovers\u002Fbg.svg","\u002Fblog\u002Fcovers\u002Fnodejs-20-fin-de-vie-migrer-vps-poster.svg","Depuis le 30 avril 2026, Node.js 20 ne reçoit plus aucun correctif, pas même de sécurité. Beaucoup de VPS et de projets d'agence tournent pourtant encore dessus : l'application répond, les tests passent, et rien ne signale que le runtime est figé. Voici comment savoir ce que vous exécutez, choisir la version cible et conduire la bascule sans interruption.",[28,32,41,44,63,67],{"type":29,"title":30,"body":31},"h2","Ce que change réellement la fin de vie de Node.js 20","Node.js suit un cycle public : une ligne paire entre en Active LTS en octobre, passe en Maintenance LTS un an plus tard, puis s'arrête. Node.js 20 est entré en Maintenance LTS le 22 octobre 2024 et a atteint sa fin de vie le 30 avril 2026. Depuis, une faille du runtime n'est plus corrigée en amont : ni dans le moteur V8, ni dans la bibliothèque TLS embarquée, ni dans le parseur HTTP. Le code tourne toujours, mais chaque vulnérabilité publiée y reste ouverte.",{"type":33,"title":34,"items":35},"ul","Ce que coûte un runtime figé",[36,37,38,39,40],"**Failles non corrigées** — les vulnérabilités publiées après le 30 avril 2026 ne recevront plus de correctif amont ; seule une montée de version les referme.","**Paquets qui décrochent** — les mainteneurs relèvent le champ `engines` de leur `package.json` vers les lignes encore supportées ; une installation neuve finit par échouer ou par vous figer sur d'anciennes versions.","**Images de base immobiles** — une image `node:20` ne reçoit plus de correctif, ni pour le runtime ni pour les paquets système en dessous ; votre analyse de vulnérabilités le signale à chaque build.","**Audits qui coincent** — un runtime en fin de vie est un risque non accepté dans les revues de sécurité et les questionnaires fournisseurs.","**Migration d'urgence** — plus l'écart grandit, plus la bascule coûte cher ; la conduire aujourd'hui est un chantier planifié, la subir après un incident ne l'est plus.",{"type":29,"title":42,"body":43},"Savoir ce que vos serveurs exécutent vraiment","`node -v` dans un shell ne dit qu'une partie de l'histoire : le binaire de votre session n'est pas forcément celui qui sert la production. Un gestionnaire de processus garde la version avec laquelle il a démarré, `nvm` en installe plusieurs par utilisateur, un `Dockerfile` fige la sienne dans un `FROM node:20`. Recensez chaque source : `pm2 jsonlist` pour les process vivants, un `grep -r 'FROM node'` sur vos Dockerfiles, le champ `engines` de chaque `package.json`, et la version épinglée en CI ou dans vos runtimes managés.",{"type":45,"title":46,"steps":47},"steps","Migrer sans casser la production",[48,51,54,57,60],{"title":49,"body":50},"Dresser l'inventaire avant de toucher au reste","Listez, application par application : la version réellement exécutée, le gestionnaire de processus, l'image de base, et les dépendances natives — `node-gyp`, `sharp`, `better-sqlite3`. Ce sont elles qui fixent le calendrier, pas votre code : un module compilé sans binaire prêt pour la nouvelle ligne bloque toute la bascule.",{"title":52,"body":53},"Choisir la version cible","Node.js 24 est en Active LTS depuis le 28 octobre 2025 et sa fin de vie est fixée au 30 avril 2028 : c'est la cible par défaut. Node.js 22, en Maintenance LTS depuis le 21 octobre 2025, est supporté jusqu'au 30 avril 2027 — un palier acceptable si une dépendance native ne suit pas encore, jamais une destination. Node.js 26 n'entre en LTS que le 28 octobre 2026 : pas en production aujourd'hui.",{"title":55,"body":56},"Rejouer la suite de tests sur la version cible","Ajoutez la version cible à la matrice de votre CI avant de retirer l'ancienne : les deux doivent passer au vert en même temps. Réinstallez à froid (`rm -rf node_modules` puis `npm ci`) pour forcer la recompilation des modules natifs : c'est là qu'apparaissent les ruptures, rarement dans les tests unitaires. Lisez les avertissements de dépréciation — ce sont les erreurs de la ligne suivante.",{"title":58,"body":59},"Basculer un service à la fois","`nvm install 24` installe la nouvelle ligne à côté de l'ancienne sans la retirer. Relancez ensuite le daemon du gestionnaire de processus (`pm2 update`) puis recréez le service (`pm2 delete` puis `pm2 start`) : un simple `pm2 restart` conserve l'interpréteur enregistré. Régénérez le script de démarrage (`pm2 startup`, `pm2 save`), puis vérifiez avec `pm2 jsonlist` que la version rapportée a changé.",{"title":61,"body":62},"Surveiller, puis nettoyer","Gardez les logs d'erreur et la courbe mémoire sous les yeux 48 heures : un changement de ligne V8 déplace le profil du ramasse-miettes plus souvent qu'il ne casse une API. Une fois la bascule confirmée, désinstallez Node.js 20 pour qu'aucun déploiement ne le rappelle par accident. Si vous préférez repartir d'un serveur propre plutôt que migrer sur place, notre guide `deployer-nodejs-vps` reprend la chaîne complète.",{"type":64,"title":65,"body":66},"tip","Épingler la version, pas seulement la migrer","Une montée de runtime est le bon moment pour resserrer ce qui l'entoure. Épinglez la version cible dans un `.nvmrc` versionné avec le code et alignez le champ `engines` de votre `package.json` : le serveur, la CI et les postes de développement cessent de diverger en silence — c'est cette dérive qui laisse un runtime en fin de vie survivre à sa propre migration. Faites tourner l'application sous un utilisateur dédié, sans droit d'écriture sur son dossier de code.",{"type":29,"title":68,"body":69},"Faire de la fin de vie un rendez-vous, pas une surprise","Le calendrier de Node.js est public : une ligne paire devient LTS en octobre, puis s'arrête trente mois plus tard, toujours un 30 avril. Node.js 22 s'arrêtera le 30 avril 2027, Node.js 24 le 30 avril 2028 : ces deux échéances peuvent entrer dès aujourd'hui dans votre calendrier d'exploitation. Récurrente et budgétée, la montée de version tient en quelques jours par an ; subie dans l'urgence, elle coûte bien davantage.","Un VPS où vous choisissez la version qui tourne","ServOrbit met à disposition des VPS Cloud où vous installez et épinglez la ligne Node.js de votre choix, migrez service par service et gardez deux versions côte à côte le temps de la bascule.","Voir les solutions développeurs","\u002Fsolutions\u002Fdeveloppeurs",[75,89,102],{"id":76,"slug":77,"title":78,"excerpt":79,"readTime":80,"views":81,"isPinned":13,"publishedAt":82,"category":83,"categories":84,"featuredImage":23,"bgImage":24,"posterImage":86,"relatedSolution":87},43,"deployer-nodejs-vps","Déployer une application Node.js sur un VPS","Déployez une application Node.js en production sur un VPS : PM2, reverse proxy Nginx, SSL Let's Encrypt et démarrage automatique au boot.",8,591,"2026-05-08T00:00:00+00:00",{"id":16,"name":17,"slug":18,"color":19,"icon":20},[85],{"id":16,"name":17,"slug":18,"color":19,"icon":20},"\u002Fblog\u002Fcovers\u002Fdeployer-nodejs-vps-poster.svg",{"categorySlug":18,"appSlug":88},"nodejs",{"id":90,"slug":91,"title":92,"excerpt":93,"readTime":80,"views":94,"isPinned":13,"publishedAt":95,"category":96,"categories":97,"featuredImage":23,"bgImage":24,"posterImage":99,"relatedSolution":100},46,"deployer-nextjs-vps","Déployer une application Next.js sur un VPS","Déployez Next.js sur un VPS : Node.js, PM2, Nginx, SSL et SSR. Guide complet pour développeurs et agences qui veulent self-héberger.",2120,"2026-05-05T00:00:00+00:00",{"id":16,"name":17,"slug":18,"color":19,"icon":20},[98],{"id":16,"name":17,"slug":18,"color":19,"icon":20},"\u002Fblog\u002Fcovers\u002Fdeployer-nextjs-vps-poster.svg",{"categorySlug":18,"appSlug":101},"nextjs",{"id":103,"slug":104,"title":105,"excerpt":106,"readTime":107,"views":12,"isPinned":13,"publishedAt":108,"category":109,"categories":110,"featuredImage":23,"bgImage":24,"posterImage":112,"relatedSolution":23},206,"php-82-fin-de-vie-checklist-migration","PHP 8.2 fin de vie : planifier la migration","PHP 8.2 devient End of Life le 31 décembre 2026. Comment auditer votre parc de sites et migrer vers PHP 8.3 ou 8.4 sans interruption.",7,"2026-08-01T00:00:00+00:00",{"id":16,"name":17,"slug":18,"color":19,"icon":20},[111],{"id":16,"name":17,"slug":18,"color":19,"icon":20},"\u002Fblog\u002Fcovers\u002Fphp-82-fin-de-vie-checklist-migration-poster.svg",1785896848540]