JavaScript · Node.js 22.18.0

Hosting JavaScript 24/7

Sube un bot en discord.js, una API Express o un worker de cola y déjalo corriendo. La plataforma instala las dependencias del package.json en el build, ejecuta tu script de start en un contenedor aislado y reinicia el proceso sola, en cualquier plan, cuando se cae.

Origen

Quién diseñó JavaScript

Netscape necesitaba un script en el navegador que no fuera Java: algo pequeño para validar un formulario y tocar la página. Brendan Eich escribió la primera versión en mayo de 1995, en unos diez días — primero Mocha, luego LiveScript, y JavaScript cuando marketing quiso el nombre junto a Sun. Entró en Netscape Navigator 2.0 a finales de ese año. En 1997 ECMA estandarizó el lenguaje; el núcleo estrecho de aquellos diez días sigue siendo lo que ejecuta el motor.

Brendan Eich

Jonas Strandell · CC BY 2.0

El pegamento del navegador

No nació para sustituir a Java: nació para validar un formulario, reaccionar al clic y atar la página. Un archivo de texto que ejecuta el motor del browser.

El lenguaje que eligió la web

Cuando todo navegador habló JavaScript, el mismo idioma salió del cliente y fue al servidor, a la app y al script. El propósito original era el documento; el alcance vino después.

Dinámica, sin compilador

Tipos flojos, prototipos, funciones de primera clase. Eich tenía diez días: el núcleo quedó estrecho a propósito, para un intérprete en el navegador, no para un ciclo de build.

Lo que la plataforma hace por un proyecto Node.js

Casi todo funciona sin configuración.

npm install en el build

Las dependencias del package.json se instalan cuando se construye la imagen, no en cada arranque. Un fallo de instalación aparece en el log del build, dentro del techo de 5 minutos, en vez de convertirse en un crash en producción.

Tres versiones de Node.js

24.5.0, 22.18.0 (recomendada) y 20.18.0. Cambiar es modificar VERSION en el vertracloud.config y volver a desplegar — no hay imagen que elegir ni Dockerfile que mantener.

MAIN y START deciden el proceso

Sin START, la plataforma ejecuta el archivo al que apunta MAIN. Con START=npm start, usa el script del package.json — así arrancan sin apaños los proyectos con flags de runtime o con un paso previo de bundle.

Auto-reinicio con freno

El proceso que cae se reinicia solo, en cualquier plan: una excepción no capturada no tumba el servicio. Si se rompe 5 veces en 10 minutos, el auto-reinicio se desactiva durante 24 horas, y el último stack trace queda guardado en el log de crash.

Lo que la gente ejecuta en Node.js aquí

La mitad de lo que sube aquí es bot; la otra mitad responde HTTP. Es el package.json el que decide cuál.

Bots de Discord y Telegram

discord.js, telegraf y whatsapp-web.js corren como proceso en segundo plano, sin puerto HTTP. El token va en las variables de entorno del panel, nunca en un .env dentro del zip.

APIs Express, Fastify y Nest

Publica la aplicación para recibir un subdominio en vertraweb.app con TLS. El servidor debe escuchar en 0.0.0.0 y en el puerto declarado en PORT — atarlo a localhost devuelve timeout.

Workers de cola y cron

Un consumidor de BullMQ, una rutina con node-cron, una sincronización periódica: procesos largos que solo necesitan mantenerse en pie. El auto-reinicio cubre la caída ocasional de red.

Automatización con base gestionada

Crea un MongoDB 8.0.11 o un Redis 7 en el mismo panel y conéctate con mongoose o ioredis por el host interno. TLS es obligatorio en todas las bases, y el certificado y la contraseña se pueden descargar en el panel.

Versiones de Node.js disponibles

La 22.18.0 es la recomendada; la 24.5.0 es la más reciente y la 20.18.0 cubre a quien aún depende de un módulo nativo antiguo. Declara VERSION en el vertracloud.config para fijar una.

Versiónvertracloud.configEstado
Node.js 24.5.0VERSION=24Más reciente
Node.js 22.18.0VERSION=22Recomendada
Node.js 20.18.0VERSION=20

La configuración entera

El vertracloud.config es un archivo INI opcional en la raíz del proyecto. MAIN apunta al archivo de entrada; START lo cambia por un script del package.json; BUILD se ejecuta una vez por despliegue antes de que la app inicie (ej. npm run build, para quien usa un framework como Next.js); VERSION elige el Node.js; MEMORY define el techo de RAM.

vertracloud.config
NAME=meu-bot
MAIN=index.js
START=npm start
VERSION=22
MEMORY=512

Un plan para cada etapa del proyecto

La memoria y el almacenamiento cambian según el plan; el lenguaje, no. Compara lo que abre cada plan y elige el que le sirve al proyecto hoy.

Comparar planes

También corre aquí

Misma plataforma, mismo deploy, otro stack.

Preguntas frecuentes sobre hosting Node.js

Los errores que más aparecen en el primer despliegue de un proyecto Node.js.

La aplicación arranca y se rompe con Cannot find module. ¿Qué pasó?

El paquete no está en dependencies del package.json — normalmente quedó en devDependencies, que no se instala en el build. Mueve la dependencia de ejecución a dependencies y vuelve a desplegar.

El log dice missing script: start. ¿Cómo lo resuelvo?

Declaraste START=npm start, pero el package.json no tiene ese script. Añade "start": "node index.js" en scripts, o quita el START y deja que MAIN apunte al archivo de entrada.

Recibo Cannot use import statement outside a module o ERR_REQUIRE_ESM.

Son las dos caras del mismo conflicto de formato. Para usar import, añade "type": "module" al package.json; si un paquete solo publica ESM y tu código es CommonJS, migra a ESM o fija una versión antigua, como node-fetch@2.

El build falla con ERESOLVE o con un error de módulo nativo.

Para el ERESOLVE, crea un .npmrc en la raíz con legacy-peer-deps=true. Para un módulo nativo como better-sqlite3, no envíes node_modules en el zip: la plataforma compila para Linux y el binario de tu máquina no sirve.

¿Se lee el .env de mi proyecto?

No. La plataforma no carga archivos .env: las variables se registran en la pestaña de variables de entorno del panel y se inyectan en el contenedor. Es lo que evita subir el token del bot dentro del zip.

Sube tu proyecto Node.js hoy

Crea la cuenta, envía un zip sin node_modules o conecta el repositorio de GitHub, y sigue el npm install en la terminal del panel.

Crear cuenta