chore: добавить каркас image-platform
- добавлен базовый pnpm workspace для будущих приложений - добавлена dev-инфраструктура PostgreSQL и MinIO - добавлены env-пример и базовые правила репозитория - зафиксированы архитектура, data model и API-контракт - описан контракт с внешним imgproxy
This commit is contained in:
84
docs/development.md
Normal file
84
docs/development.md
Normal file
@@ -0,0 +1,84 @@
|
||||
# Локальная разработка
|
||||
|
||||
## Принцип
|
||||
|
||||
В Docker запускаем стабильную инфраструктуру. Кодовые сервисы позже запускаем нодой с hot reload.
|
||||
|
||||
Сейчас в Docker есть только:
|
||||
|
||||
- PostgreSQL;
|
||||
- MinIO;
|
||||
- MinIO bucket init.
|
||||
|
||||
`api`, `worker`, `admin` и `gateway` пока не созданы.
|
||||
|
||||
## Запуск инфраструктуры
|
||||
|
||||
```bash
|
||||
cp .env.example .env
|
||||
pnpm install
|
||||
pnpm infra:up
|
||||
```
|
||||
|
||||
Проверить compose config:
|
||||
|
||||
```bash
|
||||
pnpm infra:config
|
||||
```
|
||||
|
||||
Остановить:
|
||||
|
||||
```bash
|
||||
pnpm infra:down
|
||||
```
|
||||
|
||||
Логи:
|
||||
|
||||
```bash
|
||||
pnpm infra:logs
|
||||
```
|
||||
|
||||
## Порты
|
||||
|
||||
| Сервис | URL |
|
||||
|---|---|
|
||||
| PostgreSQL | `localhost:5433` |
|
||||
| MinIO API | `http://localhost:9000` |
|
||||
| MinIO Console | `http://localhost:9001` |
|
||||
|
||||
## Будущий dev flow
|
||||
|
||||
Когда появятся приложения:
|
||||
|
||||
```text
|
||||
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 через:
|
||||
|
||||
```yaml
|
||||
extra_hosts:
|
||||
- "host.docker.internal:host-gateway"
|
||||
```
|
||||
|
||||
## External imgproxy для разработки
|
||||
|
||||
`imgproxy` не входит в `image-platform` stack. Для локальной разработки можно использовать любой внешний endpoint и прописать его в `.env`:
|
||||
|
||||
```env
|
||||
IMGPROXY_UPSTREAM=http://localhost:18080
|
||||
```
|
||||
|
||||
Если нужен локальный standalone imgproxy, его можно запустить отдельно вне этого compose stack. Он остаётся внешней зависимостью платформы.
|
||||
Reference in New Issue
Block a user