---
title: "Установка Analytics Agent"
id: "1332"
type: "page"
slug: "install"
published_at: "2026-08-15T23:29:19+00:00"
modified_at: "2026-08-16T14:00:32+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-контейнером, все данные хранятся в постоянном volume `/data`. Python для Jupyter Notebooks уже встроен в образ. Отчёты — это JSON-файлы: их можно версионировать в Git и переносить простым копированием.

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

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

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

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

## 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:/data
    environment:
      - ASPNETCORE_ENVIRONMENT=Production
      - ASPNETCORE_URLS=http://+:80
      - ANALYTICS_DATA_PATH=/data
      - ANALYTICS_BRAND=pastukhov
      - ANALYTICS_SECRET_KEY=change-me-in-production
      - ANALYTICS_ADMIN_LOGIN=admin
      - ANALYTICS_ADMIN_PASSWORD={sha256-хэш пароля}
    restart: unless-stopped
    sysctls:
      fs.inotify.max_user_watches: "524288"
      fs.inotify.max_user_instances: "512"

volumes:
  analytics-agent-data:
```

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

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

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

- **ANALYTICS_ADMIN_LOGIN** — логин администратора (по умолчанию `admin` из appsettings).
- **ANALYTICS_ADMIN_PASSWORD** — **SHA-256-хэш** пароля, а не сам пароль. Хэш вычисляется командой `echo -n "ваш-пароль" | sha256sum`. Приложение хэширует введённый при входе пароль и сравнивает с этим значением.
- **ANALYTICS_SECRET_KEY** — ключ подписи JWT-токенов (по умолчанию `default-secret-key-change-in-production` — обязательно замените в продакшене).
- **ANALYTICS_DATA_PATH** — папка данных (по умолчанию `/project/data`; в контейнере — `/data`).
- **ANALYTICS_BRAND** — бренд и язык интерфейса: `pastukhov` (русский) или `xedant` (английский, по умолчанию).
- **ANALYTICS_LAKEHOUSE_PATH** — корневая папка Lakehouse (по умолчанию `/lakehouse`).
- **AGENT_API_URL** и **AGENT_API_KEY** — URL и API-ключ Pastukhov Agent для ИИ-функций. Без них кнопки ИИ скрыты, всё остальное работает.

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

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

Все постоянные данные живут в volume `/data` и переживают пересоздание контейнера. Volume обязателен — без него вы потеряете отчёты и настройки окружения при первом же `docker compose down`.

- `/data/documents/` — документы-отчёты в виде JSON-файлов;
- `/data/requirements.txt` — зависимости Python для Jupyter Notebooks: засеивается при первом запуске, можно дополнять своими библиотеками;
- `ANALYTICS_LAKEHOUSE_PATH` — файлы данных Lakehouse: Parquet, SQLite, Markdown.

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

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

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

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

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

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

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

```
# .env
ASPNETCORE_ENVIRONMENT=Production
ASPNETCORE_URLS=http://+:80
ANALYTICS_DATA_PATH=/data
ANALYTICS_BRAND=pastukhov
ANALYTICS_SECRET_KEY=длинная-случайная-строка
ANALYTICS_ADMIN_LOGIN=admin
ANALYTICS_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:/data \
  --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_BRAND=xedant`.

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