Блог и Новости is*hosting - Хостинг-провайдер Нового Поколения

OpenHuman на VPS — деплой за час

Written by Александра И. | 09.06.2026 10:09:05

Свой AI-агент с памятью, интеграциями и десктопным интерфейсом. Работает 24/7 на VPS. Доступен откуда угодно.

OpenHuman — open-source AI-ассистент от TinyHumans AI. В отличие от чат-ботов, которые забывают все после каждой сессии, OpenHuman строит постоянную память: загружает ваши документы, письма и сообщения в локальную базу знаний и помнит контекст неделями. Работает как десктопное приложение на PC, подключенное к серверу (core), который берет на себя всю тяжелую работу.

Мы развернули все на VPS от is*hosting. В этом гайде — каждый шаг, каждая ошибка, на которую мы наступили, и каждый фикс. Весь процесс занял около часа, из которых минут 40 — ожидание компиляции Rust.

Что понадобится

  • VPS от is*hosting (8+ ГБ RAM)
  • Компьютер для подключения к серверу
  • Аккаунт в Google, GitHub или Twitter (для входа в OpenHuman)
  • Около 40-60 минут (20-40 из которых уйдут на ожидание компиляции)

Шаг 1. Заказать VPS

Заходите на is*hosting и берете тариф:

  • RAM: 8+ ГБ
  • Диск: 40 ГБ NVMe
  • ОС: Ubuntu 24
  • Локация: любая, ближайшая к вам

Цена: 24,99$/месяц (или 21,24$/месяц при годовом тарифе) за VPS Medium + 10$/месяц за дополнительную RAM. Или 39,99$/месяц (или 31,99$/месяц при годовом тарифе) за VPS Premium.

Ядро OpenHuman написано на Rust, а компиляция Rust из исходного кода требует 6-8 ГБ пиковой памяти. При стандартных 4 ГБ процесс сборки прерывается ОС (OOM). Мы проверили — 40 минут компиляции, затем signal: 9, и все сначала.

Мы тестировали настройку на VPS Medium с 4 ГБ RAM и докидывали еще 4 ГБ сверху.

Чтобы добавить RAM, откройте тикет в панели is*hosting. Что-то вроде «Please add +4 GB RAM to my VPS [ID вашего VPS] (Medium plan)».

Альтернатива — сразу заказать Premium VPS  (4 vCPU / 8 ГБ RAM / 50 ГБ NVMe, $31.99/мес годовой) и не связываться с апгрейдом.

После оплаты на почту придут IP-адрес и root-пароль. Сохраните оба.

VPS

Выделенные ресурсы и изоляция KVM для глобальных экспериментов.

Сравнить тарифы

Шаг 2. Подключиться к серверу по SSH

Mac: откройте Terminal (Cmd+Space → наберите «Terminal» → Enter).

Windows: скачайте Tabby или используйте PowerShell.

Введите:

ssh root@IP_ВАШЕГО_VPS

Замените IP_ВАШЕГО_VPS на реальный IP из письма. Пример:

ssh root@37.252.10.8

При первом подключении спросят: «Are you sure you want to continue connecting?» — пишете yes, жмете Enter.

Затем вставляете пароль. Пароль не отображается на экране — это нормально. Вставляйте и жмите Enter.

Когда увидите root@server:~# — вы внутри.

Шаг 3. Установить Docker

OpenHuman работает в Docker-контейнере. Одна команда ставит все:

curl -fsSL https://get.docker.com | bash

Дождитесь окончания (1-2 минуты). Предупреждения про rootless mode — игнорируйте.

Шаг 4. Скачать OpenHuman и настроить

Скачиваем исходный код:

cd /root
git clone https://github.com/tinyhumansai/openhuman.git
cd openhuman

Создаем конфиг:

cp .env.example .env

Генерируем токен (это пароль, по которому десктопное приложение подключится к серверу):

openssl rand -hex 32

Скопируйте результат — он понадобится дважды: для серверного конфига и для десктопного приложения.

Редактируем конфиг:

nano .env

Пролистайте в самый конец файла и добавьте одну строку:

OPENHUMAN_CORE_TOKEN=ВСТАВЬТЕ_ВАШ_ТОКЕН

Все остальное оставьте как есть — BACKEND_URL по умолчанию production, OPENHUMAN_APP_ENV тоже.

