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

Түргэн эхлэл

Локал дээр бүтэн стекийг өргөж, нэвтрэх хүртэл ~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. Гараар ажиллуулах (хөгжүүлэлт)

cd backend
cp internal/config/.env.example internal/config/.env
# JWT_SECRET (≥32 тэмдэгт), DB, Redis, EID_* RP креденшлээ тохируул
go run ./cmd/api          # → http://localhost:8080

Migration / seed / healthcheck хоёртууд нь platform-core модульд байна:

go run github.com/gerege-systems/private-gerege-core/cmd/migration
go run github.com/gerege-systems/public-gerege-core/cmd/seed
cd frontend
cp .env.example .env.local     # BACKEND_URL=http://localhost:8080
npm install
npm run dev                    # → http://localhost:3000

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-ийн шалгуурыг локалд давтах:

cd backend && make pre-push      # lint + test + swag drift + build
gofmt -l .                       # хоосон байх ёстой

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)

Дараа нь