{"repo":"sourcelocation/geoduels","free":true,"listed":false,"github":"https://github.com/sourcelocation/geoduels","clone":"git clone https://github.com/sourcelocation/geoduels.git","description":"GeoDuels — A free GeoGuessr alternative with duels, rankings, custom lobbies, and cheater mitigations.","language":"TypeScript","stars":63,"topics":["geography","geoguessr","k3s","k8s","maps","postgres","react","redis","streetview"],"license":"AGPL-3.0","category":"databases-storage","readme_excerpt":"GeoDuels GeoDuels is a free GeoGuessr-inspired multiplayer geography game with a focus on user-generated maps and real-time competitive dueling. The game is playable at https://geoduels.io/ Architecture Runtime topology - apps/web (Next.js): browser UI and gameplay shell. - services/api (Go): auth/session/profile, public player profiles, maps, parties, match history, moderation/admin, content, and support APIs ( /v1 ). - services/match-coordinator (Go): matchmaking over websocket ( /queue ), party coordination/chat, assignment, presence, and maintenance status. Resumable-session lookup is exposed by the API at /v1/session/resumable . - services/realtime-gateway (Go): websocket gatewaying ( /ws/{node} ) to the assigned gameplay node. - services/gameplay-node (Go): round engine and authoritative match state broadcast for assigned matches. - services/moderation-worker (Go): background moderation projection and enforcement processing. - services/discord-worker (Go): Discord role synchronization and membership badge processing. - workers/storage-maintenance (Go): replay compression, retention cleanup, and other bounded storage maintenance. Data and state - PostgreSQL: source of truth for profiles, stats, user maps and their current location datasets, round plans, and match persistence. - Redis: queue and distributed coordination state for matchmaking and gameplay node ownership. Network flow 1. Browser loads web . 2. Browser calls api for auth + app APIs ( /v1 ). 3. Browser opens ","default_branch":null,"files":null,"tree":[],"storefront":"/r/sourcelocation","claimed":false,"request_supported":{"post":"https://gitbuyer.com/r/sourcelocation/geoduels/request-supported","requests":0},"note":"indexed from public GitHub; nothing is for sale on this page. Clone it from GitHub. Paid listings live at /search."}