Свой AI-агент с памятью, интеграциями и десктопным интерфейсом. Работает 24/7 на VPS. Доступен откуда угодно.
OpenHuman — open-source AI-ассистент от TinyHumans AI. В отличие от чат-ботов, которые забывают все после каждой сессии, OpenHuman строит постоянную память: загружает ваши документы, письма и сообщения в локальную базу знаний и помнит контекст неделями. Работает как десктопное приложение на PC, подключенное к серверу (core), который берет на себя всю тяжелую работу.
Мы развернули все на VPS от is*hosting. В этом гайде — каждый шаг, каждая ошибка, на которую мы наступили, и каждый фикс. Весь процесс занял около часа, из которых минут 40 — ожидание компиляции Rust.
Заходите на is*hosting и берете тариф:
Цена: 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-пароль. Сохраните оба.
Выделенные ресурсы и изоляция KVM для глобальных экспериментов.
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:~# — вы внутри.
OpenHuman работает в Docker-контейнере. Одна команда ставит все:
curl -fsSL https://get.docker.com | bash
Дождитесь окончания (1-2 минуты). Предупреждения про rootless mode — игнорируйте.
Скачиваем исходный код:
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), не ноль.
Главный шаг. 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
Проверяем, что ядро реально работает:
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» — не ошибка, игнорируйте.
Десктопное приложение OpenHuman требует HTTPS — к голому http:// IP оно не подключится. Нужен домен и SSL-сертификат.
Если у вас нет домена, используйте DuckDNS (бесплатно):
Установите 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.
Скачайте OpenHuman: tinyhumans.ai/openhuman
Установите DMG. Запустите приложение.
На первом экране — Select a Runtime. Найдите Cloud / Remote Core и введите:
Нажмите Test Connection — должно показать «Connected». После нажмите Continue.
Затем залогиньтесь через Google, GitHub или Twitter.
Если логин не работает («could not start»): убедитесь, что workspace directory починен (шаг 6). OAuth нужна рабочая директория для хранения сессий.
После входа — экран выбора: Simple или Run Custom.
Выбирайте что вам ближе.
Когда пройдете настройку, отправьте сообщение в чат. Агент должен ответить.
Проверьте здоровье сервера:
docker logs openhuman-core --tail 10
В логах должны быть чистые -> ok записи без ошибок.
Компиляция Rust требует 6-8 ГБ пиковой памяти. Если на VPS 4 ГБ — система убивает процесс.
Фикс: добавьте +4 ГБ RAM через тикет в поддержку ($10/мес). Или сразу заказывайте Premium (8 ГБ).
Стандартный entrypoint пытается сменить владельца файлов внутри контейнера. На VPS-шных Docker-установках это не работает и зацикливается.
Фикс: добавьте user: "0:0" и переопределите entrypoint в docker-compose.yml:
services:
openhuman-core:
user: "0:0"
entrypoint: ["/usr/local/bin/openhuman-core", "serve"]
Том с workspace получил неправильные права после фикса chown.
Фикс:
docker compose down
docker volume rm openhuman-workspace
docker volume create openhuman-workspace
docker compose up -d
Приложение не может подключиться к серверу. Три возможные причины:
Проверьте доступность в терминале:
curl -v https://ВАШ_ДОМЕН.duckdns.org/health
Версия серверного ядра не совпадает с десктопным приложением. Обновите сервер:
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-минутную пересборку.
Обычно связано с тем, что 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
После этого гайда у вас есть:
Ядро продолжает работать, даже когда ваш ноутбук выключен. Память, интеграции и состояние агента живут на сервере.
Когда освоитесь:
Полная документация: tinyhumans.gitbook.io/openhuman