Урок 4. Конфигурация HAPI#
Зачем это нужно#
HAPI работает «из коробки» с настройками по умолчанию. Но иногда нужно что-то изменить: поменять порт, задать публичный адрес, подключить Telegram-бота. В этом уроке разберём, как настроить CLI и Hub под свои нужды.
Где хранятся настройки#
Все файлы HAPI лежат в одной папке:
~/.hapi/
├── settings.json # Главный файл настроек
├── hapi.db # База данных (сессии, сообщения)
├── access.key # Ключ доступа CLI
├── runner.state.json # Состояние Runner
└── logs/ # Логи (журналы работы)
~— это сокращение для вашей домашней папки. На macOS это/Users/ваше_имя, на Linux —/home/ваше_имя.
Чтобы изменить расположение этой папки:
export HAPI_HOME="~/my-custom-hapi-folder"Три способа задать настройки#
HAPI читает настройки из трёх источников. Если одна настройка задана в нескольких местах, побеждает тот источник, который выше в списке:
- Переменные окружения (высший приоритет) —
export HAPI_LISTEN_PORT=4000 - Файл settings.json —
~/.hapi/settings.json - Значения по умолчанию (низший приоритет)
💡 Если вы задали настройку через переменную окружения, и её ещё нет в settings.json — HAPI автоматически сохранит её в файл для будущих запусков.
Настройки Hub#
Hub — это серверная часть HAPI. Вот основные настройки:
Сеть и доступ#
| Переменная окружения | settings.json | По умолчанию | Описание |
|---|---|---|---|
HAPI_LISTEN_HOST |
listenHost |
127.0.0.1 |
Адрес, на котором Hub слушает подключения |
HAPI_LISTEN_PORT |
listenPort |
3006 |
Порт Hub |
HAPI_PUBLIC_URL |
publicUrl |
— | Публичный адрес для доступа извне |
CORS_ORIGINS |
corsOrigins |
— | Разрешённые источники запросов |
Порт — это как номер квартиры в доме. IP-адрес — это адрес дома, а порт указывает, к какой конкретно программе обращаться. По умолчанию Hub «живёт» на порту 3006.
127.0.0.1(localhost) означает, что Hub принимает подключения только с вашего компьютера. Если вы хотите, чтобы Hub был доступен из локальной сети, измените на0.0.0.0.
Пример: сменить порт на 8080
export HAPI_LISTEN_PORT=8080
hapi hubИли в settings.json:
{
"listenPort": 8080
}Пример: открыть доступ из локальной сети
{
"listenHost": "0.0.0.0",
"listenPort": 3006
}Аутентификация#
| Переменная | settings.json | Описание |
|---|---|---|
CLI_API_TOKEN |
cliApiToken |
Общий секретный ключ для связи CLI и Hub |
Этот токен генерируется автоматически при первом запуске. Он нужен, чтобы только ваш CLI мог подключаться к Hub.
⚠️ Если токен стал известен посторонним — удалите его из
settings.jsonи перезапустите Hub. Будет создан новый.
Telegram#
| Переменная | settings.json | Описание |
|---|---|---|
TELEGRAM_BOT_TOKEN |
telegramBotToken |
Токен бота от @BotFather |
TELEGRAM_NOTIFICATION |
telegramNotification |
Включить уведомления (true/false) |
Relay#
| Переменная | Описание |
|---|---|
HAPI_RELAY_FORCE_TCP |
Принудительный TCP-режим (true/false) |
Голосовой ассистент#
| Переменная | Описание |
|---|---|
ELEVENLABS_API_KEY |
API-ключ ElevenLabs |
ELEVENLABS_AGENT_ID |
ID пользовательского агента ElevenLabs |
База данных#
| Переменная | По умолчанию | Описание |
|---|---|---|
DB_PATH |
~/.hapi/hapi.db |
Путь к файлу базы данных |
Настройки CLI#
CLI — это клиентская часть, которая запускает AI-агента. У неё меньше настроек:
| Переменная | settings.json | По умолчанию | Описание |
|---|---|---|---|
HAPI_API_URL |
apiUrl |
http://localhost:3006 |
Адрес Hub для подключения |
CLI_API_TOKEN |
cliApiToken |
— | Токен аутентификации |
HAPI_HOME |
— | ~/.hapi |
Папка с настройками |
HAPI_EXPERIMENTAL |
— | false |
Включить экспериментальные функции |
Пример: подключение CLI к удалённому Hub
export HAPI_API_URL="https://мой-сервер.com"
export CLI_API_TOKEN="мой-секретный-токен"
hapiИли используйте интерактивную авторизацию:
hapi auth login # Войти
hapi auth status # Проверить статус
hapi auth logout # ВыйтиПример файла settings.json#
Вот полный пример с комментариями:
{
"$schema": "https://hapi.run/docs/schemas/settings.schema.json",
"listenHost": "0.0.0.0",
"listenPort": 3006,
"publicUrl": "https://hapi.example.com",
"telegramBotToken": "123456:ABC-DEF...",
"telegramNotification": true,
"corsOrigins": "https://hapi.example.com"
}💡 Поле
$schemaнеобязательно, но если ваш редактор поддерживает JSON Schema, он будет подсказывать доступные настройки и проверять ошибки.
Практические сценарии#
Сценарий 1: Работа только локально#
Ничего менять не нужно! Настройки по умолчанию подходят:
hapi hub # Hub на localhost:3006
hapi # CLI подключается автоматическиСценарий 2: Доступ через Relay + Telegram#
export TELEGRAM_BOT_TOKEN="ваш-токен-бота"
export ELEVENLABS_API_KEY="ваш-ключ"
hapi hub --relayСценарий 3: Несколько компьютеров подключены к одному Hub#
На сервере:
hapi hubНа каждом рабочем компьютере:
export HAPI_API_URL="http://адрес-сервера:3006"
export CLI_API_TOKEN="общий-токен"
hapiКаждый компьютер получает уникальный ID — так Hub различает машины.
Итоги урока#
- Настройки хранятся в папке
~/.hapi/, главный файл —settings.json - Три источника настроек: переменные окружения > settings.json > значения по умолчанию
- Основные настройки Hub: порт (
3006), адрес (127.0.0.1), токен, Telegram - CLI настраивается через
HAPI_API_URLиCLI_API_TOKEN - Для большинства задач настройки по умолчанию подходят — менять что-то нужно только при особых сценариях