---
title: "Установка Чат-бот агента"
id: "1950"
type: "page"
slug: "install"
published_at: "2026-09-20T14:53:03+00:00"
modified_at: "2026-09-21T00:00:47+00:00"
url: "https://pastukhov.com/agents/chatbot/install"
markdown_url: "https://pastukhov.com/agents/chatbot/install.md"
excerpt: "Чат-бот агент — программа для создания чат-ботов с ИИ, которую вы запускаете на своём сервере.…"
---

# Установка Чат-бот агента

[https://pastukhov.com/agents/chatbot/install.md](https://pastukhov.com/agents/chatbot/install.md)

Не хотите читать всё это? Просто скиньте в любой ИИ-чат (Claude, ChatGPT и т.д.) ссылку на [https://pastukhov.com/agents/chatbot/install.md](https://pastukhov.com/agents/chatbot/install.md)
 или на [https://pastukhov.com/llms.txt](https://pastukhov.com/llms.txt)
 и попросите сгенерировать конфигурационные файлы и команды. Он прочитает документацию, задаст несколько вопросов о вашей настройке и выдаст готовую конфигурацию. Экономьте время — пусть модель читает за вас.

 Вы также можете связаться со мной через Telegram — я всегда рад помочь. И это не просто вежливость — мне действительно нравится общаться с единомышленниками, особенно если вы так же увлечены программированием, как и я.

 Чат-бот агент — программа для создания чат-ботов с ИИ, которую вы запускаете на своём сервере. Разворачивается одним Docker-контейнером, все данные хранятся в постоянном volume `/data`. Своя база данных не нужна: встроенная SQLite работает из коробки, PostgreSQL подключается по желанию.

## Минимальные требования

Достаточно любого Linux-хоста с Docker (например, недорогого VPS). Всё остальное уже встроено в образ:

- веб-сервер приложения (ASP.NET Core 9 runtime);
- база данных SQLite — работает без настройки;
- эмулятор Telegram — можно собирать и проверять ботов, не создавая настоящего бота и не подключаясь к мессенджеру;
- для чата с ИИ-агентом понадобится адрес и ключ вашего Pastukhov Agent — но это необязательно: без них всё работает, кроме этого чата.

## Docker Compose

Создайте файл `compose.yml` и запустите `docker compose up -d`:

```
services:
  chatbotagent-ru:
    image: maxpastukhov/chatbot-agent:latest
    container_name: chatbotagent-ru
    ports:
      - "3979:80"
    volumes:
      - chatbotagent-data-ru:/data
    environment:
      - ASPNETCORE_ENVIRONMENT=Production
      - ASPNETCORE_URLS=http://+:80
      - CHATBOT_AGENT_BRAND=pastukhov
      - CHATBOT_AGENT_DATA=/data
# Необязательная связка с Pastukhov Agent (без этих строк чат с агентом скрыт):
# - AGENT_API_URL=https://адрес-вашего-агента
# - AGENT_API_KEY=ключ-вашего-агента
# Размещение в подпапке первого уровня (например, /chatbot):
# - CHATBOT_AGENT_BASE_PATH=/chatbot
    restart: unless-stopped
    sysctls:
      fs.inotify.max_user_watches: "524288"
      fs.inotify.max_user_instances: "512"

volumes:
  chatbotagent-data-ru:
```

После запуска интерфейс будет доступен на порту `3979`: `http://<адрес-сервера>:3979`.

Две строки `sysctls` повышают системные лимиты отслеживания изменений файлов — они нужны, чтобы правки сценария и скриптов подхватывались мгновенно, без перезапуска. Без них на больших проектах часть изменений может не дойти до приложения.

## Переменные окружения

Настройки приложения передаются переменными окружения — так удобно задать их один раз в `compose.yml` и менять без правки кода:

| Переменная | Назначение | По умолчанию |
| --- | --- | --- |
| CHATBOT_AGENT_BRAND | бренд и язык интерфейса: pastukhov (русский) или xedant (английский) | xedant |
| CHATBOT_AGENT_DATA | папка постоянных данных (в контейнере — /data) | /data |
| CHATBOT_AGENT_DB | строка подключения PostgreSQL; пустое значение — встроенная SQLite | SQLite (/data/data.db) |
| CHATBOT_AGENT_BASE_PATH | размещение в подпапке первого уровня (например, /chatbot) | — (работа в корне домена) |
| CHATBOT_AGENT_LOGIN | логин готового пользователя; вместе с паролем ниже создаёт администратора при старте | — (саморегистрация) |
| CHATBOT_AGENT_PASSWORD | строчная SHA-256-сумма пароля, не сам пароль | — |
| AGENT_API_URL | адрес Pastukhov Agent для чата с ИИ-агентом | — (чат с агентом скрыт) |
| AGENT_API_KEY | ключ доступа к вашему Pastukhov Agent | — |
| AGENT_LICENSE | лицензионный ключ, чтобы не вводить его руками в интерфейсе | — (лицензии в образе нет) |
| CHATBOT_AGENT_MANAGEMENT_KEY | SHA-256 hex ключа управления: по нему ИИ-агент управляет ботами по API; пусто — выключено | — (управление по API выключено) |
| CHATBOT_AGENT_CONFIG_FOLDER | папка файлов ботов (сценарии в формате YAML) | /project/config |
| CHATBOT_AGENT_SCRIPTS_FOLDER | папка скриптов ботов на Python | /project/scripts |
| CHATBOT_AGENT_DOCS_FOLDER | папка документов для файлового менеджера | /project/docs |
| CHATBOT_AGENT_SSL | самоподписанный HTTPS: auto — включить; рядом _SSL_PORT и _SSL_DOMAINS | — (только HTTP) |
| JWT_SECRET_KEY | секрет для подписи сессий входа (в MultiAgent задаётся автоматически) | ключ в /data/keys |
| SSO_PROXY_TOKEN | вход через внешний SSO-прокси (в MultiAgent задаётся автоматически) | — (выключено) |
| CHATBOT_AGENT_ERROR_REPORTING | 0 — выключить отправку сведений об ошибках | — (отправка всё равно выключена: адрес приёма не задан) |

Обратите внимание: `CHATBOT_AGENT_PASSWORD` содержит не пароль, а его строчную SHA-256-сумму — «отпечаток», по которому пароль восстановить нельзя. Получить её можно командой `echo -n вашпароль | sha256sum`. При входе приложение считает сумму от введённого пароля и сравнивает с заданной. Так же устроен и ключ управления: в `CHATBOT_AGENT_MANAGEMENT_KEY` попадает не сам ключ, а его сумма в шестнадцатеричном виде — её считает та же команда `sha256sum`.

## Где хранятся данные

Все постоянные данные живут в volume `/data` и переживают пересоздание контейнера:

- `/data/data.db` — база данных SQLite (когда не используется PostgreSQL);
- `/data/auth/` — ключи защиты данных;
- `/data/keys/` — ключ подписи сессий входа;
- `/data/bot-media/<бот>/` — медиатека ботов: картинки и файлы из диалогов;
- `/data/kb/` — файлы баз знаний (документы, по которым отвечает ИИ);
- `/data/venv/` — окружение Python, в котором выполняются ваши скрипты;
- `/data/.pastukhov/license.txt` — активированный лицензионный ключ (у бренда `xedant` — папка `.xedant`);
- `/data/config/` и `/data/scripts/` — файлы ботов и скрипты, если приложение установлено через Pastukhov MultiAgent.

Volume обязателен: без него при первом же `docker compose down` вы потеряете базу, медиатеку и базы знаний. И важное преимущество: всё это обычные файлы — их видно, можно скопировать и перенести на другой сервер.

## Первый вход

Откройте интерфейс в браузере. Пока в базе нет ни одного пользователя, форма регистрации открыта сама — первый зарегистрировавшийся становится администратором. Если логин и пароль заданы переменными окружения, входите под ними (в переменной — сумма, при входе вводите сам пароль). Сессия входа живёт 90 дней. Сразу после входа можно сменить язык и тему интерфейса в настройках. Подробнее — в разделе [Начало работы](/agents/chatbot/docs/getting-started)
.

## Что сделать после запуска

Создайте первого бота — имя и токен из @BotFather. Если настоящего бота пока нет, это не помеха: тестового бота можно собрать и проверить прямо на встроенном эмуляторе. Затем соберите сценарий в студии и проверьте его: подробности — в разделах [Боты](/agents/chatbot/docs/bots)
, [Студия сценариев](/agents/chatbot/docs/studio)
 и [Эмулятор](/agents/chatbot/docs/emulator)
.

При желании подключите Pastukhov Agent — тогда появляется чат с ИИ-агентом, которому можно поручать правки словами. Подробнее — в разделе [Чат с ИИ-агентом](/agents/chatbot/docs/agent)
.

## Запуск без Compose

Можно запустить приложение и одной командой `docker run`:

```
docker run -d \
  --name chatbotagent-ru \
  -p 3979:80 \
  -v chatbotagent-data-ru:/data \
  -e CHATBOT_AGENT_BRAND=pastukhov \
  -e CHATBOT_AGENT_DATA=/data \
  --sysctl fs.inotify.max_user_watches=524288 \
  --sysctl fs.inotify.max_user_instances=512 \
  --restart unless-stopped \
  maxpastukhov/chatbot-agent:latest
```

Остальные переменные окружения можно передать файлом через флаг `--env-file .env` — так удобнее, когда настроек много.

## Установка через Pastukhov MultiAgent

Если у вас несколько серверов и приложений, удобнее ставить Чат-бот агент из Pastukhov MultiAgent: продукт есть в списке новых агентов. MultiAgent сам поднимает контейнер, выдаёт постоянный адрес и HTTPS, подключает базу PostgreSQL и общий том документов, а также связывает приложение с выбранным ИИ-агентом — вручную ничего прописывать не нужно. Порт по умолчанию — 6050. Подробнее — на странице [MultiAgent](/agents/multiagent)
.

## Лицензия

Лицензионный ключ активируется в диалоге лицензии или передаётся переменной `AGENT_LICENSE` при запуске. Готовой лицензии в образе нет: свежий контейнер стартует без неё. Без лицензии работает всё — боты, студия, эмулятор, проверка, база знаний, операторы, чат-комната, виджет, рассылки и аналитика. Лицензия нужна только для отправки сообщений в чат с ИИ-агентом. Подробнее — на странице [Лицензирование](/agents/chatbot/license)
.

[← Вернуться на главную раздела Чат-бот агент](/agents/chatbot)
