Quick Start / Быстрый старт
📋 Для интеграторов — полная настройка локального окружения
Архитектура локальной разработки
┌─────────────────── Docker ────────────────────┐
│ │
│ ┌───────────┐ ┌───────────┐ ┌──────────┐ │
│ │integ-admin│─▶│ integ-api │─▶│ postgres │ │
│ │ :4205 │ │ :3005 │ │ :5435 │ │
│ └───────────┘ └───────────┘ └──────────┘ │
│ │
└───────────────────────────────────────────────┘
│ host.docker.internal
▼
┌─────────────── Host (miniflare) ──────────────┐
│ │
│ Gateway :3010 ──▶ Integration :8787 │
│ (pnpm start) (pnpm start sofa) │
│ │ │
│ ▼ │
│ data/miniflare/ │
│ (D1 SQLite + KV) │
│ │
└───────────────────────────────────────────────┘Требования
- Node.js 20+
- pnpm (
npm install -g pnpm) - Docker Desktop
- Doppler CLI (
brew install dopplerhq/cli/doppler)
Первоначальная настройка (один раз)
1. Клонировать и установить
bash
git clone git@github.com:Happ-AI/integ-core.git
cd integ-core
pnpm install
pnpm build2. Настроить Doppler
bash
# Логин в Doppler
doppler login
# Привязка проекта integ-core
doppler setup
# → Выбрать: integ-core / local3. Авторизация в GitHub Container Registry
bash
# Для скачивания Docker-образов integ-api и integ-admin
gh auth login
gh auth token | docker login ghcr.io -u $(gh api user -q .login) --password-stdin4. Сгенерировать env файлы и настроить БД
bash
# Генерирует .env, .dev.vars, wrangler.toml и .env.api (для Docker)
pnpm generate:env -- local
# Создать локальные D1/KV базы данных
pnpm setup:localЕжедневный запуск
Шаг 1: Запустить Docker-сервисы
bash
pnpm docker:localЭто запустит:
| Сервис | URL |
|---|---|
| PostgreSQL | localhost:5435 |
| integ-api | http://localhost:3005 |
| integ-admin | http://localhost:4205 |
Шаг 2: Запустить miniflare (в отдельных терминалах)
Терминал 1 — Gateway:
bash
pnpm start gatewayGateway доступен на http://localhost:3010
Терминал 2 — Интеграция:
bash
pnpm start sofaWorker доступен на http://localhost:8787
Готово!
- integ-admin UI: http://localhost:4205
- integ-api Scalar: http://localhost:3005/api/scalar
- integ-core API Reference: http://localhost:3010/reference (все интеграции)
- Integration: http://localhost:8787
Обновление Docker-образов
Когда выходят обновления integ-api или integ-admin:
bash
# Скачать новые образы и перезапустить
docker compose pull
docker compose up -dИли одной командой:
bash
pnpm docker:localОстановка сервисов
bash
# Остановить Docker-контейнеры
docker compose down
# Miniflare останавливается через Ctrl+C в терминалахСоздание новой интеграции
bash
pnpm generate:integration mycrm
pnpm start mycrmПолезные команды
| Команда | Описание |
|---|---|
pnpm generate:env -- local | Сгенерировать env файлы из Doppler |
pnpm setup:local | Создать локальные D1/KV базы |
pnpm setup:reset | Сбросить и пересоздать локальные БД |
pnpm start gateway | Запуск Gateway Worker |
pnpm start sofa | Запуск интеграции sofa |
pnpm build | Сборка всех пакетов |
pnpm test | Запуск тестов |
pnpm docker:local | Запустить Docker-стек |
docker compose down | Остановить Docker-контейнеры |
docker compose logs -f integ-api | Логи integ-api |
Troubleshooting
Docker образы не скачиваются (unauthorized)
bash
gh auth login
gh auth token | docker login ghcr.io -u $(gh api user -q .login) --password-stdin"Can't resolve @happ-integ/..."
bash
pnpm buildОшибки с переменными окружения
bash
pnpm generate:env -- localinteg-api не запускается (ошибка .env.api)
bash
# Перегенерировать env файлы
pnpm generate:env -- local"D1Database is required"
bash
pnpm setup:local
# или для полного сброса:
pnpm setup:resetПорт занят
bash
# Проверить что использует порт
lsof -i :3005
# Остановить Docker-контейнеры
docker compose downСледующие шаги
- 📖 Архитектура — как всё устроено
- 📖 Чеклист интеграции — что не забыть
- 📖 Правила кода — стиль и конвенции
- 📖 Handlers Reference — написание handlers