Przejdź do treści

Rozwiązania · Agenci programistyczni

Serwer VPS dla OpenHands

OpenHands to autonomiczny agent programistyczny: dostaje repozytorium i zadanie, a następnie sam edytuje kod, uruchamia go, testuje i otwiera pull requesty, korzystając z wybranego przez Państwa modelu za kluczem API. Jego README mówi, że najwydajniej działa na serwerze w chmurze, a jego ostrzeżenie mówi, że agent ma pełny dostęp do maszyny, na której działa. Oba wskazują tę samą odpowiedź: maszynę, która nie jest niczyim laptopem. Poradnik serwerowy projektu uznaje 2 vCPU i 4 GB za w zupełności wystarczające dla jednego użytkownika; BD-8 za $12.90 miesięcznie daje dwa razy tyle za mniej niż maszyny 4 GB gdzie indziej.

Czego potrzebuje

Oprogramowanie według dokumentacji, rozmiary z podanym źródłem

Oprogramowanie i zalecenia bezpieczeństwa pochodzą z dokumentacji danego projektu. Tam, gdzie projekt nie podaje wymagań sprzętowych, przy rozmiarach zaznaczamy, czyje to zalecenia.

Z README OpenHands, SELF_HOSTING.md i dokumentacji

  • „2 vCPU / 4 GB RAM w zupełności wystarczą dla jednego użytkownika” (poradnik VM projektu). Dokumentacja wymaga „nowoczesnego procesora i co najmniej 4GB RAM”.
  • Instalacja: Node.js 24 lub nowszy oraz uv, następnie npx @openhands/agent-canvas --public. Jedno polecenie uruchamia serwer agenta, backend automatyzacji i aplikację webową za proxy wejściowym na 127.0.0.1:8000.
  • Proszę ustawić LOCAL_BACKEND_API_KEY przed pierwszym uruchomieniem: w trybie publicznym każde wywołanie API musi go zawierać, a aplikacja webowa prosi o niego przed czymkolwiek innym. Najpierw proszę zablokować w zaporze wszystko poza SSH; poradnik każe to zrobić, zanim agent zostanie w ogóle uruchomiony.
  • Klucz API od dostawcy modelu: dokumentacja mówi, że OpenHands potrzebuje go dla większości modeli. Docker jest opcjonalny i potrzebny tylko, jeśli każda rozmowa ma działać w osobnym kontenerze. GPU niepotrzebne, chyba że hostują Państwo model samodzielnie.

Rozmiary (wartość projektu, potem nasza)

Dobór rozmiaru według zastosowania
ObciążenievCPURAM
Jeden użytkownik, modele hostowane, agent na hoście (oficjalnie)Wartość z samego poradnika. Serwer agenta działa bezpośrednio na maszynie, więc maszyna jest piaskownicą.24 GB
Jeden lub dwóch użytkowników, piaskownica Docker na każdą rozmowęNasza. Każda rozmowa dostaje kontener; instalacja zależności, kompilacje i zestawy testów działają w jego wnętrzu.48 GB
Wspólny serwer agentów zespołu, kilka agentów narazNasza. Równolegli agenci na równoległych repozytoriach, każdy coś kompiluje.824 GB

Pasujące plany

Maszyny: 5, aktualne ceny

