Перейти до вмісту

Рішення · Агенти програмування

VPS для OpenHands

OpenHands: це автономний агент для програмування. Дайте йому репозиторій і завдання, і він сам редагує код, запускає його, тестує та відкриває pull requests, використовуючи обрану вами модель через API-ключ. У його власному README сказано, що найпотужніший спосіб запускати його: на сервері в хмарі, а його власне попередження каже, що агент має повний доступ до машини, на якій працює. Обидва твердження ведуть до однієї відповіді: машина, яка не є нічиїм ноутбуком. Посібник проєкту із запуску на сервері вважає 2 vCPU і 4 GB цілком достатніми для одного користувача; BD-8 за $12.90 на місяць дає вдвічі більше, і дешевше, ніж машини з 4 GB в інших місцях.

Що потрібно

Програмне забезпечення з документації, розміри з позначенням джерела

Програмне забезпечення та налаштування безпеки взято з власної документації проєкту. Якщо проєкт не публікує вимог до обладнання, біля розмірів зазначено, чиї вони.

З README OpenHands, SELF_HOSTING.md і документації

  • «2 vCPU / 4 GB RAM цілком достатньо для одного користувача» (посібник проєкту з VM). Документація вимагає «сучасний процесор і щонайменше 4GB RAM».
  • Встановлення: Node.js 24 або новіший і uv, потім npx @openhands/agent-canvas --public. Одна команда запускає сервер агента, бекенд автоматизації та вебзастосунок за ingress на 127.0.0.1:8000.
  • Задайте LOCAL_BACKEND_API_KEY перед першим запуском: у публічному режимі кожен виклик API має його містити, а вебзастосунок запитує його насамперед. Спочатку закрийте брандмауером усе, крім SSH; посібник каже зробити це ще до першого запуску агента.
  • API-ключ від постачальника моделей: документація каже, що OpenHands потрібен такий для більшості моделей. Docker необов'язковий і потрібен лише тоді, коли ви хочете ізолювати кожну розмову в окремому контейнері. GPU не потрібен, якщо ви не розміщуєте модель самі.

Розміри (показник проєкту, потім наші)

Вибір розміру за завданням
НавантаженняvCPURAM
Один користувач, хмарні моделі, агент на хості (офіційно)Цифра з самого посібника. Сервер агента працює безпосередньо на машині, тож машина і є пісочницею.24 GB
Один-два користувачі, пісочниця Docker для кожної розмовиНаш. Кожна розмова отримує контейнер; встановлення залежностей, збирання та набори тестів виконуються в них.48 GB
Спільний командний сервер агентів, кілька агентів одночасноНаш. Паралельні агенти на паралельних репозиторіях, кожен щось компілює.824 GB

Тарифи, що підходять

Машин: 5, ціни актуальні

Спочатку найдешевша відповідна машина. Ціни поточні, за місяць, з каталогу.

  • BD-8$12.90/міс

    4 vCPU · 8 GB · диск 100 GB · 32 TB

    Найдешевший із запасом для збирання й тестування. 4 vCPU, 8 GB, 100 GB і 32 TB трафіку дешевше, ніж машини з 4 GB в інших місцях. Удвічі більше за показник посібника; набори тестів відчувають ядра.

  • U2-4-40$14.90/міс

    2 vCPU · 4 GB · диск 40 GB · Unmetered

    Точно показник посібника, без обліку трафіку, Стамбул. 2 vCPU / 4 GB / 40 GB. Один користувач, хмарні моделі, агент на хості. Трафік без обліку для клонування та встановлення пакетів.

  • BD-24$31.90/міс

    8 vCPU · 24 GB · диск 300 GB · 32 TB

    8 vCPU / 24 GB для командного сервера агентів. Кілька агентів одночасно, пісочниці Docker, бекенд автоматизації за розкладом.

  • C2-4-80$37.90/міс

    2 vCPU · 4 GB · диск 80 GB · 3 TB

    Показник посібника, у десятках міст. 2 vCPU / 4 GB / 80 GB. Обирайте його заради міста; запускайте одну розмову за раз.

  • C4-8-160$75.90/міс

    4 vCPU · 8 GB · диск 160 GB · 3 TB

    4 vCPU / 8 GB / 160 GB, у десятках міст. Комфортний розмір із диском для багатьох checkout і образів Docker.

Готового шаблону запуску для OpenHands поки немає: встановлення складається з п’яти кроків нижче, які ви вводите самі в тому порядку, який дає власний посібник проєкту. Спочатку брандмауер, потім ключ, потім агент.

Встановлення

П'ять кроків у тому порядку, який наводить власний посібник OpenHands

