Naar de inhoud

Oplossingen · Coding agents

Een VPS voor OpenHands

OpenHands is een autonome coding agent: geef het een repository en een taak, en het bewerkt, draait, test en opent zelfstandig pull requests, met het model van je keuze achter een API-sleutel. De eigen README zegt dat het op een server in de cloud het krachtigst draait, en de eigen waarschuwing zegt dat de agent volledige toegang heeft tot de machine waarop hij draait. Beide wijzen naar hetzelfde antwoord: een machine die niemands laptop is. De servergids van het project noemt 2 vCPU en 4 GB ruim voldoende voor één gebruiker; BD-8 voor $12.90 per maand geeft het twee keer zoveel, voor minder dan de machines met 4 GB elders.

Wat het nodig heeft

Software uit de documentatie, groottes met vermelding van de bron

De software en de beveiligingsaanpak komen uit de eigen documentatie van het project. Waar het project geen hardwarecijfers publiceert, staat bij de groottes van wie ze afkomstig zijn.

Uit de README, SELF_HOSTING.md en documentatie van OpenHands

  • “2 vCPU / 4 GB RAM is ruim voldoende voor één gebruiker” (de VM-gids van het project). De documentatie vraagt om “een moderne processor en minimaal 4GB RAM”.
  • Installatie: Node.js 24 of nieuwer en uv, daarna npx @openhands/agent-canvas --public. Eén commando start de agentserver, de automatiseringsbackend en de webapp achter een ingress op 127.0.0.1:8000.
  • Stel LOCAL_BACKEND_API_KEY in vóór de eerste start: in publieke modus moet elke API-aanroep de sleutel bevatten en vraagt de webapp er eerst om. Zet eerst de firewall dicht voor alles behalve SSH; de gids zegt dat te doen voordat de agent ooit draait.
  • Een API-sleutel van een modelaanbieder: volgens de documentatie heeft OpenHands er een nodig voor de meeste modellen. Docker is optioneel en alleen nodig als je elk gesprek in een eigen container wilt isoleren. Geen GPU, tenzij je het model zelf host.

Groottes (het cijfer van het project, daarna het onze)

Groottes per toepassing
WorkloadvCPURAM
Eén gebruiker, gehoste modellen, agent op de host (officieel)Het eigen cijfer uit de gids. De agentserver draait direct op de machine, dus de machine is de sandbox.24 GB
Eén of twee gebruikers, een Docker-sandbox per gesprekVan ons. Elk gesprek krijgt een container; installaties van afhankelijkheden, builds en testsuites draaien daarin.48 GB
Een gedeelde agentserver voor een team, meerdere agents tegelijkVan ons. Parallelle agents op parallelle repositories, die elk iets compileren.824 GB

De passende pakketten

5 machines, actueel geprijsd

Goedkoopste passende machine eerst. Prijzen zijn die van vandaag, per maand, uit de catalogus.

  • BD-8$12.90/mnd

    4 vCPU · 8 GB · 100 GB schijf · 32 TB

    Goedkoopst met ruimte om te bouwen en te testen. 4 vCPU, 8 GB, 100 GB en 32 TB dataverkeer, voor minder dan de machines met 4 GB elders. Twee keer het cijfer uit de gids; testsuites merken de cores.

  • U2-4-40$14.90/mnd

    2 vCPU · 4 GB · 40 GB schijf · Unmetered

    Precies het cijfer uit de gids, unmetered, Istanbul. 2 vCPU / 4 GB / 40 GB. Eén gebruiker, gehoste modellen, de agent op de host. Unmetered dataverkeer voor clones en pakketinstallaties.

  • BD-24$31.90/mnd

    8 vCPU · 24 GB · 300 GB schijf · 32 TB

    8 vCPU / 24 GB voor de agentserver van een team. Meerdere agents tegelijk, Docker-sandboxes, de automatiseringsbackend volgens een schema.

  • C2-4-80$37.90/mnd

    2 vCPU · 4 GB · 80 GB schijf · 3 TB

    Het cijfer uit de gids, in tientallen steden. 2 vCPU / 4 GB / 80 GB. Kies dit om de stad; houd het bij één gesprek tegelijk.

  • C4-8-160$75.90/mnd

    4 vCPU · 8 GB · 160 GB schijf · 3 TB

    4 vCPU / 8 GB / 160 GB, in tientallen steden. De comfortabele grootte met schijfruimte voor veel checkouts en Docker-images.

Er is nog geen opstartpreset voor OpenHands: de installatie bestaat uit de vijf stappen hieronder, die je zelf typt, in de volgorde van de eigen gids van het project. Eerst de firewall, dan de sleutel, dan de agent.

De installatie

Vijf stappen, in de volgorde van de eigen gids van OpenHands