Najpierw najtańsza pasująca maszyna. Ceny dzisiejsze, miesięczne, z katalogu.

  • BD-8$12.90/mies.

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

    Najtańszy z zapasem na budowanie i testy. 4 vCPU, 8 GB, 100 GB i 32 TB transferu, taniej niż maszyny 4 GB gdzie indziej. Dwa razy więcej niż wartość z poradnika; zestawy testów odczuwają rdzenie.

  • U2-4-40$14.90/mies.

    2 vCPU · 4 GB · dysk 40 GB · Unmetered

    Dokładnie wartość z poradnika, Unmetered, Stambuł. 2 vCPU / 4 GB / 40 GB. Jeden użytkownik, hostowane modele, agent na hoście. Transfer bez pomiaru dla klonowania i instalacji pakietów.

  • BD-24$31.90/mies.

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

    8 vCPU / 24 GB na serwer agentów zespołu. Kilku agentów jednocześnie, piaskownice Docker, backend automatyzacji według harmonogramu.

  • C2-4-80$37.90/mies.

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

    Wartość z poradnika, w dziesiątkach miast. 2 vCPU / 4 GB / 80 GB. Wybierz ze względu na miasto; prowadź jedną rozmowę naraz.

  • C4-8-160$75.90/mies.

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

    4 vCPU / 8 GB / 160 GB, w dziesiątkach miast. Wygodny rozmiar z miejscem na dysku na wiele kopii repozytoriów i obrazów Docker.

Nie ma jeszcze gotowego szablonu startowego dla OpenHands: instalacja to pięć poniższych kroków, wpisywanych przez Państwa, w kolejności podanej w poradniku projektu. Najpierw zapora, potem klucz, na końcu agent.

Instalacja

Pięć kroków w kolejności podanej w poradniku OpenHands

Poradnik jasno mówi, że zapora ma być przed pierwszym uruchomieniem, ponieważ serwer agenta ma swobodę na całej maszynie i tylko zapora oraz klucz dzielą go od obcej osoby.

  1. Najpierw zapora. ufw allow OpenSSH && ufw --force enable Żadnego ruchu przychodzącego poza SSH. Ingress (8000), serwer agenta (18000), backend automatyzacji (18001) i serwer statyczny (3001) nie mogą być dostępne z zewnątrz; poradnik mówi to tymi słowami.
  2. Node.js 24 i 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 uruchamia serwer agenta; poradnik instaluje go jednoliniowym instalatorem z astral.sh.
  3. Wygeneruj klucz, uruchom w trybie publicznym. export LOCAL_BACKEND_API_KEY=$(openssl rand -base64 32); echo $LOCAL_BACKEND_API_KEY npx @openhands/agent-canvas --public Przed kontynuacją skopiuj klucz w bezpieczne miejsce; tryb publiczny oznacza, że aplikacja webowa poprosi o niego. Do długotrwałego działania: jednostka systemd z poradnika w /etc/systemd/system/agent-canvas.service z Environment=LOCAL_BACKEND_API_KEY=…, a potem systemctl enable --now agent-canvas.
  4. Połącz się przez SSH, dodaj model. ssh -N -L 8000:127.0.0.1:8000 root@your-server, potem http://127.0.0.1:8000, wklej klucz, następnie Settings: wybierz dostawcę LLM i model oraz wklej klucz API tego dostawcy. Rozpocznij rozmowę na repozytorium.
  5. Opcjonalnie domena. Skieruj rekord A na serwer, otwórz 80 i 443, apt-get install -y nginx certbot python3-certbot-nginx, oraz blok nginx z poradnika, który przekazuje ruch do 127.0.0.1:8000 z nagłówkami WebSocket; certbot --nginx -d canvas.example.com --redirect pobiera certyfikat. Jeśli port 443 musi być otwarty na świat, poradnik mówi, że klucz jest główną ochroną, więc niech będzie długi i tajny.

Szczerze

Co kupilibyśmy sami

Poradnik mówi, że 2 vCPU i 4 GB w zupełności wystarczą dla jednego użytkownika. Proszę kupić maszynę 8 GB, która kosztuje mniej niż te z 4 GB, i pozwolić agentowi kompilować.

Dla agenta programistycznego jednej osoby

BD-8 · $12.90/mies.

4 vCPU, 8 GB i 100 GB za $12.90: serwer agenta, kilka sklonowanych repozytoriów, ich drzewa zależności i zestaw testów uruchomiony na Państwa oczach, z zapasem pamięci, jeśli włączą Państwo piaskownice Docker. Model jest gdzie indziej, za kluczem API, więc ta maszyna nigdy nie potrzebuje GPU, a liczy się rachunek od dostawcy modelu. C2-4-80 za $37.90 to dokładna wartość z poradnika w dziesiątkach miast, jeśli miasto jest ważniejsze niż rdzenie.