Сохраните: Ctrl+O → Enter → Ctrl+X.

Примечание про Ctrl+O: это буква O (как в слове «Out» — Write Out), не ноль.

Шаг 5. Собрать и запустить OpenHuman

Главный шаг. Docker скомпилирует Rust-ядро из исходников:

docker compose up -d

Увидите желтое предупреждение «pull access denied for openhuman-core» — это нормально. Готового образа на Docker Hub нет, поэтому он собирается локально.

Это займет 20-30 минут. Терминал будет показывать прогресс компиляции. Не закрывайте.

Если сборка упадет с signal: 9: серверу не хватило памяти. Нужно минимум 8 ГБ RAM для компиляции. См. шаг 1 — добавьте +4 ГБ RAM через тикет в поддержку и повторите.

Когда закончится, увидите четыре зеленые галочки:

✔ Image openhuman-core:local    Built
✔ Network openhuman_default     Created
✔ Volume openhuman-workspace    Created
✔ Container openhuman-core      Started

Шаг 6. Починить entrypoint (скорее всего, придется)

Проверяем, что ядро реально работает:

curl -s http://localhost:7788/health

Если получили JSON с "pid" — переходите к шагу 7.

Если пустой ответ или «Connection refused» — смотрим логи:

docker logs openhuman-core --tail 20

Если видите chown: Operation not permitted, повторяющийся в цикле: скрипт запуска контейнера не может сменить владельца файлов на Docker-томе. Это известная проблема на VPS.

Фикс — редактируем Docker Compose файл, чтобы обойти скрипт:

nano /root/openhuman/docker-compose.yml

Находим блок services:openhuman-core: и добавляем прямо под openhuman-core: две строки (с правильным отступом — 4 пробела):

    user: "0:0"
    entrypoint: ["/usr/local/bin/openhuman-core", "serve"]

Сохраняем, перезапускаем:

docker compose down
docker compose up -d

Ждем 5 секунд, проверяем:

curl -s http://localhost:7788/health

Должен прийти JSON. Проверяем логи:

docker logs openhuman-core --tail 10

Если видите ошибки Failed to create workspace directory: пересоздаем Docker-том:

docker compose down
docker volume rm openhuman-workspace
docker volume create openhuman-workspace
docker compose up -d

Предупреждение «volume already exists but was not created by Docker Compose» — не ошибка, игнорируйте.

Шаг 7. Настроить домен с HTTPS

Десктопное приложение OpenHuman требует HTTPS — к голому http:// IP оно не подключится. Нужен домен и SSL-сертификат.

Если у вас нет домена, используйте DuckDNS (бесплатно):

  • Зайдите на duckdns.org, авторизуйтесь через Google
  • Создайте поддомен (например, myopenhuman) — он станет myopenhuman.duckdns.org
  • Укажите IP вашего VPS

Установите Caddy (веб-сервер, который сам получает SSL-сертификат):

apt install -y caddy

Настройте Caddy:

nano /etc/caddy/Caddyfile

Удалите все содержимое (зажмите Ctrl+K пока не очистится) и вставьте:

ВАШ_ДОМЕН.duckdns.org {
    reverse_proxy localhost:7788
}

Замените ВАШ_ДОМЕН.duckdns.org на ваш реальный DuckDNS-домен.

Сохраните и перезапустите:

systemctl restart caddy

Подождите 10-15 секунд — Caddy автоматически получит SSL-сертификат от Let's Encrypt.

Откройте порты в файрволле:

ufw allow 7788/tcp
ufw allow 443/tcp

Проверьте с вашего терминала (не SSH-сессия, а локальный Terminal):

curl -v https://ВАШ_ДОМЕН.duckdns.org/health

Должно вернуть HTTP/1.1 200 OK.

Шаг 8. Скачать и подключить десктопное приложение

Скачайте OpenHuman: tinyhumans.ai/openhuman

Установите DMG. Запустите приложение.

На первом экране — Select a Runtime. Найдите Cloud / Remote Core и введите:

  • URL: https://ВАШ_ДОМЕН.duckdns.org/rpc
  • Token: токен, который вы сгенерировали в шаге 4

Нажмите Test Connection — должно показать «Connected». После нажмите Continue.

Затем залогиньтесь через Google, GitHub или Twitter.

