Установка и настройка¶
Это руководство проведёт вас через установку Turbo EA с Docker, настройку окружения, загрузку демонстрационных данных и запуск дополнительных сервисов, таких как ИИ-предложения и MCP-сервер.
Предварительные требования¶
- Docker (v20.10+)
- Docker Compose (v2.0+)
Около 2 ГБ свободного места на диске, несколько минут пропускной способности для первого пула образов и порты 8920 (HTTP) и опционально 9443 (HTTPS) свободные на хосте.
Шаг 1: Получение конфигурации¶
Вам нужны docker-compose.yml и настроенный файл .env в рабочем каталоге. Самый простой способ — клонировать репозиторий:
git clone https://github.com/vincentmakes/turbo-ea.git
cd turbo-ea
cp .env.example .env
Откройте .env и установите два обязательных значения:
# Учётные данные PostgreSQL (используются встроенным контейнером базы данных).
# Выберите сильный пароль — он сохраняется во встроенном томе.
POSTGRES_PASSWORD=choose-a-strong-password
# Ключ подписи JWT. Сгенерируйте с помощью:
# python3 -c "import secrets; print(secrets.token_urlsafe(64))"
SECRET_KEY=your-generated-secret
Все остальные значения в .env.example имеют разумные значения по умолчанию.
Note
Бэкенд отказывается запускаться с примером SECRET_KEY вне разработки. Сгенерируйте настоящий ключ перед продолжением.
Шаг 2: Pull и запуск¶
Встроенный стек (Postgres + бэкенд + фронтенд + edge-nginx) запускается из готовых мульти-архитектурных образов GHCR — локальная сборка не требуется:
docker compose pull
docker compose up -d
Откройте http://localhost:8920 и зарегистрируйте первого пользователя. Первый зарегистрированный пользователь автоматически получает роль Admin.
Чтобы изменить порт хоста, установите HOST_PORT в .env (по умолчанию 8920). Прямое HTTPS-завершение рассматривается в Шаге 5.
Шаг 3: Загрузка демонстрационных данных (необязательно)¶
Turbo EA может запуститься пустым (только встроенная метамодель) или с демонстрационным набором данных NexaTech Industries, идеальным для оценки, обучения и исследования возможностей.
Установите флаг seed в .env перед первым запуском:
SEED_DEMO=true
Затем docker compose up -d (если уже запустили, см. «Сброс и повторный посев» ниже).
Параметры загрузки¶
| Переменная | По умолчанию | Описание |
|---|---|---|
SEED_DEMO |
false |
Загружает полный набор NexaTech Industries, включая данные BPM и PPM |
SEED_BPM |
false |
Загружает только демо-процессы BPM (подмножество SEED_DEMO) |
SEED_PPM |
false |
Загружает только данные проектов PPM (подмножество SEED_DEMO) |
RESET_DB |
false |
Удаляет все таблицы и пересоздаёт их с нуля при запуске |
SEED_DEMO=true уже включает данные BPM и PPM — не нужно устанавливать флаги подмножеств отдельно.
Демонстрационная учётная запись администратора¶
При загрузке демонстрационных данных создаётся учётная запись администратора по умолчанию:
| Поле | Значение |
|---|---|
admin@turboea.demo |
|
| Пароль | TurboEA!2025 |
| Роль | Admin |
Warning
Демонстрационная учётная запись администратора использует известные публичные учётные данные. Измените пароль — или создайте свою учётную запись администратора и отключите эту — для любого окружения за пределами локальной оценки.
Что включает демонстрация¶
Около 150 cards по всем четырём слоям архитектуры, плюс связи, теги, комментарии, задачи, BPM-диаграммы, PPM-данные, ADR и Statement of Architecture Work:
- Ядро EA — Организации, ~20 Бизнес-возможностей, Бизнес-контексты, ~15 Приложений, ~20 ИТ-компонентов, Интерфейсы, Объекты данных, Платформы, Цели, 6 Инициатив, 5 групп тегов, 60+ связей.
- BPM — ~30 бизнес-процессов в 4-уровневой иерархии с BPMN 2.0 диаграммами, связями элемент-card и оценками процессов.
- PPM — Отчёты о статусе, Work Breakdown Structures, ~60 задач, бюджетные и затратные позиции, и реестр рисков по 6 демо-Инициативам.
- EA Delivery — Architecture Decision Records и Statements of Architecture Work.
Сброс и повторный посев¶
Чтобы очистить базу данных и начать заново:
RESET_DB=true
SEED_DEMO=true
Перезапустите стек, затем удалите RESET_DB=true из .env — оставление его установленным сбрасывает базу данных при каждом перезапуске:
docker compose up -d
# Убедитесь, что новые данные на месте, затем отредактируйте .env, удалив RESET_DB
Шаг 4: Дополнительные сервисы (профили Compose)¶
Оба дополнения подключаются опционально через профили Docker Compose и работают рядом с основным стеком, не нарушая его.
ИИ-предложения описаний¶
Генерируйте описания cards с локальным LLM (встроенный Ollama) или коммерческим провайдером. Встроенный контейнер Ollama — самый простой путь для self-hosted развертывания.
Добавьте в .env:
AI_PROVIDER_URL=http://ollama:11434
AI_MODEL=gemma3:4b
AI_AUTO_CONFIGURE=true
Запустите с профилем ai:
docker compose --profile ai up -d
Модель скачивается автоматически при первом запуске (несколько минут, в зависимости от соединения). См. Возможности ИИ для полного справочника по конфигурации, включая использование OpenAI / Gemini / Claude / DeepSeek вместо встроенного Ollama.
MCP-сервер¶
MCP-сервер позволяет ИИ-инструментам — Claude Desktop, Cursor, GitHub Copilot и другим — запрашивать ваши данные EA через Model Context Protocol с RBAC на пользователя. Только чтение.
docker compose --profile mcp up -d
См. MCP-интеграция для настройки OAuth и подробностей об инструментах.
Оба одновременно¶
docker compose --profile ai --profile mcp up -d
Шаг 5: Прямой HTTPS (необязательно)¶
Встроенный edge-nginx может сам терминировать TLS — полезно, если у вас нет внешнего reverse-proxy. Добавьте в .env:
TURBO_EA_TLS_ENABLED=true
TLS_CERTS_DIR=./certs
TURBO_EA_TLS_CERT_FILE=cert.pem
TURBO_EA_TLS_KEY_FILE=key.pem
HOST_PORT=80
TLS_HOST_PORT=443
Поместите cert.pem и key.pem в ./certs/ (каталог монтируется только для чтения в контейнер nginx). Образ выводит server_name и пересылаемую схему из TURBO_EA_PUBLIC_URL, обслуживает и HTTP, и HTTPS, и автоматически перенаправляет HTTP на HTTPS.
Для развёртываний за существующим reverse-proxy (Caddy, Traefik, Cloudflare Tunnel) оставьте TURBO_EA_TLS_ENABLED=false и пусть прокси управляет TLS.
Закрепление версии¶
docker compose pull по умолчанию берёт :latest. Чтобы закрепить конкретный релиз в продакшене, установите TURBO_EA_TAG:
TURBO_EA_TAG=1.0.0 docker compose up -d
Опубликованные версии помечаются как :<full-version>, :<major>.<minor>, :<major> и :latest. Workflow публикации исключает пререлизы (-rc.N) из :latest и кратких тегов :X.Y / :X. См. Релизы для полного дерева тегов и политики канала пререлизов.
Использование существующего PostgreSQL¶
Если у вас уже работает управляемый или общий экземпляр PostgreSQL, направьте бэкенд на него и пропустите встроенный сервис db.
Создайте базу данных и пользователя на существующем сервере:
CREATE USER turboea WITH PASSWORD 'your-password';
CREATE DATABASE turboea OWNER turboea;
Переопределите переменные подключения в .env:
POSTGRES_HOST=your-postgres-host
POSTGRES_PORT=5432
POSTGRES_DB=turboea
POSTGRES_USER=turboea
POSTGRES_PASSWORD=your-password
Затем запустите как обычно: docker compose up -d. Встроенный сервис db остаётся определённым в docker-compose.yml; вы можете оставить его в простое или явно остановить.
Проверка образов¶
Начиная с 1.0.0, каждый опубликованный образ подписан с помощью cosign keyless OIDC и поставляется с SBOM SPDX, сгенерированным buildkit. См. Цепочка поставок для команды проверки и того, как получить SBOM из реестра.
Разработка из исходного кода¶
Если вы хотите собрать стек из исходного кода (модифицируя код бэкенда или фронтенда), используйте Compose-перекрытие для разработки:
docker compose -f docker-compose.yml -f dev/docker-compose.dev.yml up -d --build
Или удобную цель:
make up-dev
Полное руководство для разработчика — именование веток, команды lint и тестов, проверки pre-commit — находится в CONTRIBUTING.md.
Краткая справка¶
| Сценарий | Команда |
|---|---|
| Первый запуск (пустые данные) | docker compose pull && docker compose up -d |
| Первый запуск с демо-данными | Установите SEED_DEMO=true в .env, затем та же команда |
| Добавить ИИ-предложения | Добавьте переменные ИИ, затем docker compose --profile ai up -d |
| Добавить MCP-сервер | docker compose --profile mcp up -d |
| Закрепить версию | TURBO_EA_TAG=1.0.0 docker compose up -d |
| Сброс и повторный посев | RESET_DB=true + SEED_DEMO=true, перезапустите, затем удалите RESET_DB |
| Использовать внешний Postgres | Переопределите переменные POSTGRES_* в .env, затем docker compose up -d |
| Сборка из исходного кода | make up-dev |
Следующие шаги¶
- Откройте http://localhost:8920 (или ваш настроенный
HOST_PORT) и войдите. Если вы загрузили демо-данные, используйтеadmin@turboea.demo/TurboEA!2025. Иначе зарегистрируйтесь — первый пользователь автоматически получает роль Admin. - Изучите Панель управления для обзора вашего EA-ландшафта.
- Настройте типы cards и поля — метамодель полностью основана на данных, без изменений кода.
- Для продакшен-развертываний просмотрите Политику совместимости и Цепочку поставок.