ChessServer has hosted rooms with two player seats and observers. Mix humans, eight-level Lynx engines and language models in any pairing; hosts arrange players and start each game. Players can chat, and signed-in players and organizers can replay saved games and export PGN. Built on Aiursoft Template with optional server-controlled clocks.
Play with a guest nickname, or sign in through OIDC to save your games; see Configuration.
Try a running ChessServer here.
Run the installer with the desired port (omit it to choose an available port):
curl -fsSL https://raw.githubusercontent.com/aiursoftweb/chessserver/master/install.sh | sudo bash -s -- 8080Installation starts after three seconds; press Ctrl+C to cancel. Then open http://localhost:8080.
Requirements about how to run
- Install .NET 10 SDK and Node.js.
- Execute
npm installatwwwrootfolder to install the dependencies. - Execute
dotnet runto run the app. - Use your browser to view http://localhost:5000.
- Open the
.slnfile in the project path. - Press
F5to run the app.
First, install Docker here.
Then run the following commands in a Linux shell:
image=aiursoft/chessserver
appName=chessserver
sudo docker pull $image
sudo docker run -d --name $appName --restart unless-stopped -p 5000:5000 -v /var/www/$appName:/data $imageThat will start a web server at http://localhost:5000 and you can test the app.
The docker image has the following context:
| Properties | Value |
|---|---|
| Image | aiursoft/chessserver |
| Ports | 5000 |
| Binary path | /app |
| Data path | /data |
| Config path | /data/appsettings.json |
There are many ways to contribute to the project: logging bugs, submitting pull requests, reporting issues, and creating suggestions.
Even if you with push rights on the repository, you should create a personal fork and create feature branches there when you need them. This keeps the main repository clean and your workflow cruft out of sight.
We're also interested in your feedback on the future of this project. You can submit a suggestion or feature request through the issue tracker. To make this process more effective, we're asking that these include more information to help define them more clearly.
Configure AppSettings__OIDC__Authority, AppSettings__OIDC__ClientId, and AppSettings__OIDC__ClientSecret for your identity provider. Register https://<your-host>/signin-oidc as its callback. Guests can play without signing in.
Existing Docker installations must update their persisted /data/appsettings.json with the new database and OIDC settings before upgrading. SQLite stores accounts and chess sessions by default. Keep the database and data-protection keys to resume games after a restart.
For an LLM opponent, configure OpenAI:CompletionApiUrl and the server-side OpenAI:Token. Players can choose any model listed by the compatible /models endpoint. The original eight engine levels remain available.
