Перейти к содержимому

Self-Hosting

Запустите Moira на своей машине через Docker Compose. Основной путь скачивает готовый образ из реестра — клонировать исходники и собирать локально не нужно.

  • Docker с плагином Compose (docker compose)
  • Два файла из репозитория: docker-compose.yml и .env.example
  1. Создайте конфиг

    Окно терминала
    cp .env.example .env

    Для запуска на localhost значения по умолчанию работают без изменений.

  2. Запустите контейнер

    Окно терминала
    docker compose up -d

    Compose скачивает ghcr.io/moira-mcp/moira:latest и запускает контейнер.

  3. Откройте веб-интерфейс

    http://localhost:8080

    Ваш экземпляр также раздаёт эту документацию по адресу http://localhost:8080/docs//ru/docs/), а MCP-эндпоинт — по http://localhost:8080/mcp.

При первом запуске Moira генерирует недостающие секреты и одноразовый пароль администратора.

DEPLOYMENT_MODE=self-host (по умолчанию) — установка для одного пользователя или приватной команды: без открытой регистрации, без обязательной верификации email, недостающие секреты генерируются при первом запуске.

Эти три должны указывать на ваш хост и иметь согласованные порты. Значения по умолчанию нацелены на localhost:8080, поэтому для запуска на localhost правки не нужны.

ПеременнаяПо умолчаниюНазначение
MOIRA_HOSTlocalhost:8080Публичный хост (протокол определяется автоматически)
MOIRA_PORT8080Порт хоста, проброшенный в контейнер
STATIC_ARTIFACTS_DOMAINstatic.localhost:8080Домен для размещаемых HTML-артефактов

Для реального хоста или другого порта меняйте все три вместе:

Окно терминала
MOIRA_HOST=moira.example.com
MOIRA_PORT=8080
STATIC_ARTIFACTS_DOMAIN=static.example.com

В режиме self-host они генерируются при первом запуске и сохраняются в <data-dir>/.secrets.env. Оставьте их пустыми в .env:

ПеременнаяСгенерированное значение
BETTER_AUTH_SECRETКлюч шифрования сессий
TELEGRAM_ENCRYPTION_KEYКлюч шифрования учётных данных Telegram
ADMIN_PASSWORDПароль администратора, выводится в логи один раз

Данные для входа администратора выводятся в логи контейнера один раз при первом запуске:

Окно терминала
docker compose logs | grep -A3 "ADMIN LOGIN"

Войдите с ADMIN_EMAIL (по умолчанию admin@moira.local) и выведенным паролем.

MCP-эндпоинт — это ваш хост плюс /mcp:

http://localhost:8080/mcp

Добавьте его как MCP-сервер в ваш AI-клиент и пройдите OAuth-аутентификацию. Настройку клиента смотрите в Быстром старте.

В образе есть встроенный каталог workflow в ./workflows/production. Чтобы дополнительно загрузить свои флоу, задайте WORKFLOWS_DIRS — список базовых каталогов каталога через двоеточие (каждый со структурой flows/<uuid>.json):

Окно терминала
WORKFLOWS_DIRS=./workflows/production:./my-private-workflows/production

Каталоги объединяются и дедуплицируются по (owner, slug). Поздний каталог переопределяет ранний при коллизии, поэтому каталог, указанный последним, может расширять или перекрывать встроенный. Не задан → только встроенный ./workflows/production. Смонтируйте дополнительный каталог в контейнер (например, через volume в compose), чтобы путь существовал во время выполнения.

Локальная сборка — альтернатива для контрибьюторов, которым нужно изменить образ. В docker-compose.yml закомментируйте строку image: и раскомментируйте блок build:, затем:

Окно терминала
docker compose up -d --build