85 lines
1.9 KiB
Markdown
85 lines
1.9 KiB
Markdown
|
|
# Локальная разработка
|
|||
|
|
|
|||
|
|
## Принцип
|
|||
|
|
|
|||
|
|
В 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. Он остаётся внешней зависимостью платформы.
|