Свой 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 из письма. Пример:
При первом подключении спросят: «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