Cherry is a self-hosted online multiplayer chess app.
It connects two berries (players) with a stem (server) to produce a cherry!
Its simple and minimal, written in nodejs
, express
and socket.io
. It uses websockets to enable multiplayer and supports private matches through invite links so you can play with your friends! It also supports user authentication with cookies and sessions.
Make sure you have node
and all the dependencies installed.
Simply run the command
npm start
in the root directory of the project and navigate to the url in any modern browser.
First, clone the repository with the command,
git clone https://github.com/vnnm404/Cherry.git
then install node
for whichever platform you are on, then install the following dependencies,
express
, socket.io
, ejs
, http
, assert
and path
. This can be done with the comand,
npm install express ejs http assert path socket.io
cd
into the repo then run the app with the command,
npm start
to start the app, its locally hosted by default on PORT
5500. This can be configured in ./src/index.js
or by setting the PORT
environment variable.
First start the app, then nagivate to the hosted url in modern browser, and wait to find a match or generate a link and play with a friend! This is demonstrated in the followings gifs.
To simply play with another user, both users can simply play as guest and their matches aren't saved on the server.
To play with a friend we can generate a link, this link is shared with your friend and this sets up a match between you both instead of matchmaking with random people.
To login, visit the root /
page or the /index
page and either sign up or sign in. No restrictions are imposed other than the password must be non empty and the username can't already exist when signing up. A login produces a session for authentication which expires in a day.