This repository contains the code of skyjo.online, the online version of the popular card game Skyjo.
- Table of Contents
- What is Skyjo?
- Project Structure
- Installation guide
- How to run the project
- Localization
Skyjo is an engaging card game that combines strategy, luck, and quick thinking. For more information, visit skyjo.online/rules.
This project is set up as a monorepo using Turborepo and contains the following:
- api: The game server built with Hono and Socket.IO
- web: The web client built with Next.js and shadcn/ui
- cache: Manages game caching using Redis
- config: Centralized configuration files for the project
- core: Core game logic for Skyjo
- error: Custom error handling classes
- logger: Custom logger implemented with Winston for logging in Seq
- shared: Common types, utility functions, and Zod schemas shared across applications
- Install dependencies:
pnpm install
- Copy
.env.example
to.env
in the root,apps/api/
, andapps/web/
directories, and fill out the required variables - Start the Seq container:
docker compose up seq
- Go to
localhost:5341
in your browser and enable authentication, create an account, generate an API key - Update the
SEQ_API_KEY
inapps/api/.env
files with the generated API key
To start the necessary services and clients:
To start Redis, Seq, and the API server in detached mode:
docker compose up -d
Run the web client with:
pnpm dev --filter @skyjo/web
In apps/api/.env
, set:
# Replace `REDIS_PASSWORD` with your Redis password
REDIS_URL=redis://:REDIS_PASSWORD@localhost:6379
Start the API server locally:
pnpm dev --filter @skyjo/api
Thanks to Weblate for hosting our localization infrastructure! If you'd like Skyjo Online available in your language, consider contributing to the translation.