Архитектур
dgov.mn доорх бүх зүйл нэг цөмөөс ирдэг:
Gerege Nexus. Нэвтрэлт,
тенант, өгөгдлийн сан ба түүний тусгаарлалт, OAuth2/OIDC сервер, ДАН ба E-ID,
RBAC, аудит, аппын gate, цэс, HTTP сервер, бүрхүүл — бүгд цөмийнх. Байрлуулалт
бүр цөмөөс юуг нэмж байгаагаараа ялгагдана, юуг нь хуулж авснаараа биш.
Түвшин 1 ба Түвшин 2
Экосистемийн git стратеги
(ECOSYSTEM_GIT_STRATEGY.md)
хоёр л түвшин зөвшөөрдөг ба сонголтын дүрэм нь нэг өгүүлбэр: тохиргоо
хүрэлцэхгүй болохоор л Түвшин 2 руу.
| Түвшин 1 | Түвшин 2 | |
|---|---|---|
| Репод юу байгаа | тохиргоо, nginx, deploy скрипт | дээр нь Go модулиуд, миграц, каталог |
| Цөм хаанаас ирдэг | GHCR-ийн бэлэн образ | go.mod-ын нэг мөр, хост дээр баригдана |
| Жишээ | open.dgov.mn |
sso.dgov.mn |
| Шинэчлэх гэдэг нь | CORE_REF + IMAGE_TAG хоёр мөр |
go.mod-ын хувилбар (Dependabot PR) |
open.dgov.mn нь Түвшин 1 хэвээр байгаа нь дутуу хийсэн ажил биш: төрийн
үйлчилгээний дэлгэцүүд цөмд аль хэдийн байгаа тул тэр байрлуулалтыг цөмөөс
ялгах бүх зүйл — нэр, домэйн, нэвтрэлтийн чиглэл — дөрвөн файлд багтдаг.
Өөрийн Go модуль хэрэгтэй болох өдөр л Түвшин 2 болно.
Итгэлийн чиглэл
иргэн / албан хаагч
│
▼
┌─────────────────┐ OIDC: authorization_code + PKCE ┌────────────────┐
│ open.dgov.mn │ ─────────────────────────────────▶ │ sso.dgov.mn │
│ (SSO клиент) │ ◀───────────────────────────────── │ (SSO сервер) │
└─────────────────┘ id_token, access_token └────────────────┘
│ │
▼ ▼
dgov_nexus_postgres dgov_sso_postgres
Чиглэл нэг талтай. sso.dgov.mn бол identity-гийн эх сурвалж: SSO_ISSUER
нь https://sso.dgov.mn, discovery ба токены iss бүгд тэр хаяг.
open.dgov.mn нь түүн дээр бүртгэгдсэн клиент бөгөөд SSO_CLIENT_ISSUER-ээрээ
тийш заана.
Анхаарах хоёр зүйл:
sso.dgov.mnунавалopen.dgov.mnруу шинээр нэвтрэх зам байхгүй. 2026-08-17-ноосSSO_CLIENT_LOCAL_LOGIN=false— тэр домэйн руу орох цорын ганц зам провайдер. Одоо байгаа сессүүд үргэлжилнэ. Буцах зам Runbook-ууд-д.sso.dgov.mnөөрөө өөрийгөө таина. Тэр суулгац хүнийг өөрөө нэвтрүүлдэг бөгөөд нэвтрэлтийн бүтээгдэхүүн байхаас гадна өөрийн дээрээ суусан аппуудад identity тарааж өгдөг.
Хост ба портууд
38.180.243.138 — Ubuntu 26.04 LTS, 4 CPU, 7 GB RAM, 50 GB диск. Хоёр стек зэрэгцэн ажиллана:
open.dgov.mn |
sso.dgov.mn |
|
|---|---|---|
| Репо | open-dgov-mn |
sso-dgov-mn |
| Байрлуулалт | /opt/open-dgov-mn/ |
/opt/sso-dgov-mn/ |
| Compose стек | dgov_nexus |
dgov_sso |
| Postgres | 5434 | 5438 |
| Redis | 6381 | — |
| Backend | 8082 | 8096 |
| Бүрхүүл | 3008 | 3016 |
| Backend образ | …/backend:latest (GHCR) |
sso-dgov:latest (хост дээр баригдсан) |
| Бүрхүүл образ | …/frontend:latest |
…/frontend:<commit> |
Портууд бүгд 127.0.0.1 дээр л нийтлэгддэг. Гадагшаа гарах цорын ганц зам
nginx бөгөөд vhost бүр яг нэг server_name-тэй: гурван домэйн нэг IP рүү заадаг
тул default_server ч, wildcard ч биш байх нь заавал — эсрэг тохиолдолд нэг
vhost хөршийнхөө урсгалыг залгина.
Өгөгдлийн сан тус тусдаа. Нэг санд хоёр суулгац хийх нь тусгаарлалт байхгүй гэсэн үг; хоёр сан нь мөн адил хоёр нөөцлөлт гэсэн үг (Ажиллагаа).
Домэйнууд
| Домэйн | Юу хариулдаг | TLS |
|---|---|---|
open.dgov.mn |
Цахим Засгийн бүрхүүл + API | Let's Encrypt |
sso.dgov.mn |
Нэвтрэлтийн бүрхүүл + API + OIDC discovery | Let's Encrypt |
docs.dgov.mn |
Энэ баримтын сайт (статик) | Let's Encrypt |
dgov.mn, www.dgov.mn |
Одоогоор эзэнгүй | — |
dgov.mn апексыг зориудаар эзлээгүй байгаа: тэр нь ирээдүйн порталын хаяг
бөгөөд баримтын сайт түүнийг түр эзэлбэл хожим нүүлгэх ажил, чиглүүлэлт,
эвдэрсэн холбоос болж хувирна.
Каталог ба апп суулгац
Цөм нь аппуудыг каталогоос уншиж, тенант бүрээр суулгацын мөр хайдаг. Каталогт байх нь суулгасан гэсэн үг биш: суулгацын мөр байхгүй бол модулийн API 403 хариулна, цэсэнд ч гарахгүй.
Платформ өөрийнхөө компилдсэн модулиудтай зөрчилдсөн каталог дээр асахаа болино — бүрэн бүтэн байдал нь анхааруулга биш, асалтын алдаа. Тиймээс цөмийн шинэ tag авах бүрд каталогийн хуулбар бичлэгүүдийг цөмийнхтэй тааруулах нь bump-ийн нэг хэсэг (sso.dgov.mn).
Апп суулгах нь SQL биш, API-аар:
POST /api/v1/store/apps/{slug}/install
Юу энд байхгүй вэ
Платформын өөрийнх нь архитектур — модулийн загвар, tenancy, RBAC, аудит, бүрхүүлийн гэрээ — энэ репогийн сэдэв биш. Тэдгээр цөмийн баримтад байдаг: