Түргэн эхлэл¶
Локал дээр бүтэн стекийг өргөж, нэвтрэх хүртэл ~5 минут.
Шаардлага¶
| Хэрэгсэл | Хувилбар | Тэмдэглэл |
|---|---|---|
| Docker + Compose | сүүлийн | зөвлөж буй зам — бүх стекийг нэг командаар |
| Go | 1.26+ | зөвхөн backend-ийг гараар ажиллуулах бол |
| Node.js | 20+ | зөвхөн frontend-ийг гараар ажиллуулах бол |
| PostgreSQL / Redis | 16+ / 7+ | Docker ашиглавал шаардлагагүй |
1. Хамгийн хурдан зам — Docker Compose¶
git clone https://github.com/gerege-systems/gerege-app-mn.git
cd gerege-app-mn
docker compose up -d --build
Энэ нь дараах үйлчилгээг өргөнө:
| Үйлчилгээ | Юу | Тэмдэглэл |
|---|---|---|
db |
PostgreSQL 16 + pgvector | backend/deploy/db/Dockerfile-ээс (alpine) build хийгдэнэ |
redis |
Redis 7 | Session deny-list, түр төлөв |
migrate |
Нэг удаагийн migration | up бүрд ажиллана, idempotent |
api |
Go API (:8080) |
platform-core-ийн server |
web |
Next.js BFF (:3000) |
Браузер зөвхөн үүнтэй харилцана |
Дараа нь http://localhost:3000 нээнэ.
pgvector image-ийг бүү соль
db нь alpine суурьтай pgvector image-ээс build хийгддэг. Debian суурьтай
pgvector image руу шилжвэл collation өөрчлөгдөж, одоо байгаа volume
эвдэрнэ.
Compose нь зориудаар ENVIRONMENT=development
Дотоод DB нь TLS-гүй бөгөөд production guard нь sslmode=verify-full
шаарддаг. Тиймээс локал стек development горимд ажиллана.
2. Гараар ажиллуулах (хөгжүүлэлт)¶
3. Нэвтрэх¶
Нүүр хуудсан дээрх eID-ээр нэвтрэх-ийг сонгоод гурван замын аль нэгийг ашиглана:
- QR код — дэлгэц дээрх QR-ыг eID мобайл аппаар уншуулна.
- App2App — утсан дээрээ шууд eID апп руу үсэрнэ (deep-link).
- Регистрийн дугаар — РД оруулбал бүртгэлтэй төхөөрөмж рүү push мэдэгдэл очно.
Google холболт нь GOOGLE_CLIENT_ID/SECRET тохируулагдсан үед л харагдана.
Дэлгэрэнгүйг eID нэвтрэлт-ээс үз.
eID креденшлгүй туршихад
EID_* тохируулаагүй үед жинхэнэ нэвтрэлт ажиллахгүй. Зөвхөн UI болон
архитектурыг үзэх зорилготой бол platform-core-ийн unit тестүүд FakeEID
stub ашигладаг тул урсгалыг тэндээс харж болно.
4. Шалгах¶
cd backend && go test ./... # unit тест (mock, хурдан)
cd frontend && npm run build # build + lint + typecheck (CI-тэй ижил)
cd frontend && npm run test # vitest — i18n parity, BFF, security headers
CI-ийн шалгуурыг локалд давтах:
5. Нийтлэг асуудал¶
| Шинж тэмдэг | Шалтгаан | Засвар |
|---|---|---|
migrate унана: failed to load config file |
backend.env-ийн эзэмшил буруу (контейнер uid 65532) |
chown 65532:65532 backend.env |
Бүх /api/v1/* 404 |
BACKEND_URL өөр контейнер руу зааж байна |
Бүтэн контейнер нэрээр pin хий |
| Нэвтрэх товч байхгүй | eID / Google креденшл тохируулаагүй | EID_* эсвэл GOOGLE_* нэм |
| API асахаас татгалзана | Production дээр superuser role-оор холбогдсон | Хамгийн бага эрхтэй role үүсгэ (RLS) |
Дараа нь¶
- Чадварын матриц — юу байгааг нэг харцаар
- Архитектур — давхаргууд, хамаарлын урсгал
- eID нэвтрэлт — нэвтрэлтийн урсгал
- Тохиргоо — env хувьсагчийн лавлагаа