---
title: "Установка MultiAgent в Docker"
id: "1300"
type: "page"
slug: "docker"
published_at: "2026-08-15T21:46:31+00:00"
modified_at: "2026-08-16T14:11:31+00:00"
url: "https://pastukhov.com/agents/multiagent/docker"
markdown_url: "https://pastukhov.com/agents/multiagent/docker.md"
excerpt: "Pastukhov MultiAgent — центральный пульт управления флотом ИИ-агентов. Он разворачивается одним Docker-контейнером, а управляемые серверы…"
---

# Установка MultiAgent в Docker

[https://pastukhov.com/agents/multiagent/docker.md](https://pastukhov.com/agents/multiagent/docker.md)

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

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

 Pastukhov MultiAgent — центральный пульт управления флотом ИИ-агентов. Он разворачивается одним Docker-контейнером, а управляемые серверы подключаются по SSH: MultiAgent сам установит на них Docker и всё необходимое. Ничего настраивать на серверах вручную не требуется.

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

Сам контейнер MultiAgent лёгкий: по умолчанию он использует встроенный SQLite, а PostgreSQL подключается опционально через переменную окружения. Достаточно любого Docker-хоста с 1 ГБ RAM.

Для каждого управляемого сервера требуется:

- Linux (Ubuntu/Debian) с SSH-доступом;
- доступ root или sudo — Docker и зависимости установит сам MultiAgent;
- подключение по паролю или приватному PEM-ключу.

## Docker Compose

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

```
services:
  multiagent:
    image: maxpastukhov/multiagent:latest
    container_name: multiagent
    ports:
      - "3990:80"
    volumes:
      - multiagent-data:/data
    environment:
      - ASPNETCORE_ENVIRONMENT=Production
      - ASPNETCORE_URLS=http://+:80
      - MULTIAGENT_BRAND=pastukhov
      - MULTIAGENT_DATA=/data
    restart: unless-stopped
    sysctls:
      fs.inotify.max_user_watches: "524288"
      fs.inotify.max_user_instances: "512"

volumes:
  multiagent-data:
```

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

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

- **MULTIAGENT_DATABASE** — путь к SQLite-файлу или строка подключения PostgreSQL. По умолчанию `/data/data.db`. Если строка начинается с `Host=` или `Server=`, используется PostgreSQL.
- **MULTIAGENT_DATA** — корень постоянных данных (по умолчанию `/data`): база, ключи шифрования, лицензия, шаблоны инструментов.
- **MULTIAGENT_BRAND** — брендинг интерфейса: `pastukhov` для русской версии (значение по умолчанию в RU-образе).
- **MULTIAGENT_LICENSE** — путь к файлу лицензии или Base64-ключ. 30-дневный триал уже встроен в образ.
- **AGENT_TOOLS** — папка библиотеки шаблонов инструментов. Для сохранения при пересоздании контейнера рекомендуется `/data/tools`.
- **AGENT_ERROR_REPORTING** — отправка ошибок в Sentry. Установите `0` для отключения.
- **ASPNETCORE_URLS** — порт внутри контейнера (по умолчанию `http://+:80`).

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

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

- `/data/data.db` — база SQLite (если не используется PostgreSQL);
- `/data/keys/` — ключ шифрования и подписи JWT;
- `/data/auth/` — ключи ASP.NET Data Protection;
- `/data/tools/` — шаблоны инструментов (при `AGENT_TOOLS=/data/tools`);
- `/data/<бренд>/license.txt` — активированная лицензия.

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

В отличие от Pastukhov Agent, логин и пароль не задаются переменными окружения. Первый пользователь регистрируется прямо в веб-интерфейсе: откройте `http://localhost:3990` и нажмите «Register» на странице входа. Последующие аккаунты создаются так же — в UI. Аутентификация работает через JWT-токены сроком 90 дней.

## Добавление первого сервера

После входа добавьте первый сервер: имя, хост, SSH-порт, пользователь и пароль или приватный ключ. MultiAgent проверит подключение, предложит установить Docker и проведёт сервер через onboarding-проверки. Подробнее — в разделе [Серверы](/agents/multiagent/docs/servers)
.

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

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

```
# .env
ASPNETCORE_ENVIRONMENT=Production
ASPNETCORE_URLS=http://+:80
MULTIAGENT_BRAND=pastukhov
MULTIAGENT_DATA=/data
# опционально: PostgreSQL вместо встроенного SQLite
# MULTIAGENT_DATABASE=Host=postgres;Port=5432;User Id=multiagent;Password=secret;Database=multiagent;
# опционально: лицензионный ключ, если он у вас есть
# MULTIAGENT_LICENSE=
```

```
docker run -d \
  --name multiagent \
  --env-file .env \
  -p 3990:80 \
  -v multiagent-data:/data \
  --restart unless-stopped \
  --sysctl fs.inotify.max_user_watches=524288 \
  --sysctl fs.inotify.max_user_instances=512 \
  maxpastukhov/multiagent:latest
```

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

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