Если логин не работает («could not start»): убедитесь, что workspace directory починен (шаг 6). OAuth нужна рабочая директория для хранения сессий.

После входа — экран выбора: Simple или Run Custom.

  • Simple — OpenHuman сам управляет моделями, $1 бесплатного кредита на старт
  • Run Custom — приносите свои API-ключи (OpenRouter, Anthropic и т.д.)

Выбирайте что вам ближе.

Шаг 9. Проверить, что все работает

Когда пройдете настройку, отправьте сообщение в чат. Агент должен ответить.

Проверьте здоровье сервера:

docker logs openhuman-core --tail 10

В логах должны быть чистые -> ok записи без ошибок.

Траблшутинг

Сборка падает с signal: 9 (OOM kill)

Компиляция Rust требует 6-8 ГБ пиковой памяти. Если на VPS 4 ГБ — система убивает процесс.

Фикс: добавьте +4 ГБ RAM через тикет в поддержку ($10/мес). Или сразу заказывайте Premium (8 ГБ).

chown: Operation not permitted в цикле

Стандартный entrypoint пытается сменить владельца файлов внутри контейнера. На VPS-шных Docker-установках это не работает и зацикливается.

Фикс: добавьте user: "0:0" и переопределите entrypoint в docker-compose.yml:

services:
  openhuman-core:
    user: "0:0"
    entrypoint: ["/usr/local/bin/openhuman-core", "serve"]

Failed to create workspace directory

Том с workspace получил неправильные права после фикса chown.

Фикс:

docker compose down
docker volume rm openhuman-workspace
docker volume create openhuman-workspace
docker compose up -d

Приложение: «Unreachable: Failed to fetch»

Приложение не может подключиться к серверу. Три возможные причины:

  • Порт закрыт. Выполните на сервере ufw allow 7788/tcp и ufw allow 443/tcp.
  • Используете http:// вместо https://. Приложение требует HTTPS. Настройте Caddy (шаг 7).
  • Неправильный URL. Убедитесь, что это https://ВАШ_ДОМЕН/rpc — с /rpc на конце.

Проверьте доступность в терминале:

curl -v https://ВАШ_ДОМЕН.duckdns.org/health

«Cloud core needs an update» / несовпадение версий

Версия серверного ядра не совпадает с десктопным приложением. Обновите сервер:

cd /root/openhuman
git fetch --tags
git checkout v0.54.0
docker compose down
docker compose build --no-cache
docker compose up -d

Замените v0.54.0 на версию, которую ожидает приложение. Последние релизы: github.com/tinyhumansai/openhuman/releases.

Это снова запустит 20-минутную пересборку.

OAuth не работает («could not start»)

Обычно связано с тем, что workspace directory не создана. Почините workspace (см. выше), перезапустите контейнер и попробуйте снова.

Если все еще не работает — попробуйте другой способ входа (GitHub вместо Google или наоборот).

Полезные команды

docker compose up -d                          # запустить OpenHuman
docker compose down                           # остановить OpenHuman
docker compose restart                        # перезапуск после изменений конфига
docker logs openhuman-core --tail 30          # последние логи
docker exec openhuman-core openhuman-core --version  # проверить версию
curl -s http://localhost:7788/health          # health check
systemctl status caddy                        # статус Caddy/SSL

Что вы получили

После этого гайда у вас есть:

  • Ядро OpenHuman, работающее 24/7 на VPS в Docker-контейнере
  • HTTPS-доступ через Caddy + бесплатный DuckDNS-домен
  • Десктопное приложение, подключенное к удаленному ядру
  • Персистентная память и workspace, переживающие перезагрузки
  • Автоперезапуск через Docker

Ядро продолжает работать, даже когда ваш ноутбук выключен. Память, интеграции и состояние агента живут на сервере.

Что дальше

Когда освоитесь:

  • Подключите интеграции — Gmail, Google Calendar, GitHub, Notion, Slack
  • Постройте дерево памяти — дайте OpenHuman загрузить ваши документы и письма
  • Добавьте голос — OpenHuman поддерживает speech-to-text и text-to-speech
  • Настройте cron-задачи — автоматизируйте повторяющиеся задачи агента
  • Попробуйте локальные модели — запустите Ollama на том же VPS для полностью приватного AI (нужно 16+ ГБ RAM)

Полная документация: tinyhumans.gitbook.io/openhuman