Pytania

O co ludzie pytają przed zakupem.

Ile RAM potrzebuje OpenHands?
Poradnik VM projektu mówi, że 2 vCPU i 4 GB RAM w zupełności wystarczą dla jednego użytkownika, a dokumentacja zaleca nowoczesny procesor i co najmniej 4 GB. To pokrywa serwer agenta, backend automatyzacji i aplikację webową z modelami hostowanymi. To, co agent robi potem (klonowanie repozytoriów, instalacja zależności, kompilacje i testy), to zwykła praca programisty, która wymaga zwykłych zasobów programisty, dlatego najtańsza maszyna na tej stronie ma 4 rdzenie i 8 GB, a nie dokładne minimum.
Dlaczego uruchamiać to na serwerze, a nie na laptopie?
Dwa powody z samego README. Mówi ono, że najwydajniej uruchamia się OpenHands na serwerze w chmurze, dzięki czemu agenci działają dalej, gdy laptop jest zamknięty, i można ich wyzwalać ze Slacka, GitHuba lub przez webhook. Ostrzega też, że serwer agenta działa bezpośrednio na maszynie z pełnym dostępem do systemu plików, powłoki i sieci. Maszyna, na której nie ma nic poza agentem i repozytoriami, nad którymi pracuje, to uczciwy sposób na przyznanie mu takiego dostępu.
Czy wymaga klucza API, czy może używać lokalnego modelu?
Dokumentacja podaje, że OpenHands wymaga klucza API, aby korzystać z większości modeli językowych, i wymienia zalecanych dostawców hostowanych. Lokalny model przez Ollama lub podobny serwer jest obsługiwany, ale dokumentacja dodaje, że skuteczna praca agenta na modelach lokalnych wymaga wydajnego sprzętu i modeli dostrojonych do wykonywania instrukcji. W praktyce: hostowany model i klucz API na tej maszynie, a jeśli chcą Państwo modelu lokalnego, osobny serwer modelu dobrany według strony Ollama lub linii GPU.
Co robią --public i LOCAL_BACKEND_API_KEY?
Bez --public aplikacja dla wygody wstrzykuje swój klucz sesji do strony internetowej, co README nazywa niebezpiecznym przy wdrożeniu dostępnym publicznie. Z --public klucza nie ma na stronie: każdy, kto otwiera aplikację webową, musi najpierw wkleić LOCAL_BACKEND_API_KEY, a każde wywołanie API musi go zawierać. Kolejność w poradniku to zapora, potem klucz, potem uruchomienie, a klucz generuje się poleceniem openssl rand -base64 32.
Czy potrzebuję Dockera?
Nie przy domyślnej instalacji, która uruchamia serwer agenta bezpośrednio na hoście z Node 24 i uv. Docker służy do trybów z piaskownicą: uruchomienia całego stosu z obrazu projektu albo przydzielenia każdej rozmowie własnego kontenera, aby kilku agentów mogło pracować jednocześnie bez wspólnego systemu plików. README zaznacza, że piaskownica izoluje wykonywanie rozmów, a nie całą aplikację. Jeśli chcą Państwo z niej korzystać, proszę zainstalować Dockera i przewidzieć wiersz 8 GB lub większy.
Jakich portów to dotyczy?
Wszystko nasłuchuje na interfejsie loopback: proxy wejściowe na 127.0.0.1:8000 kieruje ruch do serwera plików statycznych na 3001, serwera agenta na 18000 i backendu automatyzacji na 18001. Do portu 8000 łączą się Państwo przez tunel SSH albo przez nginx na 443, jeśli dodadzą Państwo domenę. Żaden z tych czterech portów nie powinien być otwarty w zaporze; poradnik wymienia je z numerów jako te, które nie mogą być osiągalne z zewnątrz.