Ho Ngoc Hai 5ce64b9a1c
Some checks failed
Build & Deploy to K8s / build-and-deploy (push) Failing after 26s
feat(infra): migrate POS System routing to Traefik v3
Architecture: Nginx Ingress (TLS) → Traefik (routing) → Services

- Add traefik.yaml: Traefik v3.3 deployment with file provider config
  - 65+ route rules for api.techbi.org (25 backend services)
  - platform.techbi.org → pos-web
  - Middlewares: rate-limit (100/s), retry (3x), compress, secure-headers
  - WebSocket support for SignalR hubs (/hubs/pos, /hubs/kitchen, /hubs/chat)
- Update ingress.yaml: Nginx now proxies POS domains to Traefik ClusterIP
  (Nginx still handles TLS termination via cert-manager/Let's Encrypt)
- Update network-policy.yaml: Add Traefik ingress/egress/DNS policies
- Update deploy.yaml: Add traefik.yaml to CI/CD apply step
- Other services unaffected: Neon-UI, Rancher, Gitea, Harbor, Grafana, MinIO

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-11 21:40:12 +07:00

GoodGo Platform

Monorepo platform with microservices architecture for the merchant/customer ecosystem — POS, F&B, retail, spa, karaoke, and more.

Domain: goodgo.vn | Staging: api.staging.goodgo.vn

Tech Stack

Layer Technologies
Backend .NET 10.0 (C# 14), MediatR/CQRS, EF Core 10, FluentValidation, Serilog, Dapper, Polly
Web Blazor WASM + MudBlazor 8.15 (Material Design)
Mobile .NET MAUI (cross-platform), SwiftUI (iOS)
Database PostgreSQL 16 (local) / Neon PostgreSQL (cloud), Redis 7
Messaging RabbitMQ 3 (AMQP)
Storage MinIO (S3-compatible)
Gateway Traefik v3
Infra Docker Compose (local), Kubernetes RKE2 (staging/prod)
CI/CD GitHub Actions, Docker Hub
Observability Prometheus + Grafana + Loki + Promtail
Auth Duende IdentityServer, JWT Bearer, OAuth2
Monorepo pnpm 8 workspaces, Turborepo

Project Structure

services/                    # 26 .NET microservices (Clean Architecture + CQRS)
apps/                        # Frontend applications
packages/                    # Shared Node.js packages (@goodgo/*)
deployments/                 # Environment configs (local, staging, production)
infra/                       # Infrastructure (Traefik, databases, observability)
scripts/                     # Automation scripts (dev, db, deploy, build)

Services

Core Platform

  • iam-service-net — Identity & Access Management (JWT, RBAC, MFA, Sessions)
  • merchant-service-net — Merchant & Shop management
  • catalog-service-net — Product catalog
  • order-service-net — Order processing
  • inventory-service-net — Inventory management
  • wallet-service-net — Wallet & payments
  • fnb-engine-net — F&B engine
  • booking-service-net — Booking & reservations

Engagement

  • promotion-service-net — Promotions & discounts
  • membership-service-net — Membership & loyalty
  • chat-service-net — Chat & messaging (SignalR + Redis)
  • social-service-net — Social features
  • mission-service-net — Gamification missions

Advertising

  • ads-manager-service-net — Campaign management
  • ads-serving-service-net — Ad delivery
  • ads-billing-service-net — Ad billing
  • ads-tracking-service-net — Event tracking
  • ads-analytics-service-net — Analytics

Marketing Integrations

  • mkt-facebook-service-net — Facebook
  • mkt-whatsapp-service-net — WhatsApp
  • mkt-x-service-net — X (Twitter)
  • mkt-zalo-service-net — Zalo

Utilities

  • storage-service-net — File storage (MinIO)
  • mining-service-net — Data mining

Frontend Apps

App Stack Description
web-client-tpos-net Blazor WASM + MudBlazor POS system (multi-vertical: karaoke, restaurant, cafe, spa, retail)
web-client-base-net Blazor WASM + MudBlazor Enterprise portal
app-client-base-net .NET MAUI Cross-platform mobile app
app-client-base-swift SwiftUI iOS app
web-docs VitePress Documentation site

Quick Start

Prerequisites

  • Docker & Docker Compose
  • .NET 10.0 SDK
  • Node.js 25+
  • pnpm 8+

Run Locally

# Start infrastructure (PostgreSQL, Redis, RabbitMQ, MinIO, Traefik) + all services
cd deployments/local
docker compose up -d

# Run database migrations (per service)
./scripts/db/migrate.sh

# Start a specific service for development
./scripts/dev/start-service.sh iam-service-net

Architecture

Each .NET service follows Clean Architecture + CQRS:

ServiceName/
  src/
    ServiceName.API/              # Controllers + MediatR Commands/Queries
    ServiceName.Domain/           # Entities, aggregates, domain events (no dependencies)
    ServiceName.Infrastructure/   # EF Core, repositories, migrations
  tests/
    ServiceName.UnitTests/        # xUnit + FluentAssertions
    ServiceName.FunctionalTests/  # WebApplicationFactory integration tests

Documentation

  • ROADMAP.md — Development roadmap and phase tracking
  • CLAUDE.md — Full architecture reference and agent configuration

Maintainer

Built by VelikHo (@hongochai10)

Description
GoodGo POS Platform
Readme 42 MiB
Languages
C# 60.9%
HTML 22%
TypeScript 10.2%
CSS 3%
Swift 1.9%
Other 1.9%