Self-Hosting
Запустите Moira на своей машине через Docker Compose. Основной путь скачивает готовый образ из реестра — клонировать исходники и собирать локально не нужно.
Требования
Заголовок раздела «Требования»- Docker с плагином Compose (
docker compose) - Два файла из репозитория:
docker-compose.ymlи.env.example
Быстрый старт
Заголовок раздела «Быстрый старт»Создайте конфиг
Окно терминала cp .env.example .envДля запуска на
localhostзначения по умолчанию работают без изменений.Запустите контейнер
Окно терминала docker compose up -dCompose скачивает
ghcr.io/moira-mcp/moira:latestи запускает контейнер.Откройте веб-интерфейс
http://localhost:8080Ваш экземпляр также раздаёт эту документацию по адресу
http://localhost:8080/docs/(и/ru/docs/), а MCP-эндпоинт — поhttp://localhost:8080/mcp.
При первом запуске Moira генерирует недостающие секреты и одноразовый пароль администратора.
Конфигурация
Заголовок раздела «Конфигурация»DEPLOYMENT_MODE=self-host (по умолчанию) — установка для одного пользователя или приватной команды: без открытой регистрации, без обязательной верификации email, недостающие секреты генерируются при первом запуске.
Переменные, зависящие от хоста
Заголовок раздела «Переменные, зависящие от хоста»Эти три должны указывать на ваш хост и иметь согласованные порты. Значения по умолчанию нацелены на localhost:8080, поэтому для запуска на localhost правки не нужны.
| Переменная | По умолчанию | Назначение |
|---|---|---|
MOIRA_HOST | localhost:8080 | Публичный хост (протокол определяется автоматически) |
MOIRA_PORT | 8080 | Порт хоста, проброшенный в контейнер |
STATIC_ARTIFACTS_DOMAIN | static.localhost:8080 | Домен для размещаемых HTML-артефактов |
Для реального хоста или другого порта меняйте все три вместе:
MOIRA_HOST=moira.example.comMOIRA_PORT=8080STATIC_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-клиента»MCP-эндпоинт — это ваш хост плюс /mcp:
http://localhost:8080/mcpДобавьте его как MCP-сервер в ваш AI-клиент и пройдите OAuth-аутентификацию. Настройку клиента смотрите в Быстром старте.
Добавление собственных workflow-флоу
Заголовок раздела «Добавление собственных workflow-флоу»В образе есть встроенный каталог 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Связанное
Заголовок раздела «Связанное»- Быстрый старт - Подключение AI-клиента
- MCP-клиенты - Интеграции с клиентами