Skip to content

Хөгжүүлэлтийн орчин

GSign платформын development болон production орчны мэдээлэл.

Architecture

                    Internet


             ┌─────────────────────┐
             │      HAProxy        │
             │  (SSL Passthrough)  │
             └──────────┬──────────┘

      ┌─────────────────┴─────────────────┐
      ▼                                   ▼
┌───────────────┐                 ┌───────────────┐
│  Dev Server   │                 │  Prod Server  │
│    (K3s)      │                 │    (K3s)      │
│               │                 │               │
│ dev.*         │                 │ gesign.mn     │
│ api.dev.*     │                 │ api.gesign.mn │
│ admin.dev.*   │                 │ admin.*       │
└───────────────┘                 └───────────────┘

URLs

Production

SubdomainService
gesign.mnFrontend (Next.js)
api.gesign.mnBackend (Go/Fiber)
admin.gesign.mnAdmin Panel

Development

SubdomainService
dev.gesign.mnFrontend (Next.js)
api.dev.gesign.mnBackend (Go/Fiber)
admin.dev.gesign.mnAdmin Panel
doc.dev.gesign.mnDocumentation
pgadmin.dev.gesign.mnPgAdmin

Admin Tools

ServiceURL
Grafanahttps://grafana.gesign.mn
Prometheushttps://prometheus.gesign.mn
MinIOhttps://minio.gesign.mn
Mongo Expresshttps://mongo.gesign.mn
Redis Commanderhttps://redis.gesign.mn
GitLabhttps://gitlab.gerege.mn

SSL Certificate: Let's Encrypt (cert-manager)

Platform

ComponentTechnology
OrchestrationKubernetes (K3s)
IngressTraefik
SSLcert-manager + Let's Encrypt
Load BalancerHAProxy
Registrylocalhost:5000

Runtime Versions

RuntimeVersion
Docker27.x
K3sv1.31+
Go1.23+
Node.js20.x
npm10.x

Namespace Structure

gsign/
├── backend           # Go/Fiber API
├── frontend          # Next.js App
├── admin             # Admin Panel
├── docs              # Documentation (VitePress)
├── hsm-backend       # HSM Service
├── mongodb           # MongoDB
└── redis             # Redis

shared-services/
├── postgres          # PostgreSQL (shared)
├── minio             # MinIO Object Storage
├── pgadmin           # PgAdmin
└── registry          # Docker Registry

Useful Commands

bash
# Pod status
sudo k3s kubectl get pods -n gsign

# View logs
sudo k3s kubectl logs -n gsign deployment/backend --tail=100

# Restart deployment
sudo k3s kubectl rollout restart deployment/backend -n gsign

# Check certificates
sudo k3s kubectl get certificates -n gsign

# Check IngressRoutes
sudo k3s kubectl get ingressroute -n gsign

CI/CD

BranchEnvironmentDeploy
devDevelopmentAuto
mainProductionManual
yaml
# GitLab CI/CD Structure
deploy-dev:
  tags: [docker]
  rules:
    - if: '$CI_COMMIT_BRANCH == "dev"'

deploy-prod:
  tags: [prod]
  rules:
    - if: '$CI_COMMIT_BRANCH == "main"'
      when: manual

Database Access

Credentials are stored in Kubernetes secrets (gsign-secrets).

bash
# View secrets
sudo k3s kubectl get secret gsign-secrets -n gsign -o yaml

# Connect to PostgreSQL
sudo k3s kubectl exec -it deployment/postgres -n shared-services -- psql -U postgres -d gsign

GSign Digital Signature Platform