Déployer Next.js sans VPS : Railway, Render ou Droplet

Déployer Next.js sans VPS : Railway, Render ou Droplet

Évitez SSH et nginx pour un side project Next.js. Comparez Railway, Render, Vercel et un VPS, puis déployez depuis Git après avoir minifié les assets dans le navigateur.

18.09.2026
8 min de lecture
Partager cet article:
Next.js
Railway
Hébergement
DevOps
Tutoriel

L'app est finie. Il manque une URL.

Un next dev local n'est pas la production. Louer un VPS, c'est SSH, un process manager, le TLS, et une nuit sur nginx. Pour beaucoup de side projects, il suffit de Git en entrée et HTTPS en sortie — le job d'un PaaS façon Heroku. Ce guide compare ce chemin (exemple suivi : Railway) avec Vercel, Render et un droplet classique, pour héberger une app Next.js sans devenir sysadmin.

Une URL HTTPS publique sans administrer une box Linux
Des déplois depuis Git plutôt que scp et systemd à la main
PaaS vs Vercel vs VPS, selon ce que vous allez vraiment faire
Minifier JS/CSS et linter les Dockerfiles dans le navigateur avant d'expédier
Des alternatives honnêtes — Railway n'est pas le seul PaaS

Quand le VPS est du travail en trop

Ce qu'un PaaS enlève vraiment

Une plateforme construit depuis le dépôt, lance le process, termine le TLS et redémarre en cas de crash. Vous gardez les variables d'environnement, la facture, et le niveau de maturité de l'app. Vous ne patchiez plus Ubuntu.

Améliorations

Plus de ballet de clés SSH pour une démo du week-end
Des URLs de preview par branche sur la plupart des PaaS
Une facture à l'usage plutôt qu'un Droplet à 6 $/mois oublié allumé
Un projet peut coller l'app Next.js, un worker et une petite base
Ce qu'il n'enlève pas

Il faut toujours minifier et compresser les assets, garder les secrets hors Git, et regarder les Core Web Vitals. Un PaaS ne remplace pas gzip et Brotli à l'origine ou un CDN — vous n'écrivez juste plus le bloc nginx vous-même.

Bénéfices SEO

Le TTFB dépend encore de l'app et de la région, pas du logo du dashboard
Le JS/CSS minifié réduit toujours le transfert — le PaaS ne tree-shake pas pour vous
Un petit VPS peut battre un cold start serverless ; mesurez, ne supposez pas

Envoyer une app Next.js sur Railway depuis Git

Chemin minimal (sans Dockerfile)

Railway détecte Node (Nixpacks/Railpack). Une app Next.js standard avec un script start suffit. Préférez GitHub à un zip. Le lien d'invitation ci-dessus ajoute actuellement 20 $ de crédits pour vous à l'inscription — c'est l'offre Railway, pas un coupon FastMinify, et le montant peut changer.

1. Un dépôt qui build sans CI magique

package.json avec build et start (ou next start). Lockfile commité. Aucun secret dans .env Git — variables dans l'UI Railway.

2. Créer le projet depuis GitHub

Nouveau projet Railway → deploy from GitHub → choisir le dépôt. Le premier deploy casse souvent sur une env var manquante ; c'est normal. Ajoutez DATABASE_URL ou les clés, redéployez.

3. Domaine généré, puis le vôtre

L'URL *.up.railway.app confirme que l'app boot. Domaine custom ensuite. Le TLS est émis pour vous.

4. Regarder la première facture, pas le screenshot

Hobby inclut un petit crédit d'usage ; Pro davantage. CPU, RAM et egress hors forfait sont facturés à la seconde. Un service arrêté ne coûte rien. Lisez les tarifs Railway avant de laisser un gros process Node tourner 24/7.

Checklist

Le script start marche en local avec NODE_ENV=production
Les env vars sont sur le service, pas en dur dans le Dockerfile
Le process écoute le PORT injecté par Railway
Ne commitez pas .env — validez la syntaxe avec le checker .env en ligne si besoin
Quand un Dockerfile est utile

Dockerfile si Nixpacks se trompe, s'il manque un paquet système, ou si l'image est déjà la source de vérité. Lintez-le dans le navigateur : linter Dockerfile en ligne (règles DL style Hadolint, pas un build). Couplez avec le formateur Dockerfile.

Épinglez l'image de base

Évitez FROM node:latest (DL3007). Tag de distro piné. Railway build ce Dockerfile s'il est à la racine.

Écoutez PORT

Ne figez pas 3000 en production si la plateforme injecte PORT. Next.js le respecte avec next start -p $PORT ou équivalent.

Erreurs qui brûlent un premier deploy PaaS

Secrets cuits dans l'image

Un ENV AWS_SECRET= dans le Dockerfile ou un .env commité fuite dans les logs et les layers. Les variables Railway existent pour que l'image reste générique.

À retenirValidez la syntaxe .env avec le checker FastMinify ; ne collez jamais de tokens live dans un textarea public.

Croire que les défauts Vercel voyagent

Sur Vercel, le routing serverless Next.js est imposé. Sur Railway vous lancez en général next start en process long. output: 'standalone' aide. Le middleware Edge purement Vercel n'apparaît pas par magie.

À retenirFaites un build production sur le laptop avant le premier push PaaS.

