Todo legible con cat
La configuración de una app son 16 líneas de clave='valor'. Sin formato binario, sin estado oculto, sin base de datos de control.
v1.0.0 MIT Ubuntu 24.04 LTS
Orbit despliega tus webs en tu propio VPS con un comando. Sin Vercel, sin Netlify, sin factura sorpresa a fin de mes.
Eliges un repo de tu GitHub desde una lista, escribes el dominio, y en un par de minutos la web está online con su certificado HTTPS. Lo que genera son vhosts de nginx y unidades de systemd: si mañana borras Orbit, tus webs siguen online.
01 El problema
Y cada vez que quieres publicar una web, se te va la tarde entre configurar nginx a mano, acordarte de cómo iba certbot, escribir un servicio de systemd y rezar para que el build no te tumbe la versión que ya estaba funcionando.
Orbit automatiza exactamente eso, y nada más. No es un PaaS, no es Kubernetes, no es un panel que haya que mantener. Es el trabajo aburrido, hecho bien y siempre igual.
02 La demo
Los comandos de orbit --help, con las salidas que documenta
el repositorio. Historial con flechas, autocompletado con Tab,
Esc para salir. No toca nada real. Escribe
help para empezar.
03 Anatomía de un despliegue
Cada versión va a su propia carpeta y hasta el final no se mueve nada. El build puede tardar dos minutos y comerse toda la RAM: durante ese rato, la web anterior sigue sirviendo con normalidad. Dale a reproducir y rómpelo a propósito.
/srv/apps/mi-web/
El punto de no retorno es el paso 5. Todo lo anterior se puede abortar sin que un visitante note nada. Todo lo posterior tiene marcha atrás automática.
04 Detección de stack
package.json.
Esta es la misma lógica que detect_stack() ejecuta en el
servidor, reimplementada aquí en JavaScript. El orden de comprobación importa: los
indicadores se solapan y el primero que coincide gana.
· ¿No sale tu stack?
Son cuatro pasos y todos ocurren en la misma función que acabas de ver funcionar aquí arriba. Si SvelteKit, Remix o Go te hacen falta hoy, probablemente estés a un PR de tenerlos.
05 Arquitectura
Configura las piezas y se aparta. Puedes borrar
/usr/local/bin/orbit mañana y tus webs seguirán online,
porque todo lo que genera son artefactos estándar. Pulsa un nodo para ver qué hace.
catLa configuración de una app son 16 líneas de clave='valor'. Sin formato binario, sin estado oculto, sin base de datos de control.
Ya está ahí, arranca al iniciar la máquina, escribe en journald con rotación y permite encerrar el proceso. Un runtime menos que mantener vivo.
Bases creadas con orbit db create, con la DATABASE_URL escrita en el .env y copia diaria a las 4:30.
06 Seguridad
No hay un modo inseguro que sea más cómodo. Pero tampoco vamos a fingir que esto aísla lo que no aísla.
ProtectSystem=strict monta todo el sistema de ficheros en
solo lectura salvo las rutas de ReadWritePaths. Una app
comprometida no puede escribir fuera de su propio directorio. Pasa el ratón por
encima de cada directiva.
Puertos 80 y 443 abiertos a todo internet.
07 La factura
Mueve los controles. Los precios son públicos y están fechados; las cuentas están a la vista y las letras pequeñas también. Orbit no siempre gana, y cuando no gana lo dice.
Orbit pierde en varias columnas de esta tabla, y las que pierde son importantes. Si necesitas aislamiento entre apps, un panel web o más de un servidor, hay herramientas mejores y están aquí abajo con su enlace.
08 Referencia
Todos aceptan el nombre de la app como argumento. Si lo omites, Orbit te deja
elegirla de una lista. dv es un atajo de
orbit: dv list funciona igual.
Nada coincide.
09 Historias de guerra
Están en el changelog porque son trampas que pueden reaparecer. Quince. Si vas a escribir Bash para producción, te las regalamos.
10 Stacks soportados
package.json y decide solo.Y si tu proyecto no encaja en ninguno, el asistente te deja definir los comandos a mano. Nunca hay adivinanza silenciosa: enseña lo que ha detectado y te deja corregirlo antes de guardar nada.
En camino · v1.2
11 Roadmap
Las fechas son intenciones, no promesas: esto lo mantiene gente en su tiempo libre. Si algo te interesa especialmente, abre un issue y dilo. El orden se ajusta según lo que la gente pida de verdad.
Cualquier propuesta pasa por aquí antes que por el código. Es el resumen más corto que existe de por qué Orbit es como es.
Cosas que Orbit no va a hacer, para que nadie pierda el tiempo proponiéndolas.
12 Instalación
En un Ubuntu 24.04 recién creado. Instala nginx, Node 22 con pnpm, PostgreSQL, PHP 8.3 FPM, Python, Certbot, GitHub CLI, UFW y fail2ban.
Verás pasar 13 pasos y un recuadro verde al final.
Un código de ocho caracteres para GitHub. Un token con permiso Zone → DNS → Edit para Cloudflare.
Repo, dominio, y el asistente hace el resto. Al terminar: ✔ mi-web desplegada → https://midominio.com
root@vps
Esto es lo que te deja install.sh en 13 pasos.
Todo son paquetes estándar de Ubuntu: si mañana borras Orbit, la máquina
sigue siendo exactamente esta.
Son las versiones que trae Ubuntu 24.04, no las últimas. Node 22 está en mantenimiento hasta abril de 2027 y PHP 8.3 en soporte de seguridad hasta diciembre de 2027. Es una elección deliberada, no un descuido: los paquetes de la distribución los parchea Canonical hasta 2029.
Probado en un VPS de OVH con 12 GB de RAM y 6 vCPU sirviendo varias webs a la vez. Debian 12 debería funcionar; no está probado.
13 Qué NO es Orbit
Nació de la frustración de desplegar webs a mano una y otra vez en el mismo VPS. Si te ahorra una tarde, ya ha cumplido su propósito.