Посібник прямо вказує, що брандмауер має бути налаштований до першого запуску, бо сервер агента має повну владу над машиною, і лише брандмауер та ключ стоять між ним і сторонньою людиною.

  1. Спочатку брандмауер. ufw allow OpenSSH && ufw --force enable Нічого вхідного, крім SSH. Ingress (8000), сервер агента (18000), бекенд автоматизації (18001) і статичний сервер (3001) не повинні бути доступні ззовні; посібник прямо так і каже.
  2. Node.js 24 і 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 запускає сервер агента; посібник встановлює його однорядковим інсталятором з astral.sh.
  3. Згенеруйте ключ, запустіть у публічному режимі. export LOCAL_BACKEND_API_KEY=$(openssl rand -base64 32); echo $LOCAL_BACKEND_API_KEY npx @openhands/agent-canvas --public Перш ніж продовжити, збережіть ключ у надійному місці; публічний режим означає, що вебзастосунок запитає його. Для тривалої роботи використовуйте unit systemd із посібника в /etc/systemd/system/agent-canvas.service з Environment=LOCAL_BACKEND_API_KEY=…, потім systemctl enable --now agent-canvas.
  4. Підключіться через SSH, додайте модель. ssh -N -L 8000:127.0.0.1:8000 root@your-server, потім http://127.0.0.1:8000, вставте ключ, потім Settings: оберіть постачальника LLM і модель та вставте API-ключ цього постачальника. Почніть розмову з репозиторієм.
  5. За бажанням, домен. Спрямуйте A-запис на сервер, відкрийте порти 80 і 443, виконайте apt-get install -y nginx certbot python3-certbot-nginx і додайте блок nginx із посібника, який проксіює на 127.0.0.1:8000 із заголовками WebSocket; certbot --nginx -d canvas.example.com --redirect отримує сертифікат. Якщо порт 443 має бути відкритий для всього світу, посібник зазначає, що ключ є вашим основним захистом, тож зробіть його довгим і тримайте в таємниці.

Чесно кажучи

Що ми купили б насправді

Посібник каже, що 2 vCPU і 4 GB більш ніж достатньо для одного користувача. Купіть машину з 8 GB, яка коштує менше за машини з 4 GB, і дайте агенту компілювати.

Для агента програмування однієї людини

BD-8 · $12.90/міс

4 vCPU, 8 GB і 100 GB за $12.90: сервер агента, кілька клонованих репозиторіїв, їхні дерева залежностей і набір тестів, що виконується у вас на очах, з запасом пам’яті, якщо ввімкнете пісочниці Docker. Модель працює деінде, за ключем API, тож цій машині ніколи не потрібен GPU, а рахунок, що має значення, виставляє провайдер моделі. C2-4-80 за $37.90 відповідає точній цифрі посібника в десятках міст, якщо місто важливіше за ядра.

Запитання

Що запитують перед покупкою.

Скільки RAM потрібно OpenHands?
Власний посібник проєкту з VM каже, що 2 vCPU і 4 GB RAM цілком достатньо для одного користувача, а документація рекомендує сучасний процесор і щонайменше 4 GB. Цього вистачає для сервера агента, бекенду автоматизації та вебзастосунку з хмарними моделями. Те, що агент робить далі (клонує репозиторії, встановлює залежності, запускає збірки й тести), це звичайна робота розробника, і їй потрібні звичайні ресурси розробника. Саме тому найдешевша машина на цій сторінці має 4 ядра і 8 GB, а не точний мінімум.
Навіщо запускати це на сервері, а не на ноутбуці?
Дві причини з самого README. У ньому сказано, що найпотужніший спосіб запускати OpenHands: на сервері в хмарі, щоб агенти працювали, коли ноутбук закритий, і їх можна було запускати зі Slack, GitHub або через webhook. І він попереджає, що сервер агента працює безпосередньо на машині з повним доступом до файлової системи, оболонки та мережі. Машина, на якій немає нічого, крім агента і репозиторіїв, з якими він працює, це чесний спосіб надати йому такий доступ.
Чи потрібен йому API-ключ, чи можна використовувати локальну модель?
Документація каже, що OpenHands потребує API-ключа для доступу до більшості мовних моделей, і перелічує рекомендованих хмарних постачальників. Локальна модель через Ollama чи подібний сервер підтримується, але документація додає, що ефективна робота агента на локальних моделях потребує потужного обладнання та моделей, налаштованих на виконання інструкцій. На практиці: хмарна модель і API-ключ на цій машині, а якщо потрібна локальна модель, то окремий сервер моделі, розмір якого підібрано на сторінці Ollama або в лінійці GPU.
Що роблять --public і LOCAL_BACKEND_API_KEY?
Без --public застосунок для зручності вбудовує свій ключ сесії у вебсторінку, що README називає небезпечним для публічно доступного розгортання. З --public ключа на сторінці немає: кожен, хто відкриває вебзастосунок, спершу має вставити LOCAL_BACKEND_API_KEY, і кожен виклик API має його містити. Порядок у посібнику: брандмауер, потім ключ, потім запуск, а ключ генерується командою openssl rand -base64 32.
Чи потрібен мені Docker?
Не для стандартного встановлення, яке запускає сервер агента на хості з Node 24 і uv. Docker потрібен для ізольованих режимів: запуску всього стека з образу проєкту або надання кожній розмові власного контейнера, щоб кілька агентів могли працювати одночасно без спільної файлової системи. README зазначає, що пісочниця ізолює виконання розмов, а не весь застосунок. Якщо він вам потрібен, встановіть Docker і закладайте рядок з 8 GB або більше.
Які порти задіяні?
Усе прив'язано до loopback: ingress-проксі на 127.0.0.1:8000 спрямовує на статичний сервер на 3001, сервер агента на 18000 і бекенд автоматизації на 18001. До 8000 ви підключаєтеся через SSH-тунель або через nginx на 443, якщо додасте домен. Жоден із цих чотирьох портів не повинен бути відкритий у брандмауері; посібник перелічує їх за номерами як такі, що не повинні бути доступні ззовні.