Laisser un bundle debug énorme

Un PaaS ne minifie pas votre JS client. Next le fait pour l'app ; pas pour un widget.js dans public/. Pour ces restes, le minificateur JavaScript en ligne.

À retenirMesurez le transfert sur l'URL Railway, pas seulement en localhost.

Avant de cliquer sur deploy

Assets et configs dans le navigateur

FastMinify reste dans l'onglet — utile quand le dépôt n'est pas cloné sur cette machine. Minifiez le CSS restant, lintez le Dockerfile, vérifiez Compose si Docker tourne encore en local.

Minifier le JS/CSS qui ne passe pas par next build
Linter les règles DL du Dockerfile avant que Railway builde l'image
Valider docker-compose.yml si vous gardez une stack locale
Secrets de prod ni dans Git ni dans les outils en ligne
Facture et oubli

Railway facture l'usage au-delà des crédits du plan. Un service oublié avec un tas Node de 2 Go, c'est la surprise. Arrêtez les services inutiles. Même famille d'erreur qu'un Droplet jamais détruit — autre dashboard.

Alerte de spend dans le compte Railway
Couper les previews que vous n'utilisez plus
Ne pas coller scrapers ou navigateurs de CI sur le même service que l'app Next.js

PaaS vs Vercel vs VPS

Choisir selon le job, pas le tweet

Vercel est le moindre effort pour un frontend Next.js. Un VPS gagne si vous voulez un noyau custom, du mail, du SSH. Railway est au milieu : deploy Git, facture à l'usage, de la place pour un worker et une base à côté de l'app.

Si vous avez besoin de

format:Frontend Next.js, previews, Edge
validate:App + worker + petite DB, une facture
minify:SSH root, nginx custom, mail, GPU

Commencez par

format:Vercel (ou cloud frontend équivalent)
validate:Railway ou Render
minify:Droplet DigitalOcean / autre VPS

Railway n'est pas la seule réponse

Même problème, autres compromis

Une carte, pas un classement. Tarifs et free tiers bougent — lisez la page vendeur avant de signer.

Vercel

L'équipe Next.js. Meilleur DX App Router, previews, Edge. Moins naturel pour un worker long ou une base classique dans le même projet sans vendeurs en plus.

Avantages :
Défauts Next.js, URLs de preview, add-ons analytics
Le modèle mental des docs Next s'applique
Inconvénients :
Les apps multi-services demandent d'autres produits
Le spend bande passante / invocations peut surprendre

Render

Deploys Git, web services, Postgres, workers. Cousin de Railway. Prenez le dashboard où vous avez déjà un compte.

Avantages :
Couple web service + DB familier
Sites statiques et crons dans le même compte
Inconvénients :
Cold starts historiques sur certains palier bas
Pas spécifique Next.js — vous apportez la commande start

Droplet DigitalOcean (ou App Platform)

Un Droplet est un VPS : vous installez Node, Caddy ou nginx, certbot, vous possédez la box. App Platform est le PaaS DigitalOcean. Mieux si vous pensez déjà en SSH et voulez une IPv4 à vous.

Avantages :
Prix VM prévisible si l'app reste minuscule
Contrôle total du process manager et du reverse proxy
Inconvénients :
Vous patchiez l'OS et déboguez le TLS
Excessif pour une démo Next.js à deux routes

FastMinify avant la première URL de prod

Minifier ce que Next.js ne voit pas

Le build production Next.js minifie le JS de l'app. Pas un widget.js copié dans public/, ni un snippet CMS. Utilisez le minificateur JavaScript en ligne et le minificateur CSS en ligne. En cas de fichier vendeur illisible : déminificateur JavaScript en ligne.

Minifier du JS/CSS collé depuis un CDN ou un thème legacy
Déminifier une stack prod sans source maps
100 % navigateur — l'hébergeur ne voit pas le collage
Docker et env à côté de l'app

Si Railway (ou un autre) build un Dockerfile, lintez-le d'abord. Compose en local : valider Docker Compose en ligne. Vérifiez les fichiers .env pour les clés en double avant de recopier les noms dans l'UI PaaS. Tout ça est sur le hub outils DevOps en ligne.

Lint Dockerfile style Hadolint (sous-ensemble DL, pas docker build)
Contrôles de structure Compose — pas la spec complète
Syntaxe .env seulement — pas un scanner de secrets

Envoyez l'URL, gardez le VPS pour plus tard

Si le job est un side project Next.js plus éventuellement un worker, un PaaS coûte moins de soirées qu'un Droplet. Railway est l'exemple détaillé (lien affilié). Vercel reste le défaut pour le seul frontend Next.js. Un VPS reste le bon choix têtu quand vous voulez du SSH. Minifiez les restes et lintez les Dockerfiles dans FastMinify dans tous les cas — gratuit et local.

Préparez les assets, puis déployez où vous avez choisi

Vercel pour du Next-only, Railway/Render pour app+worker+DB, VPS pour le SSH
Jamais de secrets dans Git ; l'UI d'env du PaaS existe pour ça
Minifier les restes de public/ ; Next minifie déjà le bundle app
Piner les bases Docker si vous livrez un Dockerfile
Lire la page tarifs de l'hôte — crédits et idle bougent
Partager cet article
Partager cet article: