---
title: "Установка Analytics Agent"
id: "1332"
type: "page"
slug: "install"
published_at: "2026-08-15T23:29:19+00:00"
modified_at: "2026-10-04T01:32:18+00:00"
url: "https://pastukhov.com/agents/analytics/install"
markdown_url: "https://pastukhov.com/agents/analytics/install.md"
excerpt: "Analytics Agent — self-hosted веб-приложение для быстрого анализа и визуализации данных. Разворачивается одним Docker-контейнером, все…"
---

# Установка Analytics Agent

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

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

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

 Analytics Agent — self-hosted веб-приложение для быстрого анализа и визуализации данных. Разворачивается одним Docker-контейнером, все данные хранятся в постоянных томах; Python для Jupyter Notebooks и своих скриптов уже встроен в образ. Отчёты — это JSON-файлы: их можно версионировать в Git и переносить простым копированием.

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

Достаточно любого Linux-хоста с Docker. Всё остальное уже в образе:

- ASP.NET Core 9 runtime — веб-сервер приложения;
- Python 3 + venv + pip — для Jupyter Notebooks и внешних скриптов;
- sqlite3 и другие файловые утилиты для работы с данными.

СУБД не нужна: документы-отчёты хранятся файлами в постоянном томе, а источники данных (SQLite, PostgreSQL, ClickHouse или свой Python-скрипт) подключаются по мере надобности через интерфейс.

В простое Analytics Agent не нагружает сервер: фоновые проверки запускаются только при изменениях, а не по таймеру. Когда с приложением никто не работает, освобождается память, занятая поиском и промежуточными результатами, — а сам индекс поиска лежит на диске и подхватывается при следующем запросе. Поэтому Analytics Agent спокойно живёт на слабом сервере рядом с другими приложениями.

## Docker Compose

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

```
services:
  analytics-agent:
    image: maxpastukhov/analytics-agent:latest
    container_name: analytics-agent
    ports:
      - "5011:80"
    volumes:
# отчёты, источники и настройки — постоянный том
      - analytics-agent-data:/project/apps/analytics
# служебные базы приложения — отдельный постоянный том
      - analytics-agent-alerts:/apps/analytics
# общий Lakehouse с Data Agent (раскомментируйте, если он у вас есть)
# - /data:/data
    environment:
      - ASPNETCORE_ENVIRONMENT=Production
      - ASPNETCORE_URLS=http://+:80
      - ANALYTICS_APP_CONFIG_PATH=/project/apps/analytics
      - ANALYTICS_APP_DATA_PATH=/apps/analytics
      - ANALYTICS_APP_BRAND=pastukhov
      - ANALYTICS_APP_SECRET_KEY=change-me-in-production
      - ANALYTICS_APP_ADMIN_LOGIN=admin
      - ANALYTICS_APP_ADMIN_PASSWORD={sha256-хэш пароля}
    restart: unless-stopped
    sysctls:
      fs.inotify.max_user_watches: "524288"
      fs.inotify.max_user_instances: "512"

volumes:
  analytics-agent-data:
  analytics-agent-alerts:
```

После запуска интерфейс будет доступен на порту `5011`: `http://localhost:5011`.

Sysctls повышают лимиты inotify — они нужны file watcher’у, который отслеживает изменения файлов отчётов: правки подхватываются мгновенно, без перезагрузки. Без этих лимитов на больших объёмах документов watcher может не увидеть часть изменений.

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

- **ANALYTICS_APP_ADMIN_LOGIN** — логин администратора (по умолчанию `admin` из appsettings).
- **ANALYTICS_APP_ADMIN_PASSWORD** — **SHA-256-хэш** пароля, а не сам пароль. Хэш вычисляется командой `echo -n "ваш-пароль" | sha256sum`. Приложение хэширует введённый при входе пароль и сравнивает с этим значением.
- **ANALYTICS_APP_SECRET_KEY** — ключ подписи JWT-токенов (по умолчанию `default-secret-key-change-in-production` — обязательно замените в продакшене).
- **ANALYTICS_APP_CONFIG_PATH** — папка документов-отчётов, источников данных и настроек (в контейнере — `/project/apps/analytics`). Это самое ценное: копируйте её для резервной копии.
- **ANALYTICS_APP_DATA_PATH** — папка служебных баз и бинарных файлов приложения: база оповещений, окружение Python (в контейнере — `/apps/analytics`).
- **ANALYTICS_APP_BRAND** — бренд и язык интерфейса: `pastukhov` (русский) или `xedant` (английский, по умолчанию).
- **ANALYTICS_APP_LAKEHOUSE_PATH** — корневая папка Lakehouse (по умолчанию `/data`).
- **ANALYTICS_APP_TEMPLATES_PATH** и **ANALYTICS_APP_TEMPLATES_RU_PATH** — английская и русская версии библиотеки шаблонов анализа (по умолчанию — `templates` и `templates_ru` рядом с проектом; корректируйте только если переносите библиотеку).
- **ANALYTICS_APP_TEMPLATE_DATA_PATH** и **ANALYTICS_APP_TEMPLATE_DATA_RU_PATH** — демонстрационные данные шаблонов: базы, на которых шаблоны можно открыть и изучить сразу после установки. В образе они уже распакованы, менять не нужно.
- **ANALYTICS_APP_BASE_PATH** — если приложение живёт не в корне домена, а в подпапке (например, `/analytics`): путь с ведущей косой чертой и без завершающей. Того же результата можно добиться обратным прокси, который передаёт папку заголовком `X-Forwarded-Prefix`.
- **AGENT_API_URL** и **AGENT_API_KEY** — URL и API-ключ Pastukhov Agent для ИИ-функций. Без них кнопки ИИ скрыты, всё остальное работает.

