Bun · 1.2.23

Hosting Bun 24/7

Bun es runtime, gestor de paquetes y ejecutor de TypeScript en el mismo binario — así que el build tiene menos etapas. La plataforma ejecuta bun install cuando construye la imagen y corre el comando declarado en START.

Origen

Quién diseñó Bun

Jarred Sumner anunció Bun en 2021 y la primera versión pública llegó en 2022: un runtime de JavaScript y TypeScript escrito en Zig, usando JavaScriptCore de Apple, con bundler y gestor de paquetes en el mismo ejecutable. La tesis era dejar de encadenar Node, npm, un empaquetador y tsc para un ciclo corto. El archivo TypeScript corre sin un compilador aparte — la familia del lenguaje es JavaScript, con otro motor.

Jarred Sumner

X · @jarredsumner

Un ejecutable en lugar de cinco

Runtime, bundler e instalador de paquetes en el mismo binario. El propósito era el ciclo corto: dejar de encadenar Node, npm, un empaquetador y tsc para un script que cambia cada semana.

Hecho para arrancar rápido

Zig y JavaScriptCore en lugar de la stack clásica de Node. La diferencia que vendía Sumner era el tiempo hasta que el proceso escucha el puerto, no un lenguaje nuevo.

TypeScript en el mismo motor

El archivo .ts corre sin un compilador aparte. Sigue siendo la familia JavaScript — otro runtime, el mismo idioma de la página y del servidor.

Lo que la plataforma hace por un proyecto Bun

Un solo binario en el contenedor: no hay tsc aparte, ni npm al lado, ni etapa de bundle obligatoria.

bun install en el build

Las dependencias se resuelven cuando se construye la imagen, respetando el lockfile del repositorio. Menos etapas en el build es más holgura dentro del techo de 5 minutos que tiene todo despliegue aquí.

TypeScript sin paso de build

MAIN=index.ts y START=bun run index.ts bastan: el propio runtime ejecuta .ts y .tsx. No hay dist que generar, ni tsconfig obligatorio para arrancar, ni ejecutor aparte que instalar.

Versión actual, sin configurar nada

1.2.23 es la recomendada y la más reciente. Sin VERSION en el vertracloud.config, la app usa la recomendada; para fijarla, declara VERSION=1.2.23.

Auto-reinicio con freno

El proceso que cae se reinicia solo, en cualquier plan: una promesa rechazada sin catch 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 Bun aquí

La ganancia aparece donde el ciclo es corto: un script que cambia cada semana, una API pequeña, un worker que redespliegas desde el editor.

APIs con Bun.serve, Elysia y Hono

Publica la aplicación y recibe un subdominio en vertraweb.app con TLS. Bun.serve devuelve el puerto que abrió: comprueba que sea el declarado en PORT y que el host sea 0.0.0.0, porque en localhost la petición externa da timeout.

Bots y procesos en segundo plano

discord.js corre en Bun como proceso sin puerto HTTP. El token va en las variables de entorno del panel, nunca en un .env dentro del zip.

Scripts y rutinas en TypeScript

Un recolector, una sincronización, una tarea programada: el archivo .ts es el punto de entrada, sin etapa intermedia entre lo que editas y lo que corre en el contenedor.

Estado y caché en una base gestionada

Crea un Redis 7 o un PostgreSQL 17 en el panel y conéctate con el cliente que ya trae el propio Bun. TLS es obligatorio: el certificado y la contraseña salen listos del panel, y el script guarda ahí su estado entre una ejecución y otra.

Versiones de Bun disponibles

1.2.23 es la recomendada y también la más reciente. Para fijarla, declara VERSION en el vertracloud.config.

Versiónvertracloud.configEstado
1.2.23VERSION=1.2.23RecomendadaMás reciente

La configuración entera

El vertracloud.config es un archivo INI opcional en la raíz del proyecto. MAIN apunta al archivo de entrada en TypeScript; START es el comando del runtime; BUILD se ejecuta una vez por despliegue antes de que la app inicie; VERSION elige el Bun; MEMORY define el techo de RAM.

vertracloud.config
NAME=minha-api
MAIN=index.ts
START=bun run index.ts
VERSION=1.2.23
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 Bun

Cinco preguntas que aparecen en el primer despliegue de un proyecto Bun.

¿Tengo que compilar el TypeScript antes de subir?

No. Bun ejecuta .ts directamente: apunta el MAIN al archivo y deja el START como bun run index.ts. Si tu proyecto ya genera una salida empaquetada, también funciona — la carpeta de build no se elimina del zip.

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

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

¿Puedo enviar node_modules en el zip para ganar tiempo?

No lo envíes. Un módulo nativo compilado en tu máquina no corre en el contenedor, y la plataforma compila para Linux durante el build. node_modules es además lo que más infla el paquete, que tiene un límite de 100 MB.

La API arranca, pero el subdominio no responde.

Dos causas. El servidor debe escuchar en 0.0.0.0 y en el puerto declarado en PORT; y la aplicación debe estar publicada en la web, lo que exige 512 MB de RAM y está disponible a partir del plan Pro.

¿Puedo cambiar la versión de Bun después de subir?

Hoy Bun se ejecuta en la 1.2.23. Cuando otras versiones entren al catálogo, basta cambiar VERSION en el vertracloud.config y volver a desplegar: la imagen se reconstruye, bun install se ejecuta de nuevo y el contenedor se reinicia al final del proceso.

Sube tu proyecto Bun hoy

Crea la cuenta, envía un zip con el package.json y tu archivo .ts, o conecta el repositorio de GitHub: el bun install aparece línea a línea en la terminal del panel.

Crear cuenta