Быстрый старт
Запуск платформы локально за 5 минут
Быстрый старт
Этот раздел поможет вам запустить платформу Манитон локально для разработки и тестирования.
Предварительные требования
- Docker и Docker Compose (версия 20.10+)
- Bun (версия 1.0+) - пакетный менеджер
- Node.js (версия 18+)
- Make (для выполнения скриптов инфраструктуры)
# Проверка версий
docker --version
docker-compose --version
bun --version
node --version
make --versionСтруктура проекта
maniton-monorepo/
├── apps/
│ ├── client/ # Frontend приложение (Next.js)
│ ├── docs/ # Документация (Nextra)
│ ├── services/ # Микросервисы
│ │ ├── auth/ # Auth Service (KYC, лимиты, санкции) - Реализован
│ │ ├── cfa-core/ # CFA Core Service (управление ЦФА) - Реализован
│ │ ├── ledger/ # Ledger Service (двойная бухгалтерия) - Реализован
│ │ └── besu-connector/ # Besu Connector (интеграция с блокчейном) - Реализован (Go)
│ └── tests/ # E2E тесты (Playwright)
├── packages/
│ ├── contracts/ # Protobuf контракты
│ ├── nestjs-common/ # Общие библиотеки для NestJS
│ └── blockchain/ # Смарт-контракты (Hardhat)
├── infra/
│ ├── besu/ # Конфигурация Hyperledger Besu
│ ├── kafka/ # Конфигурация Kafka
│ ├── k8s/ # Kubernetes манифесты
│ └── monitoring/ # Grafana, Prometheus, Loki
└── scripts/ # Утилиты для разработкиЗапуск локально
1. Клонирование и установка зависимостей
# Клонирование репозитория
git clone <repository-url>
cd maniton-monorepo
# Установка зависимостей
bun install
# Генерация кода из Protobuf контрактов
bun buf:generate2. Запуск инфраструктуры
# Запуск Kafka, PostgreSQL, Hyperledger Besu
cd infra/kafka
docker-compose up -d
cd ../besu
docker-compose up -d3. Запуск сервисов
# Запуск всех сервисов в development режиме
bun run dev
# Или запуск отдельных сервисов
bun run dev:auth
bun run dev:cfa-core
bun run dev:ledger4. Запуск фронтенда
# В отдельном терминале
cd apps/client
bun run dev5. Проверка работоспособности
# Проверка здоровья сервисов
curl http://localhost:3010/health # Auth Service
curl http://localhost:3020/health # CFA Core Service
curl http://localhost:3030/health # Ledger Service
curl http://localhost:3004/health # Besu Connector
# Проверка Kafka топиков
docker exec -it kafka kafka-topics.sh --list --bootstrap-server localhost:9092
# Проверка блокчейна
curl http://localhost:8545 \
-X POST \
-H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","method":"eth_blockNumber","params":[],"id":1}'Доступ к сервисам
| Сервис | Статус | URL | Описание |
|---|---|---|---|
| Frontend | В разработке | http://localhost:3000 | Веб-приложение |
| Auth Service | ✅ Реализован | http://localhost:3010 | gRPC:3010 |
| CFA Core Service | ✅ Реализован | http://localhost:3020 | gRPC:3020 |
| Ledger Service | ✅ Реализован | http://localhost:3030 | gRPC:3030 |
| Besu Connector | ✅ Реализован | http://localhost:3004 | gRPC:3004 (Go) |
| Kafka UI | ✅ Реализован | http://localhost:8080 | UI для Kafka |
| PostgreSQL | ✅ Реализован | localhost:5432 | База данных |
| Hyperledger Besu | ✅ Реализован | http://localhost:8545 | JSON-RPC |
Планируемые сервисы
- Payments-RU Service - Шлюз для СБП и российских платежей (в проектировании)
- Market Service - Торговое ядро и матчинг ордеров (в проектировании)
Разработка
Добавление новых сервисов
- Создайте новый сервис в
apps/services/<service-name> - Добавьте его в
turbo.jsonдля кэширования - Обновите
package.jsonв корне для скриптов запуска - Добавьте Protobuf контракты в
packages/contracts/proto
Работа с Protobuf
# Форматирование .proto файлов
bun buf format -w
# Линтинг контрактов
bun buf lint
# Генерация TypeScript и Go кода
bun buf generate
# Проверка breaking changes
bun buf breaking --against .git#branch=mainТестирование
# Unit тесты
bun test
# E2E тесты (Playwright)
cd apps/tests/playwright
bun run test
# Интеграционные тесты
bun test:integrationПолезные команды
# Очистка всех контейнеров
docker-compose down -v
# Просмотр логов сервисов
docker-compose logs -f <service-name>
# Пересборка контейнеров
docker-compose up -d --build
# Проверка миграций базы данных
bun prisma migrate dev
# Генерация Prisma клиента
bun prisma generateСледующие шаги
- Изучите архитектуру платформы
- Ознакомьтесь с концепциями
- Изучите API сервисов
- Посмотрите гайды по операциям
Troubleshooting
Проблема: Kafka не стартует
# Очистка данных Kafka
docker-compose down -v
rm -rf kafka-data
docker-compose up -dПроблема: Besu не подключается
# Проверка логов Besu
docker-compose logs besu
# Сброс сети
docker network prune
docker-compose up -dПроблема: Порты заняты
# Измените порты в .env.dev
# или используйте другой порт для сервиса