Desplegar Next.js sin VPS: Railway, Render o Droplet

Desplegar Next.js sin VPS: Railway, Render o Droplet

Evita SSH y nginx para un side project Next.js. Compara Railway, Render, Vercel y un VPS, y despliega desde Git tras minificar los assets en el navegador.

18.09.2026
8 min de lectura
Compartir este artículo:
Next.js
Railway
Alojamiento
DevOps
Tutorial

La app está lista. Falta una URL.

Un next dev local no es producción. Alquilar un VPS es SSH, un process manager, TLS y una noche con nginx. Para muchos side projects basta Git de entrada y HTTPS de salida — el trabajo de un PaaS tipo Heroku. Esta guía compara ese camino (ejemplo: Railway) con Vercel, Render y un droplet clásico, para alojar una app Next.js sin convertirte en sysadmin.

Una URL HTTPS pública sin administrar una caja Linux
Deploys desde Git en lugar de scp y systemd a mano
PaaS vs Vercel vs VPS, según el trabajo real
Minificar JS/CSS y lint de Dockerfiles en el navegador antes de enviar
Alternativas honestas — Railway no es el único PaaS

Cuándo el VPS es trabajo de más

Lo que un PaaS quita de verdad

La plataforma construye desde el repo, lanza el proceso, termina TLS y reinicia si cae. Sigues dueño de las env vars, la factura y la madurez de la app. Ya no parcheas Ubuntu.

Mejoras

Sin baile de claves SSH para una demo de fin de semana
URLs de preview por rama en la mayoría de PaaS
Factura por uso en vez de un Droplet de 6 $/mes olvidado encendido
Un proyecto puede juntar la app Next.js, un worker y una base pequeña
Lo que no quita

Sigue haciendo falta minificar y comprimir assets, dejar los secretos fuera de Git y mirar Core Web Vitals. Un PaaS no sustituye gzip y Brotli en origen o un CDN: solo deja de escribir el bloque nginx tú.

Beneficios SEO

El TTFB sigue dependiendo de la app y la región, no del logo del dashboard
El JS/CSS minificado sigue recortando transferencia — el PaaS no hace tree-shake por ti
Un VPS barato puede ganar a un cold start serverless; mide, no asumas

Publicar una app Next.js en Railway desde Git

Camino mínimo (sin Dockerfile)

Railway detecta Node (Nixpacks/Railpack). Una app Next.js estándar con script start basta. Prefiere GitHub a un zip. El enlace de invitación de arriba te da ahora 20 $ de créditos a ti al registrarte — es la oferta de Railway, no un cupón FastMinify, y el importe puede cambiar.

1. Un repo que buildea sin CI mágica

package.json con build y start (o next start). Lockfile commiteado. Nada de secretos en .env de Git — variables en la UI de Railway.

2. Crear el proyecto desde GitHub

Proyecto nuevo en Railway → deploy from GitHub → elige el repo. El primer deploy suele fallar por una env var que falta; es normal. Añade DATABASE_URL o las claves y vuelve a desplegar.

3. Dominio generado, luego el tuyo

La URL *.up.railway.app confirma que la app arranca. Dominio propio después. TLS lo emiten ellos.

4. Mira la primera factura, no el screenshot

Hobby incluye un crédito de uso pequeño; Pro, más. CPU, RAM y egress fuera del plan se facturan por segundo. Un servicio parado no cuesta. Lee los precios de Railway antes de dejar un Node gordo 24/7.

Checklist

El script start funciona en local con NODE_ENV=production
Las env vars están en el servicio, no hardcodeadas en el Dockerfile
El proceso escucha el PORT que inyecta Railway
No subas .env — valida la sintaxis con el checker .env online si hace falta
Cuándo sí hace falta un Dockerfile

Dockerfile si Nixpacks se equivoca, falta un paquete de sistema, o la imagen ya es la fuente de verdad. Líntalo en el navegador: linter de Dockerfile en línea (reglas DL estilo Hadolint, no un build). Combínalo con el formateador de Dockerfile.

Fija la imagen base

Evita FROM node:latest (DL3007). Pin de tag de distro. Railway construye ese Dockerfile si está en la raíz del repo.

Escucha PORT

No dejes 3000 a fuego si la plataforma inyecta PORT. Next.js lo respeta con next start -p $PORT o equivalente.

Errores que queman el primer deploy PaaS

Secretos horneados en la imagen

Un ENV AWS_SECRET= en el Dockerfile o un .env commiteado se filtra en logs y layers. Las variables de Railway existen para que la imagen sea genérica.

A tener en cuentaValida la sintaxis .env con el checker FastMinify; nunca pegues tokens reales en un textarea público.

Creer que los defaults de Vercel viajan

En Vercel el routing serverless de Next.js viene impuesto. En Railway sueles correr next start como proceso largo. output: 'standalone' ayuda. El middleware Edge solo de Vercel no aparece por arte de magia.

A tener en cuentaHaz un build de producción en el portátil antes del primer push PaaS.

