feat: добавить Image Gateway с кешем Souin

- добавлена сборка Caddy с Souin, Otter и NutsDB

- добавлена конфигурация dev, prod и test Docker Compose

- настроено кеширование через Otter L1 и NutsDB L2

- добавлены e2e-тесты Bun для кеша, restart и purge

- добавлена документация по запуску, API кеша и тестам
This commit is contained in:
2026-05-04 12:18:37 +03:00
commit 0751c4b469
26 changed files with 1608 additions and 0 deletions

39
README.md Normal file
View File

@@ -0,0 +1,39 @@
# Image Gateway
Self-hosted прокси-сервер для обработки и кеширования изображений.
**Caddy** + **imgproxy** + **Souin cache** — три компонента, один Docker Compose.
## Что делает
- Принимает URL оригинального изображения
- Обрабатывает: resize, crop, конвертация в WebP/AVIF, качество
- Кеширует результат — повторные запросы отдаются за ~1ms
- Purge кеша через API
## Быстрый старт
```bash
cp .env.example .env
docker compose -f docker-compose.dev.yml up -d --build
```
```bash
# Обработка
curl -s -o /tmp/test.jpg \
"http://localhost:8888/unsafe/resize:fit:800:0:0/q:80/plain/https://picsum.photos/1200/800"
# Кеш: MISS → HIT
curl -s -o /dev/null -D - "http://localhost:8888/unsafe/resize:fit:100:0:0/q:80/plain/https://picsum.photos/200/200" | grep Cache-Status
# Purge
curl -X PURGE http://localhost:2019/souin-api/souin/flush
```
## Документация
→ [docs/index.md](docs/index.md)
## Лицензия
Private