- postgres replaces keycloak-db and holds a keycloak and a mancala database, each with its own user, created by apps/postgres/init - valkey with an append-only file for live game state and caches - backend gets DATABASE_URL and VALKEY_URL
38 lines
1.1 KiB
Markdown
38 lines
1.1 KiB
Markdown
### 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:
|
|
|
|
```sh
|
|
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:
|
|
|
|
```sh
|
|
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:
|
|
|
|
```sh
|
|
docker build -f apps/backend/Dockerfile -t jhalitaksoy/mancala-backend .
|
|
docker build -f apps/frontend/Dockerfile -t jhalitaksoy/mancala-frontend .
|
|
```
|