Fransys

Déployer Next.js en production, hors de Vercel

Hors de Vercel, Next.js garde toutes ses fonctions. Il lui faut un conteneur, ses fichiers statiques, sharp pour les images et, dès deux instances, un cache partagé. Vous posez ça dans votre dépôt, Fransys déploie à chaque push, sans YAML.

Sans carte bancaire, sans engagement.

Schéma de la stackNext.js
01

Votre dépôt Next.js

02
  1. Conteneur Next.js
  2. Redis
  3. Base de données
  4. Stockage objet
03

Kubernetes, monté et opéré par Fransys

04

Le cloud européen choisi Scaleway · OVHcloud · Hetzner · Outscale

Ce que Vercel réglait pour vous

La documentation de Next.js est claire : un serveur Node.js ou un conteneur Docker prend en charge toutes ses fonctions. Ce que Vercel réglait sans vous le demander devient votre configuration : l’image, les fichiers statiques, l’optimisation d’images, le cache entre instances, l’arrêt propre. Elle tient dans votre dépôt, et la plateforme opère le reste.

  • 1Dockerfile à la racine du dépôt
  • 1geste de déploiement : git push
  • 0ligne de YAML à écrire

Next.js en production, point par point

  1. Le conteneur

    output: 'standalone' produit un dossier .next/standalone qui se déploie sans installer node_modules. Votre Dockerfile, à la racine du dépôt, en fait l’image du bloc Docker.

  2. Les fichiers statiques

    Ce serveur minimal ne copie ni public ni .next/static. Votre Dockerfile les place à côté du dossier standalone, sinon ils manquent en production.

  3. Les images

    Avec le mode standalone, la documentation demande d’installer sharp pour l’optimisation d’images. Il entre dans l’image, avec vos dépendances.

  4. Le cache partagé

    Par défaut, chaque instance garde son cache en mémoire. Dès la deuxième, un cache handler et un bloc Redis partagent les entrées et les tags. Les identifiants sont injectés dans l’application.

  5. Les variables

    Les NEXT_PUBLIC_ sont figées au build : elles doivent exister quand l’image se construit. Les autres se règlent dans le bloc, hors du dépôt et hors de l’image.

  6. L’arrêt propre

    À chaque mise à jour, Kubernetes envoie SIGTERM à l’ancienne instance. Next.js finit alors les requêtes en cours avant de s’arrêter, et sa documentation recommande de lui laisser 10 à 30 secondes.

Du push à la mise en ligne

  1. git push

    Le commit part sur la branche configurée.

  2. build

    L’image est construite depuis votre Dockerfile, avec vos variables publiques.

  3. verify

    Le cluster lance la nouvelle image, et la plateforme vérifie qu’elle répond.

  4. live

    La nouvelle version reçoit le trafic. En cas d’échec, retour automatique à la précédente.

Avec votre agent, ou à la main

Avec votre agentexemple

Déploie mon app Next.js en mode standalone, avec un cache Redis partagé.

  1. L'agent lit votre dépôt et prépare le plan : les blocs, chacun avec son prix.
  2. Une personne de l'équipe valide le plan.
  3. Le moteur exécute ; la nouvelle version reçoit le trafic une fois vérifiée.

Le sas, en détail

À la main

  1. Posez un bloc Docker sur le canvas, puis un bloc Redis relié à l'application.
  2. Branchez votre dépôt Git : le Dockerfile à la racine sert au build.
  3. Poussez sur la branche configurée : la version part en ligne.

Le canvas, en visite

Ce qu’on nous demande sur Next.js

Fransys a-t-il un bloc Next.js ?

Next.js passe par le bloc Docker, avec votre Dockerfile. Laravel, React, Angular et Vue ont un bloc natif ; les autres frameworks passent par ce bloc, qui a les mêmes connexions, variables, métriques et journaux.

Mes variables NEXT_PUBLIC_ ne changent pas après un redéploiement : pourquoi ?

Next.js les fige au moment du build, et l’application ne réagit plus à leurs changements ensuite. Passez-les à la construction de l’image, dans le Dockerfile ou le pipeline que Fransys ajoute à votre dépôt, et reconstruisez pour en changer une. Une valeur lue côté serveur reste dans le bloc.

Comment partager le cache entre plusieurs instances ?

Déclarez un cacheHandler et mettez cacheMaxMemorySize à 0, comme le montre la documentation de Next.js. Votre handler range les entrées dans un bloc Redis relié à l’application, qui reçoit REDIS_HOST, REDIS_PORT et REDIS_PASSWORD. Les tags invalidés se synchronisent aussi par Redis.

Et le streaming ?

Next.js le prend en charge hors de Vercel. Derrière nginx ou un proxy semblable, il demande de couper le buffering : sa documentation pose l’en-tête X-Accel-Buffering à no dans next.config.js.

Deux versions peuvent-elles cohabiter pendant une mise à jour ?

Oui, le temps de la bascule. Next.js détecte ce décalage avec deploymentId : donnez-lui l’identifiant de la version, le commit par exemple, lu dans une variable fixée au build.

Quelles versions de Next.js et de Node.js ?

Celles de votre Dockerfile : l’image de base reste votre choix. Au 2 novembre 2026, la dernière version de Next.js est la 16.4.4, et sa documentation demande Node.js 20.9 au minimum.

Pour aller plus loin : l'alternative à Vercel en Europe et le CI/CD sur Kubernetes.

Votre appli Next.js sur Fransys, par où commencer

Voyez la console en démo, à votre nom. Pour chiffrer votre appli, le plan d’infra le fait ligne par ligne, machines comprises.

Sans carte bancaire, sans engagement.

À lire sur le blog

Coût20 mars 20266 min

Heroku et Vercel deviennent trop chers : où migrer en 2026 ?

Heroku sans free tier, Vercel qui explose les factures : comparatif des alternatives européennes pour startups. Migration vers Kubernetes managé sans DevOps.

Coût13 mars 20267 min

Combien coûte vraiment un DevOps en 2026 ? (et comment limiter cette dépense)

Salaire, charges, recrutement, turnover : le coût réel d'un DevOps en France dépasse 90 000 €/an. Analyse complète et alternatives pour startups sans DevOps.

Coût9 février 202611 min

AWS vs Fransys : combien coûte vraiment votre infrastructure cloud en 2026 ?

Comparatif détaillé AWS vs Fransys sur hébergeur européen. Les prix poste par poste, et trois scénarios de startup chiffrés.