Go to file
Halit Aksoy 3d4f5d7d59 feat(backend): end games on time with a scheduled service
GameClockScheduler checks every live game once a second and ends those whose running clock has reached zero, whether or not anyone is connected. The clock replaces the offline turn timeout and the inactivity rule, so both are removed with the offline times they used.
2026-10-16 01:29:22 +03:00
apps feat(backend): end games on time with a scheduled service 2026-10-16 01:29:22 +03:00
config feat(keycloak): add Keycloak with guest login extension 2026-10-14 01:46:48 +03:00
docs/specs feat(backend): end games on time with a scheduled service 2026-10-16 01:29:22 +03:00
packages feat(core): add game clock types and helpers 2026-10-16 01:25:15 +03:00
.dockerignore build: use local mancala.js and @mancala/core packages 2026-10-14 02:09:05 +03:00
AGENTS.md docs: add AGENTS.md with setup, checks and pitfalls, and CLAUDE.md pointing to it 2026-10-16 00:44:09 +03:00
CLAUDE.md docs: add AGENTS.md with setup, checks and pitfalls, and CLAUDE.md pointing to it 2026-10-16 00:44:09 +03:00
package.json build: use local mancala.js and @mancala/core packages 2026-10-14 02:09:05 +03:00
README.md build: add shared Postgres and Valkey to compose 2026-10-16 00:05:21 +03:00
TODO.md docs: document game history and update the TODO 2026-10-16 00:36:48 +03:00

Mancala

Mancala is an open source application for playing mancala game online.

Development

The apps use the local packages/mancala.js and packages/core through link: dependencies, so build those first:

yarn build:packages        # from the repo root

After changing a package, rebuild it (or run yarn dev in it to rebuild on change); the apps pick up the new dist.

Postgres (games and Keycloak), Valkey (live games and caches) and Keycloak run with Docker Compose. Create apps/.env once, then start them:

cd apps
cat > .env <<EOF
POSTGRES_PASSWORD=postgres
KEYCLOAK_DB_PASSWORD=keycloak
KEYCLOAK_ADMIN_PASSWORD=admin
MANCALA_DB_PASSWORD=mancala
EOF
docker compose up -d --build postgres valkey keycloak

Postgres is on localhost:5433 and Valkey on localhost:6379; the backend's defaults point there. Then run yarn dev in apps/backend (port 5005) and in apps/frontend (port 1234).

Docker images for the backend and frontend are built from the repo root:

docker build -f apps/backend/Dockerfile -t jhalitaksoy/mancala-backend .
docker build -f apps/frontend/Dockerfile -t jhalitaksoy/mancala-frontend .