Node.js
Despliega apps y front ends de Node — Express, Next, Vite y más — con workers y pasos de build ya resueltos.
Paso a paso: Desplegar Node.js en DigitalOcean · Desplegar Node.js en Hetzner · Desplegar Node.js en Vultr · Desplegar Node.js en OVHcloud · Desplegar Node.js en Scaleway · Desplegar Node.js en UpCloud
- Start:
npm startcuandopackage.jsontiene un script start; la app debe escuchar en$PORTy0.0.0.0(HOST,BIND_ADDRESSy variables documentadas similares se definen por ti). - Packager: npm, pnpm, yarn o bun, elegido a partir de tu lockfile.
- Workers: se ofrece un script
npm run workercomo worker. - Front ends estáticos: usa en cambio un sitio estático — no necesita proceso de servidor.
- Los builds de front end grandes se ajustan automáticamente a la memoria del build server (build methods).
Paso de build
El script build de tu package.json corre antes de start sin que tengas que configurar nada — para Next.js, Nuxt, SvelteKit y frameworks similares renderizados en servidor, eso es next build/nuxt build/vite build detectado directo de tus dependencias, y el servidor arranca con el comando correspondiente a cada uno (next start, node .output/server/index.mjs…). Una app que solo produce salida estática (Gatsby, Create React App, una SPA de Vite sin más) se sirve como un build estático sin ningún proceso de servidor — consulta sitios estáticos para saltarte el servidor por completo en lugar de correr uno solo para servir archivos.
Los workers son un segundo proceso, no una segunda app
web y worker son la misma imagen, iniciada con un script distinto — un mismo código y un mismo build, varios tipos de proceso, cada uno escalado por su cuenta. Se ofrece automáticamente un script npm run worker; declara cualquier otro tú mismo:
web: npm start
worker: npm run worker
o agrega uno desde la pestaña Workers de la app sin cambiar el repositorio, y escala cualquiera desde la CLI:
railyard scale my-app worker=2
Node no tiene una convención única de queue, así que un BullMQ o un job runner similar basado en Redis solo necesita su propio script — REDIS_URL se inyecta automáticamente en cuanto ioredis, bullmq o bull es una dependencia. Consulta Workers y tareas programadas para cron.
Configuración y secretos
Todo lo que lee process.env es una variable normal: defínela en Variables, o railyard env:set my-app KEY=VALUE desde la CLI, y el mismo build corre sin cambios desde staging hasta producción — paridad dev/prod, no un bundle distinto por entorno. Apunta a una base de datos o Redis que corra como su propio servicio en el canvas con ${{redis.RAILYARD_PRIVATE_URL}} — resuelto por entorno. Consulta Variables y secretos.
Despliégalo
- Desde un repositorio: pega la URL de Git, o elígelo del selector una vez que conectes GitHub — Railyard lee
package.json, completa el comando de inicio, el packager y cualquier base de datos que declaren tus dependencias, y despliega con cada push. - Desde la CLI:
railyard create my-app https://github.com/me/my-app --addons postgres,redis, orailyard git:remote && git push railyard maindesde dentro del repositorio. - Con un clic: agrega el botón de despliegue a tu README, o publícalo en el catálogo de plantillas para que cualquiera pueda lanzarlo con sus complementos y variables ya completados.