platform

module
v0.1.2 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Apr 13, 2026 License: AGPL-3.0

README

Kleff Platform

Monorepo for the Kleff platform — a full-stack application combining a React dashboard with Go microservices.

Repository Structure

platform/
├── apps/
│   └── dashboard/          # React + Vite frontend
├── packages/
│   ├── ui/                 # Shared React component library
│   ├── shared-types/       # Shared TypeScript type definitions
│   └── go-common/          # Shared Go utilities for backend services
├── services/
│   ├── billing-service/    # Billing & subscription management
│   ├── gameserver-service/ # Game server lifecycle management
│   └── identity-service/   # Authentication & user identity
├── infra/
│   ├── kubernetes/         # Kubernetes manifests
│   ├── helm/               # Helm charts
│   └── argocd/             # ArgoCD application definitions
├── docker-compose.yml      # Production compose
├── docker-compose.dev.yml  # Development compose
└── .github/                # CI/CD workflows

Tech Stack

Layer Technology
Frontend React 19, Vite 7, TypeScript, Tailwind CSS 4, shadcn/ui
Backend Go 1.23, Hexagonal Architecture
Auth OIDC (OpenID Connect)
Package Manager pnpm (Node), Go modules
Infrastructure Kubernetes, Helm, ArgoCD
CI/CD GitHub Actions

Getting Started

Prerequisites
Local Development (without Docker)
# Install Node dependencies
pnpm install

# Start the dashboard
pnpm --filter dashboard dev

# Start a Go service
cd services/identity-service
go run ./cmd/api
Running with Docker Compose
# Production build
docker compose up --build

# Development mode (with hot reload where supported)
docker compose -f docker-compose.dev.yml up --build

Apps & Services

Name Directory Port Description
dashboard apps/dashboard/ 3000 React web application
identity-service services/identity-service/ 8083 Auth & user identity
billing-service services/billing-service/ 8081 Billing & subscriptions
gameserver-service services/gameserver-service/ 8082 Game server management

Packages

Name Directory Description
@kleff/ui packages/ui/ Shared React component library
@kleff/shared-types packages/shared-types/ Shared TypeScript types
go-common packages/go-common/ Shared Go utilities

Code Ownership

Path Owner(s)
/apps @isaacwallace123
Everything else @isaacwallace123, @viktorkuts, @Reid910

Directories

Path Synopsis
cmd
api command
internal
core/catalog/adapters/registry
Package registry fetches and syncs the Kleff crate catalog from the remote crate registry (by default, github.com/kleffio/crate-registry).
Package registry fetches and syncs the Kleff crate catalog from the remote crate registry (by default, github.com/kleffio/crate-registry).
core/plugins/adapters/grpc
Package grpc manages live gRPC connections to plugin containers.
Package grpc manages live gRPC connections to plugin containers.
core/plugins/adapters/http
Package http exposes the plugin marketplace REST API.
Package http exposes the plugin marketplace REST API.
core/plugins/adapters/registry
Package registry fetches and caches the Kleff plugin catalog from the remote plugin registry (by default, github.com/kleff/plugin-registry).
Package registry fetches and caches the Kleff plugin catalog from the remote plugin registry (by default, github.com/kleff/plugin-registry).
core/plugins/application
Package application holds the PluginManager — the central coordinator for plugin lifecycle: deploy, stop, configure, health-check, and gRPC routing.
Package application holds the PluginManager — the central coordinator for plugin lifecycle: deploy, stop, configure, health-check, and gRPC routing.
core/plugins/domain
Package domain holds the core plugin domain types.
Package domain holds the core plugin domain types.
shared/config
Package config provides helpers for reading configuration from environment variables with typed defaults.
Package config provides helpers for reading configuration from environment variables with typed defaults.
shared/database
Package database provides shared database connectivity utilities.
Package database provides shared database connectivity utilities.
shared/events
Package events provides a lightweight in-process event bus for publishing domain events between modules.
Package events provides a lightweight in-process event bus for publishing domain events between modules.
shared/jwks
Package jwks has been removed.
Package jwks has been removed.
shared/middleware
Package middleware provides shared HTTP middleware for the platform API.
Package middleware provides shared HTTP middleware for the platform API.
shared/plugin
Package plugin is the compile-time plugin catalog and runtime factory.
Package plugin is the compile-time plugin catalog and runtime factory.
shared/runtime
Package runtime defines the RuntimeAdapter interface that abstracts container lifecycle operations across Docker, Kubernetes, and manual deployments.
Package runtime defines the RuntimeAdapter interface that abstracts container lifecycle operations across Docker, Kubernetes, and manual deployments.
shared/runtime/docker
Package docker implements RuntimeAdapter using the Docker Engine API.
Package docker implements RuntimeAdapter using the Docker Engine API.
shared/runtime/kubernetes
Package kubernetes implements RuntimeAdapter using the Kubernetes API.
Package kubernetes implements RuntimeAdapter using the Kubernetes API.
shared/runtime/manual
Package manual implements RuntimeAdapter for environments where the platform cannot manage containers automatically (no Docker socket, no k8s API).
Package manual implements RuntimeAdapter for environments where the platform cannot manage containers automatically (no Docker socket, no k8s API).

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL