Сервер — управляемая Linux-машина, на которой MultiAgent разворачивает агентов и инструменты. Всё управление идёт по SSH: MultiAgent выполняет команды, передаёт файлы и читает статусы контейнеров, не требуя на сервере ничего, кроме базовой системы.
Добавление сервера
Кнопка «Добавить сервер» открывает форму: имя, хост, SSH-порт, пользователь и аутентификация — пароль или приватный PEM-ключ. Для соединений через бастион настраивается proxy jump: отдельные хост, порт, пользователь и учётные данные прыжка.
После сохранения доступен статус соединения: не проверено, OK или ошибка. Кнопка «Проверить подключение» выполняет тест с real-time выводом каждого шага проверки в интерфейс.
Onboarding-проверки
Для каждого сервера MultiAgent прогоняет набор onboarding-проверок и подсвечивает, что готово, а что требует внимания:
- SSH — доступность подключения;
- Docker — установлен ли и запущен ли демон;
- daemon.json — корректность конфигурации Docker;
- Папки — наличие папок для агентов, данных, проектов и инструментов;
- Postgres — общий Postgres-инстанс для агентов;
- Forgejo — встроенный Git-сервер;
- Бэкапы — rsyncd-контейнер для резервного копирования.
Установка Docker
Если Docker на сервере отсутствует, MultiAgent установит его сам — одной кнопкой, с потоковым выводом команд в интерфейс. Там же можно отредактировать /etc/docker/daemon.json (например, зеркала реестра или логирование) — MultiAgent применит файл и перезапустит демон.
Для образов из частного реестра на сервере настраивается Registry Auth: пользователь и токен реестра, которые MultiAgent использует при pulling образов агентов и инструментов.
Папки сервера
MultiAgent хранит файлы агентов в четырёх папках сервера — все настраиваются, значения по умолчанию:
- Папка агентов —
/root/agents: по подпапке на каждого агента с егоcompose.yml; - Папка данных —
/root/data: данные агентов, у каждого своя подпапка, монтируется внутрь контейнера в/data; - Папка проектов —
/root/projects: git-репозитории агентов, монтируются в/project; - Папка инструментов —
/root/tools: файлы сервисов, развёрнутых из библиотеки инструментов.
Единая структура папок упрощает бэкапы: все данные всех агентов сервера лежат в одном дереве каталогов.
Общий Postgres
Вместо отдельной SQLite-базы у каждого агента можно поднять общий Postgres на сервере: MultiAgent развернёт docker-compose инстанс (по умолчанию порт 5436), сохранит пароль и проверит соединение. Для агентов с включённым Postgres в их окружение автоматически подставляется строка подключения AGENT_DATABASE.
Git-сервер Forgejo
MultiAgent разворачивает на сервере Forgejo — self-hosted Git-сервер (по умолчанию порт 3200) с выделенным admin-пользователем. Для каждого агента можно привязать существующий репозиторий или создать новый; SSH-ключи для доступа MultiAgent выпускает и хранит сам. Подробнее — в разделе Агенты.
Резервное копирование
Onboarding устанавливает на сервер rsyncd-контейнер с пятью read-only модулями, покрывающими все папки: агенты, данные, проекты, инструменты и Forgejo. Бэкапы забираются с сервера вашими клиентскими машинами по rsync — например, nightly-заданием на машине с бэкап-хранилищем:
rsync -avz rsync://backup@server-host:873/data/ /backups/server-host/data/
Шаблон URL агентов
Чтобы MultiAgent знал, как открывать веб-интерфейсы агентов (за reverse proxy или SSH-туннелем), на сервере настраивается шаблон URL с плейсхолдерами {slug}, {host} и {port}:
https://{slug}.agents.example.com
Файловый менеджер
У каждого сервера есть встроенный файловый менеджер: просмотр дерева каталогов, чтение и редактирование файлов, загрузка и скачивание, подсчёт токенов текстовых файлов. Это позволяет поправить конфиг или посмотреть логи на сервере, не покидая MultiAgent.