De gids is duidelijk dat de firewall vóór de eerste start komt, omdat de agentserver vrij spel heeft op de machine en alleen de firewall en de sleutel tussen hem en een vreemde staan.

  1. Eerst de firewall. ufw allow OpenSSH && ufw --force enable Niets inkomend behalve SSH. De ingress (8000), de agentserver (18000), de automatiseringsbackend (18001) en de statische server (3001) mogen niet van buitenaf bereikbaar zijn; de gids zegt dat met zoveel woorden.
  2. Node.js 24 en 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 draait de agentserver; de gids installeert het met het installatieprogramma van één regel van astral.sh.
  3. Genereer de sleutel, start in publieke modus. export LOCAL_BACKEND_API_KEY=$(openssl rand -base64 32); echo $LOCAL_BACKEND_API_KEY npx @openhands/agent-canvas --public Kopieer de sleutel naar een veilige plek voordat je verdergaat; publieke modus betekent dat de webapp erom vraagt. Voor langdurig gebruik: de systemd-unit uit de gids op /etc/systemd/system/agent-canvas.service met Environment=LOCAL_BACKEND_API_KEY=… erin, daarna systemctl enable --now agent-canvas.
  4. Maak verbinding via SSH, voeg het model toe. ssh -N -L 8000:127.0.0.1:8000 root@your-server daarna http://127.0.0.1:8000, plak de sleutel, daarna Settings: kies de LLM-aanbieder en het model en plak de API-sleutel van die aanbieder. Start een gesprek over een repository.
  5. Optioneel, een domein. Laat een A-record naar de server wijzen, open 80 en 443, apt-get install -y nginx certbot python3-certbot-nginx, en het nginx-blok uit de gids dat met WebSocket-headers doorstuurt naar 127.0.0.1:8000; certbot --nginx -d canvas.example.com --redirect haalt het certificaat op. Als 443 voor de hele wereld open moet, zegt de gids dat de sleutel je belangrijkste verdediging is, dus houd hem lang en geheim.

Eerlijk gezegd

Wat wij zelf zouden kopen

De gids zegt dat 2 vCPU en 4 GB ruim voldoende is voor één gebruiker. Koop de machine met 8 GB die minder kost dan die met 4 GB en laat de agent dingen compileren.

Voor de coding agent van één persoon

BD-8 · $12.90/mnd

4 vCPU, 8 GB en 100 GB voor $12.90: de agentserver, een paar uitgecheckte repositories, hun afhankelijkheden en een testsuite die draait terwijl je kijkt, met geheugen over als je Docker-sandboxes inschakelt. Het model staat elders, achter een API-sleutel, dus deze machine heeft nooit een GPU nodig en de rekening die ertoe doet, is die van de aanbieder. C2-4-80 voor $37.90 is precies het cijfer uit de gids, in tientallen steden, als de stad belangrijker is dan de cores.

Vragen

Wat mensen vragen voordat ze er een kopen.

Hoeveel RAM heeft OpenHands nodig?
De eigen VM-gids van het project zegt dat 2 vCPU en 4 GB RAM ruim voldoende is voor één gebruiker, en de documentatie raadt een moderne processor en minimaal 4 GB aan. Dat dekt de agentserver, de automatiseringsbackend en de webapp met gehoste modellen. Wat de agent vervolgens doet, repositories clonen, afhankelijkheden installeren, builds en tests draaien, is gewoon ontwikkelaarswerk en vraagt gewone ontwikkelaarsresources. Daarom heeft de goedkoopste machine op deze pagina 4 cores en 8 GB in plaats van precies het minimum.
Waarom op een server draaien in plaats van op mijn laptop?
Twee redenen, uit de README zelf. Die zegt dat OpenHands het krachtigst draait op een server in de cloud, zodat agents blijven werken als je laptop dicht is en gestart kunnen worden vanuit Slack, GitHub of een webhook. En die waarschuwt dat de agentserver direct op de machine draait, met volledige toegang tot het bestandssysteem, de shell en het netwerk. Een machine met niets anders dan de agent en de repositories waaraan hij werkt, is de eerlijke manier om hem die toegang te geven.
Heeft het een API-sleutel nodig, of kan het een lokaal model gebruiken?
Volgens de documentatie heeft OpenHands een API-sleutel nodig voor toegang tot de meeste taalmodellen, en er staat een lijst bij van aanbevolen gehoste aanbieders. Een lokaal model via Ollama of een vergelijkbare server wordt ondersteund, maar de documentatie voegt toe dat effectief agentwerk met lokale modellen capabele hardware vereist en modellen die zijn afgestemd op het opvolgen van instructies. In de praktijk: een gehost model en een API-sleutel op deze machine, en als je een lokaal model wilt, een aparte modelserver, gedimensioneerd volgens de Ollama-pagina of de GPU-lijn.
Wat doen --public en LOCAL_BACKEND_API_KEY?
Zonder --public injecteert de app voor het gemak zijn sessiesleutel in de webpagina, wat de README onveilig noemt voor een publiek bereikbare implementatie. Met --public staat de sleutel niet in de pagina: iedereen die de webapp opent, moet eerst LOCAL_BACKEND_API_KEY plakken, en elke aanroep naar de API moet de sleutel bevatten. De volgorde in de gids is firewall, dan sleutel, dan starten, en de sleutel wordt gegenereerd met openssl rand -base64 32.
Heb ik Docker nodig?
Niet voor de standaardinstallatie, die de agentserver op de host draait met Node 24 en uv. Docker is voor de geïsoleerde modi: de hele stack draaien vanuit de image van het project, of elk gesprek een eigen container geven zodat meerdere agents tegelijk kunnen werken zonder een bestandssysteem te delen. De README merkt op dat de sandbox de uitvoering van gesprekken isoleert, niet de hele app. Als je het wilt, installeer dan Docker en reken op de rij met 8 GB of meer.
Om welke poorten gaat het?
Alles luistert op loopback: de ingress-proxy op 127.0.0.1:8000 stuurt door naar de statische server op 3001, de agentserver op 18000 en de automatiseringsbackend op 18001. Je bereikt 8000 via een SSH-tunnel, of via nginx op 443 als je een domein toevoegt. Geen van die vier poorten mag open staan in de firewall; de gids noemt ze bij nummer als de poorten die niet van buitenaf bereikbaar mogen zijn.