Saltar al contenido

Soluciones · Agentes de programación

Un VPS para OpenHands

OpenHands es un agente de programación autónomo: dele un repositorio y una tarea y edita, ejecuta, prueba y abre pull requests por su cuenta, con el modelo que elija detrás de una clave de API. Su propio README dice que la forma más potente de ejecutarlo es en un servidor en la nube, y su propia advertencia dice que el agente tiene acceso total a la máquina en la que se ejecuta. Ambas cosas apuntan a la misma respuesta: una máquina que no sea el portátil de nadie. La guía de servidor del proyecto considera que 2 vCPU y 4 GB son de sobra para un usuario; BD-8 a $12.90 al mes le da el doble por menos que las máquinas de 4 GB de otros proveedores.

Lo que necesita

Software según la documentación, tamaños etiquetados por fuente

El software y la configuración de seguridad provienen de la documentación oficial del proyecto. Cuando el proyecto no publica requisitos de hardware, los tamaños indican de quién son.

Del README, SELF_HOSTING.md y la documentación de OpenHands

  • «2 vCPU / 4 GB RAM es más que suficiente para un solo usuario» (la guía de VM del proyecto). La documentación pide «un procesador moderno y un mínimo de 4GB RAM».
  • Instalación: Node.js 24 o posterior y uv, y después npx @openhands/agent-canvas --public. Un solo comando inicia el servidor de agentes, el backend de automatización y la aplicación web detrás de un ingress en 127.0.0.1:8000.
  • Defina LOCAL_BACKEND_API_KEY antes del primer inicio: en modo público, cada llamada a la API debe incluirla y la aplicación web la pide antes que nada. Bloquee en el firewall todo salvo SSH primero; la guía dice que se haga antes de que el agente se ejecute por primera vez.
  • Una clave de API de un proveedor de modelos: la documentación dice que OpenHands la necesita para la mayoría de los modelos. Docker es opcional y solo hace falta si quiere aislar cada conversación en su propio contenedor. Sin GPU, salvo que aloje el modelo usted mismo.

Tamaños (la cifra del proyecto y después la nuestra)

Dimensionamiento por carga de trabajo
Carga de trabajovCPURAM
Un usuario, modelos alojados, agente en el host (oficial)La propia cifra de la guía. El servidor de agentes se ejecuta directamente en la máquina, así que la máquina es el sandbox.24 GB
Uno o dos usuarios, un sandbox Docker por conversaciónNuestra. Cada conversación recibe un contenedor; las instalaciones de dependencias, las compilaciones y las suites de pruebas se ejecutan dentro.48 GB
Servidor de agentes compartido de un equipo, varios agentes a la vezNuestra. Agentes en paralelo sobre repositorios en paralelo, cada uno compilando algo.824 GB

Los planes adecuados

5 máquinas, con precio en tiempo real

Primero la máquina adecuada más barata. Precios de hoy, por mes, tomados del catálogo.

  • BD-8$12.90/mes

    4 vCPU · 8 GB · 100 GB de disco · 32 TB

    Lo más barato con margen para compilar y probar. 4 vCPU, 8 GB, 100 GB y 32 TB de transferencia, por menos que las máquinas de 4 GB de otros proveedores. El doble de la cifra de la guía; las suites de pruebas notan los núcleos.

  • U2-4-40$14.90/mes

    2 vCPU · 4 GB · 40 GB de disco · Unmetered

    Exactamente la cifra de la guía, Unmetered, Estambul. 2 vCPU / 4 GB / 40 GB. Un usuario, modelos alojados, el agente en el host. Tráfico sin medición para clones e instalaciones de paquetes.

  • BD-24$31.90/mes

    8 vCPU · 24 GB · 300 GB de disco · 32 TB

    8 vCPU / 24 GB para el servidor de agentes de un equipo. Varios agentes a la vez, sandboxes Docker, el backend de automatización programado.

  • C2-4-80$37.90/mes

    2 vCPU · 4 GB · 80 GB de disco · 3 TB

    La cifra de la guía, en decenas de ciudades. 2 vCPU / 4 GB / 80 GB. Elíjalo por la ciudad; mantenga una sola conversación a la vez.

  • C4-8-160$75.90/mes

    4 vCPU · 8 GB · 160 GB de disco · 3 TB

    4 vCPU / 8 GB / 160 GB, en decenas de ciudades. El tamaño holgado, con disco para muchos checkouts e imágenes Docker.

Todavía no hay preset de inicio para OpenHands: la instalación son los cinco pasos siguientes, escritos por usted, en el orden que da la propia guía del proyecto. Primero el firewall, después la clave y por último el agente.

La instalación

Cinco pasos, en el orden que da la propia guía de OpenHands

