Yet another Chess web app.
Built with Next.js 14, Tailwind CSS + daisyUI, react-chessboard, chess.js, Express.js, socket.io and PostgreSQL.
Node.js 20 or newer is recommended.
This project is structured as a monorepo using pnpm workspaces, separated into three packages:
client
- Next.js application for the front-end, server
- Node/Express.js application for the back-end, types
- Shared type definitions required by the client and server.pnpm install
in the root directory of the project.server
directory, create a .env
file for your PostgreSQL database. You can try ElephantSQL or Aiven for a free hosted database.PGHOST=db.example.com
PGUSER=exampleuser
PGPASSWORD=examplepassword
PGDATABASE=chessu
pnpm dev
.pnpm dev:client
and pnpm dev:server
, respectively.To build the project with Docker, you can use the provided Dockerfile
.
docker build -t chessu .
This command will build the Docker image with the name chessu
. You can then run the image with the following command:
docker run -p 3000:3000 -p 3001:3001 chessu
Once built, to start the project with POSTGRES, you can use the provided docker-compose.yml
file.
docker-compose up
Please make sure to modify the values in the server/.env
file to match the values in the docker-compose.yml
file or vice versa.
The entrypoint for the Docker image is set to run pnpm.
The Dockerfile's CMD
instruction is set to run the project in production mode.
If you want to run the project in development mode, you can override the CMD
instruction by running the following command:
docker run -p 3000:3000 -p 3001:3001 chessu dev # runs both client and server in development mode
docker run -p 3000:3000 -p 3001:3001 chessu dev:client # runs only the client in development mode
docker run -p 3000:3000 -p 3001:3001 chessu dev:server # runs only the server in development mode
Please read our Contributing Guidelines before starting a pull request.