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

46
docker-compose.yml Normal file
View File

@@ -0,0 +1,46 @@
services:
imgproxy:
image: darthsim/imgproxy:latest
restart: unless-stopped
environment:
IMGPROXY_KEY: ${IMGPROXY_KEY:-}
IMGPROXY_SALT: ${IMGPROXY_SALT:-}
IMGPROXY_WORKERS: ${IMGPROXY_WORKERS:-2}
IMGPROXY_MAX_SRC_RESOLUTION: ${IMGPROXY_MAX_SRC_RESOLUTION:-20}
IMGPROXY_USE_ETAG: "true"
IMGPROXY_ENABLE_VIDEO_THUMBNAILS: "false"
IMGPROXY_DOWNLOAD_TIMEOUT: ${IMGPROXY_DOWNLOAD_TIMEOUT:-30}
IMGPROXY_ALLOWED_SOURCES: ${IMGPROXY_ALLOWED_SOURCES:-}
networks:
- gateway
caddy:
build:
context: .
dockerfile: Dockerfile.caddy
restart: unless-stopped
ports:
- "${CADDY_PORT:-80}:${CADDY_PORT:-80}"
volumes:
- ./Caddyfile:/etc/caddy/Caddyfile:ro
- caddy-data:/data
- caddy-cache:/cache
environment:
IMGPROXY_UPSTREAM: imgproxy:8080
DOMAIN: ${DOMAIN:-}
CADDY_PORT: ${CADDY_PORT:-80}
ADMIN_USER: ${ADMIN_USER:-admin}
ADMIN_PASS: ${ADMIN_PASS:-}
depends_on:
imgproxy:
condition: service_started
networks:
- gateway
networks:
gateway:
driver: bridge
volumes:
caddy-data:
caddy-cache: