Next.jsGenerado con IA

Deploy de aplicaciones Next.js sin Vercel: Railway, Dokploy y VPS

Guía completa para desplegar aplicaciones Next.js en alternativas como Railway, Dokploy y VPS, con ejemplos prácticos y comparativas técnicas.

Edward Díaz — Edwsystem29 de junio de 202615 min de lectura

Introducción

En el ecosistema de Next.js, Vercel es la opción predilecta para deploy, pero no la única. En este artículo exploraremos alternativas robustas como Railway, Dokploy y VPS tradicionales, adaptadas al contexto latinoamericano donde el costo y la flexibilidad son cruciales.

Requisitos previos: Node.js 18+, cuenta en GitHub/GitLab, conocimientos básicos de CLI y Docker.

1. Configuración inicial de Next.js

Comenzamos con un proyecto Next.js configurado para SSR (Server Side Rendering) y API Routes:

// next.config.js
module.exports = {
  output: 'standalone', // Crucial para Docker
  experimental: {
    serverComponentsExternalPackages: ['@prisma/client']
  }
}

Este modo standalone genera una carpeta .next/standalone autocontenida.

2. Deploy en Railway

Railway ofrece un balance perfecto entre simplicidad y control:

  • Crear proyecto en railway.app vinculando tu repositorio
  • Configurar variables de entorno directamente en el dashboard
// railway.json - Configuración de deploy
{
  "build": {
    "builder": "nixpacks",
    "config": {
      "NODE_ENV": "production"
    }
  },
  "deploy": {
    "startCommand": "node server.js"
  }
}

3. Dokploy: Autohosting con Docker

Dokploy es ideal para quienes prefieren control total con interfaz amigable:

# Dockerfile para Next.js
FROM node:18-alpine AS builder
WORKDIR /app
COPY package*.json ./
RUN npm ci
COPY . .
RUN npm run build

FROM node:18-alpine
WORKDIR /app
COPY --from=builder /app/.next/standalone ./
COPY --from=builder /app/.next/static ./.next/static
COPY --from=builder /app/public ./public

EXPOSE 3000
CMD ["node", "server.js"]

Tras construir la imagen, Dokploy permite gestionar containers con interfaz visual.

4. VPS Tradicional (AWS Lightsail/DigitalOcean)

Para proyectos con tráfico predecible, un VPS de $5/mes puede ser suficiente:

  • Configurar NGINX como reverse proxy
  • Usar PM2 para gestión de procesos
# Configuración NGINX básica
server {
  listen 80;
  server_name tudominio.com;

  location / {
    proxy_pass http://localhost:3000;
    proxy_http_version 1.1;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection 'upgrade';
    proxy_set_header Host $host;
    proxy_cache_bypass $http_upgrade;
  }
}

5. Comparativa Técnica

Tabla comparativa: Tiempo de deploy, costos promedio en LATAM, escalabilidad y dificultad de configuración.

6. Automatización con GitHub Actions

Flujo CI/CD para deploy automático en Railway:

# .github/workflows/deploy.yml
name: Deploy to Railway

on:
  push:
    branches: [main]

jobs:
  deploy:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v3
      - uses: railwayapp/action@v1
        with:
          projectId: ${{ secrets.RAILWAY_PROJECT_ID }}
          token: ${{ secrets.RAILWAY_TOKEN }}

Conclusión

Cada alternativa tiene su nicho: Railway para proyectos que escalan rápido, Dokploy para equipos que prefieren Docker sin complejidad, y VPS para aplicaciones estables con presupuesto ajustado. La decisión depende de tus necesidades específicas de escalabilidad, control y costo.

¿Te fue útil este artículo?

Déjame tu email y te aviso cuando publique nuevos artículos técnicos.

Deploy de aplicaciones Next.js sin Vercel: Railway, Dokploy y VPS — Edwsystem Blog | Edwsystem