⭐ Please consider giving us a star to support the project! ⭐
BoredGames is a web platform for creators to host their games and for players to enjoy playing web-based games. Games that run in browser can be played on any device without any installation. Platform API provides backend logic for scoring and multiplayer gaming.
BoredGames offers tools for your game:
- WebGL/Wasm/JS: upload a game draft which is then reviewed and hosted for free
- Scoring: tracks gameplay scores
- Multiplayer: play with other people on the network
- Anonymous: play without registration by using ephemeral session
- Registered: create account to keep your scores and library of your favorite games
- Cross Platform: runs in any browser natively
- Screen Size: supports different screen resolutions
Important
Please ensure you have .NET SDK 10 installed on your system. If not, you can download them from the official Microsoft website: .NET.
Important
Please ensure you have Docker installed on your system. If not, you can download them from the official Docker website: Docker
Important
Please ensure you have Aspire installed on your system. If not, you can find instructions on the official Aspire web site: Aspire CLI.
-
Clone the Repository:
git clone git@github.com:vlado-github/BoredGames.git
-
Navigate to the BoredGames.Server Directory (BoredGames.Server):
cd BoredGames/BoredGames.Server -
Start Aspire: Using dotnet:
dotnet run --project BoredGames.Server/BoredGames.Aspire.AppHost/
or using Aspire CLI:
aspire run --detach
-
Access Aspire Dashboard:
In terminal output you will find **Dashboard: <localhost_url>** that you can access via browser -
Stop Aspire
aspire stop
Important
Please ensure you have Docker and Docker Compose installed on your system. If not, you can download them from the official Docker website: Docker.
-
Clone the Repository:
git clone git@github.com:vlado-github/BoredGames.git
-
Navigate to the Root Directory (BoredGames):
cd BoredGames -
(first time only) Add .env.local file to the folder with the content:
DB_SERVER=boredgames_localhost
KEYCLOAK_SERVER_NAME=boredgames.keycloak.local
BORED_GAMES_API_KEY=__some_key__
BORED_GAMES_APP_BASE_URL=http://localhost:5173
BORED_GAMES_CORS_ORIGIN_URL=http://localhost:5208,https://localhost:7075
BORED_GAMES_SERILOG_DSN=__BORED_GAMES_SERILOG_DSN__
NGINX_CONFIG_PATH=./.nginx/config/nginx.conf
ASPNETCORE_ENVIRONMENT=Development
- (first time only) Check availability for volume folders and add them:
ls -ld /home/boredgames /home/boredgames/letsencrypt /home/boredgames/release /home/boredgames/redis_data
sudo mkdir -p /home/boredgames/{letsencrypt,release}
sudo mkdir -p /home/boredgames/redis_data
sudo chown -R "$USER":"$USER" /home/boredgames-
Start the Docker Containers:
docker compose --env-file .env.local up --scale gameserver-silo=3 -d --force-recreate
-
Open API documentation:
Open your browser and navigate to http://localhost:5008/index.html
Important
Please ensure you have .NET SDK 10 installed on your system. If not, you can download them from the official Microsoft website: .NET.
Server side contains two parts:
- BoredGames.Server.GameServer: a backend server for handling queueing, players actions, game logic and game state.
- BoredGames.API: a REST API for clients to interact with the game server.
- Run shell or cmd
- Position to source folder of solution (BoredGames/BoredGames.Server)
- Execute command:
dotnet build
- Run shell or cmd
- Position to source folder of solution (BoredGames/BoredGames.Server)
- Execute command:
dotnet run --project BoredGames.Server.GameServer --launch-profile local - Execute command:
dotnet run --project BoredGames.API --launch-profile local - Open swagger documentation in browser via url https://localhost:7075/index.html
Important
Please ensure you have NodeJS and NPM installed on your system. If not, you can download them from the official NodeJS website: NodeJS.
- Run shell or cmd
- Position to source folder of project (BoredGames/BoredGames.Client/BoredGames.Portal)
- Execute command:
npm install
- Run shell or cmd
- Position to source folder of project (BoredGames/BoredGames.Client/BoredGames.Portal)
- Execute command:
npm run dev

