Перейти к содержанию

Установка и настройка

Это руководство проведёт вас через установку Turbo EA с Docker, настройку окружения, загрузку демонстрационных данных и запуск дополнительных сервисов, таких как ИИ-предложения и MCP-сервер.

Предварительные требования

Около 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 — не нужно устанавливать флаги подмножеств отдельно.

Демонстрационная учётная запись администратора

При загрузке демонстрационных данных создаётся учётная запись администратора по умолчанию:

Поле Значение
Email 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 и поля — метамодель полностью основана на данных, без изменений кода.
  • Для продакшен-развертываний просмотрите Политику совместимости и Цепочку поставок.