Без установленных `ANALYTICS_APP_ADMIN_LOGIN` и `ANALYTICS_APP_ADMIN_PASSWORD` вход в приложение невозможен. JWT-токен живёт 90 дней (129600 минут), сессия — 1 час.

## Хранение данных

Постоянные данные разделены на две папки, у каждой — свой том; обе переживают пересоздание контейнера. Тома обязательны — без них вы потеряете отчёты и настройки при первом же `docker compose down`.

- `/project/apps/analytics/documents/` — документы-отчёты в виде JSON-файлов;
- `/project/apps/analytics/` — источники данных и настройки приложения: это то, что важно сохранить и удобно версионировать в Git;
- `/project/apps/analytics/requirements.txt` — зависимости Python для Jupyter Notebooks: засеивается при первом запуске, можно дополнять своими библиотеками;
- `/project/apps/analytics/scripts/` — свои Python-скрипты и их список библиотек в файле `requirements.txt`: тоже в постоянном томе, тоже удобно версионировать (подробнее — [Python-скрипты](/agents/analytics/docs/scripts) );
- `/apps/analytics/scripts/` — окружение Python для скриптов и их рабочие папки: собирается само, отдельно сохранять не нужно;
- `/apps/analytics/alerts.db` — база оповещений: правила, точки контакта, тишины, история срабатываний. Это один файл, и он же — полная резервная копия настроек оповещений;
- `/apps/analytics/search-index/` — индекс поиска по документам и шаблонам: лежит на диске, поэтому поиск отвечает сразу после перезапуска и не занимает память постоянно. Удалять его не страшно — при следующем поиске соберётся заново;
- `ANALYTICS_APP_LAKEHOUSE_PATH` (по умолчанию `/data`) — файлы Lakehouse: Parquet, SQLite, Markdown. В общей установке с Data Agent это одна папка на двоих.

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

Используйте логин и пароль, заданные переменными `ANALYTICS_APP_ADMIN_LOGIN` и `ANALYTICS_APP_ADMIN_PASSWORD` (в переменной — хэш, вводите при входе сам пароль). После входа можно сразу сменить язык и тему интерфейса. На главном экране — список «Новый документ» и каталог отчётов.

## Настройка после запуска

Источники данных — SQLite, PostgreSQL, ClickHouse или свой Python-скрипт — подключаются в разделе «Источники данных» веб-интерфейса: создание, проверка подключения, автоопределение схемы. Подробнее — в разделе [Источники данных](/agents/analytics/docs/data-sources)
.

Демонстрационные данные шаблонов подключены сразу: в списке источников вы увидите базы `ml-demo_…`, на которых можно открыть и пройти любой шаблон из библиотеки, пока вы ещё не подключили свои данные.

ИИ-функции включаются переменными `AGENT_API_URL` и `AGENT_API_KEY`: появляются кнопки добавления блоков обычным языком и «Исправить с помощью ИИ», а также кнопка «Использовать этот шаблон» в библиотеке шаблонов анализа. Список моделей и их цвета берутся из вашего Pastukhov Agent — те же модели, что и во всех остальных приложениях. Подробнее — в разделе [агент в отчёте](/agents/analytics/docs/agent)
.

## Docker CLI с файлом .env

Можно запустить Analytics Agent и без compose — командой `docker run`, сохранив переменные окружения в файле `.env`:

```
# .env
ASPNETCORE_ENVIRONMENT=Production
ASPNETCORE_URLS=http://+:80
ANALYTICS_APP_CONFIG_PATH=/project/apps/analytics
ANALYTICS_APP_DATA_PATH=/apps/analytics
ANALYTICS_APP_BRAND=pastukhov
ANALYTICS_APP_SECRET_KEY=длинная-случайная-строка
ANALYTICS_APP_ADMIN_LOGIN=admin
ANALYTICS_APP_ADMIN_PASSWORD=sha256-хэш-пароля
# опционально: ИИ-функции через Pastukhov Agent
# AGENT_API_URL=
# AGENT_API_KEY=
```

```
docker run -d \
  --name analytics-agent \
  --env-file .env \
  -p 5011:80 \
  -v analytics-agent-data:/project/apps/analytics \
  -v analytics-agent-alerts:/apps/analytics \
  --sysctl fs.inotify.max_user_watches=524288 \
  --sysctl fs.inotify.max_user_instances=512 \
  --restart unless-stopped \
  maxpastukhov/analytics-agent:latest
```

Флаг `--env-file` считывает все переменные из файла. Отдельные значения можно переопределить дополнительными флагами `-e` после него, например `-e ANALYTICS_APP_BRAND=xedant`.

[← Вернуться на главную раздела Analytics Agent](/agents/analytics)
