Системные требования
AiHummer устанавливается напрямую в Linux под systemd, без Docker: он работает как релизный tarball, поэтому требования намеренно скромные. Единственная жёсткая зависимость — хост на Linux с PostgreSQL. Всё остальное — дополнительные сервисы, реальная модель, векторное хранилище — опционально и добавляется позже из админ‑панели.
[!NOTE] AiHummer работает без контейнеров: он разворачивается как tarball под systemd из
~/.aihummer(~— домашний каталог пользователя, от имени которого выполнена установка). Не нужны ни среда выполнения контейнеров, ни Kubernetes, ни какой-либо оркестратор.
Минимум для теста
Чтобы попробовать AiHummer и проверить маршрут «канал → агент → ответ», достаточно:
- Современный 64-битный дистрибутив Linux с
systemd(x86_64илиarm64). - PostgreSQL с расширением
pgcrypto(установщик может развернуть его сам). - 2 vCPU, 2 ГБ RAM, 10 ГБ диска.
- Модель не обязательна: без неё ответы даёт детерминированная тестовая модель (mock) — она проверяет маршрут и интерфейс, но не выполняет рабочие задачи.
Рекомендуется для промышленной эксплуатации
- 4+ vCPU, 8+ ГБ RAM, 40+ ГБ SSD (больше — при голосе и локальных моделях, см. таблицу ниже).
- Реальная модель: локальная, транспорт через подписку Codex/ChatGPT или собственный API‑ключ провайдера.
- Внешний адрес с TLS, настроенное резервное копирование PostgreSQL и хранение
AIHUMMER_MASTER_KEYотдельно от резервной копии. - Отдельный хост (или ресурсы) под дополнительные сервисы, если используется голос, браузер или локальный эмбеддер.
Операционная система
AiHummer работает только на Linux. Серверной сборки под Windows или macOS нет — шлюз и его дополнительные сервисы поставляются как Linux-артефакты под каждую архитектуру и разворачиваются через systemd. (Клиент — это отдельное мобильное и настольное приложение; это канал, а не сервер.)
- Современный 64-битный дистрибутив Linux с
systemd. x86_64(amd64) илиarm64— установщик скачает пакет под нужную архитектуру.- Доступ
sudo/root не обязателен строго: обычная установка идёт черезsudo, но установщик, запущенный без root, ставит AiHummer в rootless-режиме подsystemd --user— см. Установку.
База данных
PostgreSQL — единственная жёсткая зависимость и единый источник истины для
всего состояния. Расширение pgcrypto обязательно — на нём держится
зашифрованное хранилище секретов. Без базы данных шлюз стартует в урезанном
режиме health-only и не делает ничего полезного.
[!IMPORTANT] Включите
pgcryptoв целевой базе до первого запуска:CREATE EXTENSION IF NOT EXISTS pgcrypto;
Шлюз подключается по DSN из AIHUMMER_DATABASE_URL. Для изоляции арендаторов
можно дополнительно указать AIHUMMER_DB_APP_URL на ограниченную роль
aihummer_app, чтобы активировать Postgres Row-Level Security; локальные
установки настраивают это автоматически. Миграции БД обратно совместимы и
применяются автоматически под advisory-локом на owner-пуле.
Аппаратные требования
Эти значения — ориентир для развёртывания шлюза плюс PostgreSQL на одном хосте. Дополнительные сервисы (STT/TTS, браузер, векторное хранилище) добавляют свой расход ресурсов и обычно размещаются на том же хосте только для небольших инсталляций.
| Профиль | CPU | RAM | Диск | Примечания |
|---|---|---|---|---|
| Минимум для теста (оценка) | 2 vCPU | 2 ГБ | 10 ГБ | Шлюз + Postgres, тестовая модель, без дополнительных сервисов |
| Промышленная эксплуатация | 4 vCPU | 8 ГБ | 40 ГБ SSD | Шлюз + Postgres + пара дополнительных сервисов |
| Голос / локальные модели | 8+ vCPU (GPU опц.) | 16+ ГБ | 80+ ГБ SSD | STT/TTS, эмбеддер, локальный LLM-endpoint |
Расход диска растёт с историей переписок, каталогом медиафайлов
(AIHUMMER_BLOB_DIR), индексацией знаний и сроком хранения аудита.
Планируйте резервные копии PostgreSQL (pg_dump + WAL/PITR) соответственно.
Сетевые порты
Для каждого порта важно понимать, кто подключается, откуда и к какому endpoint:
| Порт | Назначение | Кто подключается | Допустимый источник |
|---|---|---|---|
:8780 (публичный) |
Каналы, вебхуки, OpenAI-совместимый API, /healthz, /metrics |
Мессенджеры, интеграции, ваши приложения | Интернет (за TLS-прокси) или внутренняя сеть — по вашей модели угроз |
:8781 (приватный) |
Веб‑интерфейс администратора | Только администраторы | Локальный хост / внутренняя сеть / VPN; не публикуйте в интернет без SSO |
5432 (PostgreSQL) |
База данных | Только шлюз | Локальный хост или приватная сеть |
Дополнительные сервисы (опционально)
Дополнительный сервис (sidecar) — это отдельный HTTP-сервис, запускаемый рядом с ядром или на отдельном узле, каждый под своим systemd-юнитом. Шлюз обращается к ним по URL, поэтому сервис может работать на том же хосте, на другом хосте, или можно указать на уже существующий инстанс. Ни один из них не обязателен для базового развёртывания.
| Сервис | Порт по умолчанию | Что включает |
|---|---|---|
| STT (faster-whisper) | 8001 | Распознавание речи для голосовых запросов (локально) |
| TTS (edge-tts) | 8002 | Синтез речи; обращается к онлайн‑сервису Microsoft Edge |
| Video (ffmpeg) | 8005 | Понимание видео |
| SearXNG | 8888 | Инструмент web_search |
| Chrome/CDP | 9222 | Инструменты browser / computer |
faster-whisper может распознавать речь локально. edge-tts обращается к
онлайн‑сервису Microsoft Edge, поэтому текст для синтеза покидает ваш контур;
для полностью изолированного режима подключите локальный TTS‑движок.
STT, TTS, video, веб-поиск (SearXNG) и браузер (CloakBrowser) ставятся
установщиком из коробки. Дистрибутивы веб-поиска и браузера вшиты в подписанный
установочный комплект и разворачиваются офлайн: отключить их можно флагами
--no-search / --no-browser, а флаги --external-search=URL /
--external-browser=URL подключают уже работающий у вас инстанс вместо
локальной установки. Голосовые сервисы отключаются переменными
AIHUMMER_SKIP_*. Семантический эмбеддер — opt-in (--with-embedder):
он тянет PyTorch (сотни МБ), а без него память работает на резервном
лексическом поиске. См. Установку.
[!NOTE] Node.js (версии 20 и новее) тоже вшит в установочный комплект и ставится офлайн, поэтому плагины на Node.js — приложение AiHummer, pocket-agent, канальные коннекторы — работают из коробки даже на дистрибутивах со старым системным Node.js.
LLM-провайдеры
Для запуска и тестирования платный API‑ключ не нужен: без модели используется тестовый mock. Для рабочих ответов подключите локальную модель, поддерживаемый транспорт через подписку Codex/ChatGPT или собственный ключ провайдера (BYOK) — на арендатора, строго опционально.
Поддерживаемые провайдеры:
- Anthropic.
- OpenAI.
- Любой endpoint по стандарту OpenAI API — например, локальные серверы моделей, OpenRouter или OpenAI-совместимый endpoint Gemini.
- Транспорт через подписку Codex / ChatGPT — управление моделью через подписку ChatGPT вместо тарифицируемого API-ключа.
[!TIP] Если запустить шлюз без подключённой модели (
AIHUMMER_LLM_PROVIDER/AIHUMMER_LLM_MODEL/AIHUMMER_LLM_GATEWAY_URL), ответы приходят из детерминированной тестовой модели (mock), так что вы можете проверить каналы и маршрутизацию ещё до подключения реальной модели.
[!NOTE] AiHummer предоставляет только OpenAI-совместимый endpoint
POST /v1/chat/completions. Endpoints/v1/modelsи/v1/embeddingsне предоставляются. AiHummer предоставляет базовые метрики Prometheus поGET /metricsи при необходимости отправляет расширенную телеметрию через OTLP./debug/pprofне публикуется.
Куда дальше
- Установка — сервер соответствует требованиям: разверните AiHummer одной командой.
- Быстрый старт — пройдите первый запуск по шагам, от установки до первого ответа агента.