769e76313f
- Recovery middleware (no more crash-on-panic), request metrics/monitoring store + admin API, in-memory TTL caching for read-heavy option/question/ category lookups, gzip + rate-limiting middleware, sanitized chat message encoding, and pg_dump-based database backups with an admin API. - Fix N+1 queries in the discover feed, candidate detail, and match list endpoints by batching selection/photo/user/last-message lookups into single queries instead of one-per-item loops. - Tune DB connection pooling and add HTTP server timeouts + graceful shutdown so the API degrades gracefully instead of falling over under load. - Fix a null (vs empty array) JSON response for candidates/matches without photos or interests, which crashed the web app's swipe card.
34 lines
1.1 KiB
Bash
34 lines
1.1 KiB
Bash
APP_ENV=development
|
|
APP_PORT=8080
|
|
|
|
DB_HOST=localhost
|
|
DB_PORT=5432
|
|
DB_USER=postgres
|
|
DB_PASSWORD=postgres
|
|
DB_NAME=dating_app
|
|
DB_SSLMODE=disable
|
|
# connection pool؛ زیر بار بالا این مقادیر رو با ظرفیت واقعی سرور Postgres تنظیم کن
|
|
DB_MAX_OPEN_CONNS=25
|
|
DB_MAX_IDLE_CONNS=10
|
|
DB_CONN_MAX_LIFETIME_MINUTES=30
|
|
DB_CONN_MAX_IDLE_TIME_MINUTES=5
|
|
|
|
JWT_ACCESS_SECRET=test-access-secret
|
|
JWT_REFRESH_SECRET=test-refresh-secret
|
|
JWT_ACCESS_TTL_MINUTES=1440
|
|
JWT_REFRESH_TTL_DAYS=30
|
|
|
|
OTP_EXPIRY_SECONDS=180
|
|
OTP_LENGTH=4
|
|
OTP_HASH_SECRET=test-otp-secret
|
|
|
|
ADMIN_BOOTSTRAP_PHONE=09120000000
|
|
|
|
# -------- فقط برای docker-compose (نیازی نیست موقع اجرای مستقیم go run باشه) --------
|
|
# DB_HOST رو docker-compose خودش موقع اجرای backend روی "postgres" ست میکنه؛
|
|
# مقدار بالا (localhost) فقط برای اجرای مستقیم روی سیستم خودت استفاده میشه.
|
|
WEB_PORT=3000
|
|
ADMIN_PORT=3001
|
|
# آدرسی که از مرورگر کاربر قابلدسترسیه (نه آدرس داخلی شبکهی داکر)
|
|
PUBLIC_API_URL=http://localhost:8080/api/v1
|