La guía es explícita en que el firewall va antes del primer inicio, porque el servidor de agentes tiene vía libre en la máquina y solo el firewall y la clave se interponen entre él y un desconocido.

  1. Primero el firewall. ufw allow OpenSSH && ufw --force enable Nada entrante salvo SSH. El ingress (8000), el servidor de agentes (18000), el backend de automatización (18001) y el servidor estático (3001) no deben ser accesibles desde fuera; la guía lo dice con esas palabras.
  2. Node.js 24 y uv. apt-get install -y curl git curl -fsSL https://deb.nodesource.com/setup_24.x | bash - && apt-get install -y nodejs curl -LsSf https://astral.sh/uv/install.sh | sh uv ejecuta el servidor de agentes; la guía lo instala con el instalador de una línea de astral.sh.
  3. Genere la clave e inicie en modo público. export LOCAL_BACKEND_API_KEY=$(openssl rand -base64 32); echo $LOCAL_BACKEND_API_KEY npx @openhands/agent-canvas --public Copie la clave en un lugar seguro antes de continuar; el modo público significa que la aplicación web se la pedirá. Para un funcionamiento a largo plazo, la unidad systemd de la guía en /etc/systemd/system/agent-canvas.service con Environment=LOCAL_BACKEND_API_KEY=… dentro, y después systemctl enable --now agent-canvas.
  4. Acceda por SSH y añada el modelo. ssh -N -L 8000:127.0.0.1:8000 root@your-server y después http://127.0.0.1:8000, pegue la clave y luego Settings: elija el proveedor y el modelo de LLM y pegue la clave de API de ese proveedor. Inicie una conversación sobre un repositorio.
  5. Opcionalmente, un dominio. Apunte un registro A al servidor, abra 80 y 443, apt-get install -y nginx certbot python3-certbot-nginx, y el bloque nginx de la guía que hace de proxy hacia 127.0.0.1:8000 con cabeceras WebSocket; certbot --nginx -d canvas.example.com --redirect obtiene el certificado. Si 443 debe estar abierto a todo el mundo, la guía dice que la clave es su defensa principal, así que manténgala larga y secreta.

Con franqueza

Lo que realmente compraríamos

La guía dice que 2 vCPU y 4 GB son de sobra para un usuario. Compre la máquina de 8 GB que cuesta menos que las de 4 GB y deje que el agente compile.

Para el agente de programación de una persona

BD-8 · $12.90/mes

4 vCPU, 8 GB y 100 GB por $12.90: el servidor del agente, algunos repositorios clonados, sus árboles de dependencias y una batería de pruebas ejecutándose mientras usted observa, con memoria de sobra si activa los sandboxes de Docker. El modelo está en otro lugar, tras una clave de API, así que esta máquina nunca necesita una GPU y la factura que importa es la del proveedor. C2-4-80 por $37.90 es la cifra exacta de la guía en decenas de ciudades, si la ciudad le importa más que los núcleos.

Preguntas

Lo que se pregunta antes de contratar uno.

¿Cuánta RAM necesita OpenHands?
La propia guía de VM del proyecto dice que 2 vCPU y 4 GB de RAM son de sobra para un solo usuario, y su documentación recomienda un procesador moderno y un mínimo de 4 GB. Eso cubre el servidor de agentes, el backend de automatización y la aplicación web con modelos alojados. Lo que el agente hace después, clonar repositorios, instalar dependencias, ejecutar compilaciones y pruebas, es trabajo normal de desarrollo y requiere recursos normales de desarrollo, por eso la máquina más barata de esta página tiene 4 núcleos y 8 GB en lugar del mínimo exacto.
¿Por qué ejecutarlo en un servidor y no en mi portátil?
Dos razones del propio README. Dice que la forma más potente de ejecutar OpenHands es en un servidor en la nube, para que los agentes sigan funcionando con el portátil cerrado y puedan activarse desde Slack, GitHub o un webhook. Y advierte que el servidor de agentes se ejecuta directamente en la máquina con acceso total al sistema de archivos, la shell y la red. Una máquina que no contiene nada más que el agente y los repositorios con los que trabaja es la forma honesta de darle ese acceso.
¿Necesita una clave de API o puede usar un modelo local?
Su documentación dice que OpenHands requiere una clave de API para acceder a la mayoría de los modelos de lenguaje, y enumera los proveedores alojados que recomienda. Se admite un modelo local mediante Ollama o un servidor similar, pero la documentación añade que un trabajo eficaz del agente con modelos locales requiere hardware capaz y modelos ajustados para seguir instrucciones. En la práctica: un modelo alojado y una clave de API en esta máquina y, si quiere un modelo local, un servidor de modelos aparte dimensionado según la página de Ollama o la línea GPU.
¿Qué hacen --public y LOCAL_BACKEND_API_KEY?
Sin --public, la aplicación inyecta su clave de sesión en la página web por comodidad, algo que el README califica de inseguro para una implementación accesible públicamente. Con --public, la clave no está en la página: todo el que abra la aplicación web debe pegar primero LOCAL_BACKEND_API_KEY, y cada llamada a la API debe llevarla. El orden de la guía es firewall, luego clave, luego arranque, y genera la clave con openssl rand -base64 32.
¿Necesito Docker?
No para la instalación predeterminada, que ejecuta el servidor de agentes en el host con Node 24 y uv. Docker es para los modos aislados: ejecutar toda la pila desde la imagen del proyecto, o dar a cada conversación su propio contenedor para que varios agentes trabajen a la vez sin compartir un sistema de archivos. El README señala que el sandbox aísla la ejecución de las conversaciones, no toda la aplicación. Si lo quiere, instale Docker y cuente con la fila de 8 GB o más.
¿Qué puertos intervienen?
Todo escucha en loopback: el proxy de ingress en 127.0.0.1:8000 enruta al servidor estático en 3001, al servidor de agentes en 18000 y al backend de automatización en 18001. Se accede a 8000 mediante un túnel SSH, o a través de nginx en 443 si añade un dominio. Ninguno de esos cuatro puertos debe estar abierto en el firewall; la guía los enumera por número como los que no deben ser accesibles desde fuera.