From 69756e51ad273e90c4dcfdfe8a6179b59e733f8c Mon Sep 17 00:00:00 2001 From: Mateus Elias Date: Thu, 23 Jul 2026 15:46:46 -0300 Subject: [PATCH] docs: consistent publish workflow name and a README architecture diagram - Rename the publish workflow to 'Publish Images to GHCR' (was 'Publish images to GHCR') so the three repos share one naming pattern - Add a GitHub-robust architecture diagram to the README --- .github/workflows/publish-images.yml | 2 +- README.md | 24 ++++++++++++++++++++++++ 2 files changed, 25 insertions(+), 1 deletion(-) diff --git a/.github/workflows/publish-images.yml b/.github/workflows/publish-images.yml index c6b83ba..8798530 100644 --- a/.github/workflows/publish-images.yml +++ b/.github/workflows/publish-images.yml @@ -1,4 +1,4 @@ -name: Publish images to GHCR +name: Publish Images to GHCR # Builds the production images the homelab cluster runs: # ghcr.io/mateuseap/chesskernel-server diff --git a/README.md b/README.md index d46dd87..e3d6af0 100644 --- a/README.md +++ b/README.md @@ -44,6 +44,30 @@ Chess platforms today lock features behind subscriptions, harvest your game data | 🌍 **Multilingual** | English, Portuguese, and Spanish | | 🐳 **Docker-first** | One command to run the entire stack | +## Architecture + +A React client served by nginx, which reverse-proxies the API and the realtime socket to a NestJS server. The server holds authoritative game state, drives Stockfish for analysis and bots, persists to PostgreSQL, and uses Redis for caching and pub/sub. + +```mermaid +flowchart LR + browser(["browser: React client"]) + nginx["nginx
static assets + /api and /socket.io proxy"] + server["NestJS server :3001
authoritative games, Socket.IO"] + stockfish["Stockfish
analysis and bots"] + postgres[("PostgreSQL
users, games, ratings")] + redis[("Redis
cache + pub/sub")] + + browser -->|HTTPS static| nginx + browser <-->|/api REST| nginx + browser <-->|/socket.io WebSocket| nginx + nginx <--> server + server --> stockfish + server --> postgres + server --> redis +``` + +Moves are validated server-side with chess.js; ratings use Glicko-2. See [docs/architecture](docs/architecture/overview.md) and [docs/backend](docs/backend/backend-architecture.md) for the full design. + ## Quick Start ```bash