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

Не хотите читать всё это?

Просто скиньте в любой ИИ-чат (Claude, ChatGPT и т.д.) ссылку на https://pastukhov.com/agents/multiagent/docker.md или на 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-проверки. Подробнее — в разделе Серверы.

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