Агуулгыг алгасах

Тохиргоо (env)

Бүх тохиргоо орчны хувьсагчаар дамжина. Эх жишээ: backend/.env.example.

Secret-ийг хэзээ ч commit хийж болохгүй

backend/internal/config/.env*, root .env болон backend.env нь gitignore-д багтсан. Шинэ env хувьсагч нэмбэл README-д баримтжуул, утгыг нь биш.

Суурь

Хувьсагч Жишээ Тайлбар
PORT 8080 API сонсох порт
ENVIRONMENT production production үед хатуу горим асна
DEBUG false Дэлгэрэнгүй лог
ALLOWED_ORIGINS https://gerege.mn CORS allow-list (таслалаар; * хориотой)
TRUSTED_PROXIES Reverse proxy-ийн IP-ууд

Өгөгдлийн сан ба Redis

Хувьсагч Тайлбар
DB_POSTGRE_DSN / DB_POSTGRE_URL Холболтын мөр
DB_MAX_OPEN_CONNS, DB_MAX_IDLE_CONNS, DB_CONN_MAX_LIFE_MINS Pool тохиргоо
REDIS_HOST, REDIS_PASS, REDIS_EXPIRED Redis холболт ба TTL

Production дээр DSN нь sslmode=verify-full байх ёстой

Production guard үүнийг шаарддаг. Docker compose стек нь зориудаар ENVIRONMENT=development-оор ажилладаг — дотоод DB нь TLS-гүй.

API нь superuser-ээр холбогдож БОЛОХГҮЙ

RLS үйлчлэхийн тулд app нь хамгийн бага эрхтэй role-оор холбогдоно. Superuser / BYPASSRLS бол production дээр асахаас татгалзана.

JWT ба session

Хувьсагч Тайлбар
JWT_SECRET ≥32 тэмдэгт. Солих нь бүх session-ийг хүчингүй болгоно
JWT_EXPIRED, JWT_REFRESH_EXPIRED Access / refresh хугацаа
JWT_ISSUER Ихэвчлэн апп-ын домэйн. Солиход одоо байгаа бүх токен хүчингүй болно

eID (Relying Party)

Хувьсагч Тайлбар
EID_BASE_URL e-ID Gerege /v3 суурь (эсвэл SSO-ийн sign relay)
EID_RP_UUID, EID_RP_SECRET RP-ийн креденшл
SIGN_RELAY_TOKEN Гарын үсгийн зуучлалын хуваалцсан токен (хоосон = унтраалттай)

OIDC provider тал (энэ апп өөрөө provider болох)

Хувьсагч Тайлбар
OAUTH_ISSUER Жишээ https://gerege.mn. Тохируулсан үед л provider асна
SSO_STATE_KEY login/consent урсгалын transient state HMAC түлхүүр (≥32 байт)
SSO_FIRSTPARTY_CLIENTS Зөвшөөрөл алгасах first-party client-ууд
SSO_ADMIN_API_KEYS, SSO_ADMIN_SUBS Admin API хандалт

Гуравдагч тал ба хадгалалт

Хувьсагч Тайлбар
GEMINI_API_KEY AI pipeline. Байхгүй бол /ai/* жинхэнэ 500 өгнө
GOOGLE_CLIENT_ID / SECRET Google холболт (хоосон бол товч харагдахгүй)
VERIFY_API_BASE, VERIFY_API_KEY, VERIFY_CHANNEL Иргэн/байгууллага лавлах
XYP_API_BASE, XYP_CLIENT_ID, XYP_CLIENT_SECRET Улсын бүртгэлийн лавлагаа
GSPACE_* Апп-ын өөрийн SFTP хадгалалт (хэрэглэгч тус бүр квоттой)
INTEGRATION_ENC_KEY ≥16 байт. OAuth токен + super admin MFA-г шифрлэнэ

INTEGRATION_ENC_KEY заавал шаардлагатай

Deploy хийхэд энэ түлхүүр заавал байх ёстой, ба нэгэнт тавьсны дараа хэзээ ч солигдож болохгүй — өмнө шифрлэсэн бүх өгөгдөл эвдэрнэ.

Ажиглалт (observability)

Хувьсагч Тайлбар
OTEL_EXPORTER, OTEL_SAMPLE_RATIO OpenTelemetry trace
OBSERVABILITY_TOKEN Production дээр /metrics ба /swagger-ийг хаах bearer token

Frontend

Хувьсагч Тайлбар
BACKEND_URL BFF-ээс backend руу залгах дотоод хаяг (жишээ http://api:8080)

Хуваалцсан сүлжээнд api нэр давхцаж болзошгүй

Олон стек нэг Docker сүлжээнд байвал http://api:8080 өөр контейнер руу зохирч, бүх /api/v1/* 404 болж мэднэ. Тухайн үед BACKEND_URL-ээ өөрийн api контейнерийн бүтэн нэрээр pin хий.