- slowapi limiter on POST /auth/login (10/min per IP, Persian error msg); edge-level coarse limits stay in Traefik - mem_limit on every main-compose service (~4.4GB worst case, protects the 8GB shared host during rebuilds) - monitoring images pinned to verified tags (prom v3.4.1, grafana 11.6.3, loki/promtail 3.5.0, node-exporter v1.9.1, postgres-exporter v0.17.1, cadvisor v0.49.1); exporter image name fixed to postgres-exporter
23 lines
528 B
Plaintext
23 lines
528 B
Plaintext
fastapi>=0.115.0
|
|
uvicorn[standard]>=0.30.0
|
|
sqlalchemy[asyncio]>=2.0.30
|
|
asyncpg>=0.29.0
|
|
pydantic>=2.7.0
|
|
pydantic-settings>=2.2.0
|
|
python-multipart>=0.0.9
|
|
minio>=7.2.0
|
|
|
|
# v2.6 — Casdoor JWT auth
|
|
pyjwt[crypto]>=2.8.0
|
|
httpx>=0.27.0
|
|
|
|
# Casdoor seeding — bcrypt password hashes (never plaintext)
|
|
bcrypt>=4.1.0
|
|
|
|
# Observability — metrics + Sentry/GlitchTip exception capture
|
|
prometheus-fastapi-instrumentator>=7.0.0
|
|
sentry-sdk[fastapi]>=2.0.0
|
|
|
|
# Rate limiting (login brute-force brake; edge limit lives in Traefik)
|
|
slowapi>=0.1.9
|