Dejar un bundle de debug enorme

Un PaaS no minifica tu JS de cliente. Next lo hace para la app; no para un widget.js en public/. Para esos restos, el minificador de JavaScript en línea.

A tener en cuentaMide la transferencia en la URL de Railway, no solo en localhost.

Antes de pulsar deploy

Assets y configs en el navegador

FastMinify se queda en la pestaña — útil cuando el repo no está clonado en esta máquina. Minifica el CSS suelto, lintea el Dockerfile, revisa Compose si Docker sigue en local.

Minificar JS/CSS que no pasa por next build
Lintear reglas DL del Dockerfile antes de que Railway construya la imagen
Validar docker-compose.yml si mantienes un stack local
Secretos de prod ni en Git ni en herramientas online
Gasto y olvido

Railway factura el uso por encima de los créditos del plan. Un servicio olvidado con un heap Node de 2 GB es la sorpresa. Para los servicios que no uses. Misma familia de error que un Droplet que nunca destruyes — otro dashboard.

Alerta de gasto en la cuenta Railway
Apaga previews que ya no uses
No pongas scrapers ni navegadores de CI en el mismo servicio que la app Next.js

PaaS vs Vercel vs VPS

Elige por el trabajo, no por el tuit

Vercel es el menor esfuerzo para un frontend Next.js. Un VPS gana si quieres kernel a medida, correo, SSH. Railway está en medio: deploy Git, factura por uso, sitio para un worker y una base junto a la app.

Si necesitas

format:Frontend Next.js, previews, Edge
validate:App + worker + DB pequeña, una factura
minify:SSH root, nginx propio, correo, GPU

Empieza por

format:Vercel (u otra cloud de frontend)
validate:Railway o Render
minify:Droplet DigitalOcean / otro VPS

Railway no es la única respuesta

Mismo problema, otros compromisos

Un mapa, no un ranking. Precios y free tiers cambian — lee la página del vendor.

Vercel

El equipo de Next.js. Mejor DX para App Router, previews y Edge. Encaja peor si necesitas un worker largo o una base clásica en el mismo proyecto sin más vendors.

Ventajas:
Defaults de Next.js, URLs de preview, add-ons de analítica
El modelo mental de la doc de Next aplica
Inconvenientes:
Las apps multi-servicio piden más productos
El gasto de ancho de banda / invocaciones puede sorprender

Render

Deploys Git, web services, Postgres, workers. Primo de Railway. Quédate con el dashboard donde ya tienes cuenta.

Ventajas:
Pareja familiar web service + DB
Sitios estáticos y crons en la misma cuenta
Inconvenientes:
Cold starts históricos en algunos tiers bajos
No es específico de Next.js — tú pones el start

Droplet DigitalOcean (o App Platform)

Un Droplet es un VPS: instalas Node, Caddy o nginx, certbot, la caja es tuya. App Platform es el PaaS de DigitalOcean. Mejor si ya piensas en SSH y quieres una IPv4 propia.

Ventajas:
Precio de VM predecible si la app sigue siendo minúscula
Control total del process manager y el reverse proxy
Inconvenientes:
Tú parcheas el OS y depuras TLS
Excesivo para una demo Next.js de dos rutas

FastMinify antes de la primera URL de prod

Minificar lo que Next.js no ve

El build de producción de Next.js minifica el JS de la app. No un widget.js copiado a public/ ni un snippet de CMS. Usa el minificador de JavaScript en línea y el minificador CSS en línea. Archivo de vendor ilegible: desminificador de JavaScript en línea.

Minificar JS/CSS pegado de un CDN o un tema legacy
Desminificar un stack de prod sin source maps
100 % navegador — el host de deploy no ve el pegado
Docker y env junto a la app

Si Railway (u otro) construye un Dockerfile, lintéalo primero. Compose en local: validar Docker Compose en línea. Revisa archivos .env por claves duplicadas antes de copiar nombres a la UI del PaaS. Todo está en el hub de herramientas DevOps en línea.

Lint Dockerfile estilo Hadolint (subconjunto DL, no docker build)
Comprobaciones de estructura Compose — no la spec completa
Solo sintaxis .env — no un escáner de secretos

Publica la URL, deja el VPS para más adelante

Si el trabajo es un side project Next.js y quizá un worker, un PaaS cuesta menos noches que un Droplet. Railway es el ejemplo detallado (enlace de afiliado). Vercel sigue siendo el default si solo quieres el frontend Next.js. Un VPS sigue siendo la opción tozuda cuando quieres SSH. Minifica restos y lintea Dockerfiles en FastMinify en cualquier caso — gratis y local.

Prepara los assets y despliega donde hayas elegido

Vercel para Next-only, Railway/Render para app+worker+DB, VPS para SSH
Nunca secretos en Git; la UI de env del PaaS existe por eso
Minificar restos de public/; Next ya minifica el bundle de la app
Fijar bases Docker si entregas un Dockerfile
Leer la página de precios del host — créditos e idle cambian
Compartir este artículo
Compartir este artículo: