- добавлен базовый pnpm workspace для будущих приложений - добавлена dev-инфраструктура PostgreSQL и MinIO - добавлены env-пример и базовые правила репозитория - зафиксированы архитектура, data model и API-контракт - описан контракт с внешним imgproxy
1.9 KiB
1.9 KiB
Локальная разработка
Принцип
В Docker запускаем стабильную инфраструктуру. Кодовые сервисы позже запускаем нодой с hot reload.
Сейчас в Docker есть только:
- PostgreSQL;
- MinIO;
- MinIO bucket init.
api, worker, admin и gateway пока не созданы.
Запуск инфраструктуры
cp .env.example .env
pnpm install
pnpm infra:up
Проверить compose config:
pnpm infra:config
Остановить:
pnpm infra:down
Логи:
pnpm infra:logs
Порты
| Сервис | URL |
|---|---|
| PostgreSQL | localhost:5433 |
| MinIO API | http://localhost:9000 |
| MinIO Console | http://localhost:9001 |
Будущий dev flow
Когда появятся приложения:
React/Vite admin localhost:5173
-> NestJS API localhost:3001
-> PostgreSQL localhost:5433
-> MinIO localhost:9000
worker node process
-> PostgreSQL
-> MinIO
-> external imgproxy
gateway Caddy/Souin localhost:8888
-> S3/MinIO ready variant
-> API/generator fallback on host.docker.internal:3001
Для Linux gateway container должен видеть host services через:
extra_hosts:
- "host.docker.internal:host-gateway"
External imgproxy для разработки
imgproxy не входит в image-platform stack. Для локальной разработки можно использовать любой внешний endpoint и прописать его в .env:
IMGPROXY_UPSTREAM=http://localhost:18080
Если нужен локальный standalone imgproxy, его можно запустить отдельно вне этого compose stack. Он остаётся внешней зависимостью платформы.