Skip to content

Mind-Sports-Games/lila

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Build server Build assets

Playstrategy homepage

Lila (li[chess in sca]la) is a free online chess game server focused on realtime gameplay and ease of use.

It features a search engine, computer analysis distributed with fishnet, tournaments, simuls, forums, teams, and a shared analysis board. The UI is available in more than 130 languages.

Playstrategy is written in Scala 2.13, and relies on the Play 2.8 framework. scalatags is used for templating. Pure chess logic is contained in the strategygames submodule. The server is fully asynchronous, making heavy use of Scala Futures and Akka streams. WebSocket connections are handled by a separate server that communicates using redis. Playstrategy talks to Stockfish deployed in an AI cluster of donated servers. It uses MongoDB to store games. HTTP requests and WebSocket connections can be proxied by nginx. The web client is written in TypeScript and snabbdom, using Sass to generate CSS. Proxy detection done with IP2Proxy database.

See playstrategy.org/source for a list of repositories.

Join us on discord for more info (coming soon...). Use GitHub issues for bug reports and feature requests.

Installation

./lila # thin wrapper around sbt
run

The Lichess Wiki describes how to setup a development environment, which is the same process as PlayStrategy.

basically :
_ mongo 4.4
_ jenv (java 17) and sbt
_ redis
_ nvm (Node 20) and pnpm
_ ruby for generating pieces css

To start the project you then likely want:
1/ make sure redis and mongoDB are available
2/ start lila-ws (from it's own repo's folder): sbt run -Dcsrf.origin=http://localhost:9663
3/ start the front: ui/build -cr (clean rebuild)
4/ start the back: ./nice lila run

Swiss tournaments pairings require to have a running https://github.com/cyanfish/bbpPairings and set the correct path value for the key swiss.bbpairing in conf/application.conf.

HTTP API

Feel free to use the Playstrategy API in your applications and websites.

Supported browsers

Name Version Notes
Chromium / Chrome last 10 Full support
Firefox 61+ Full support (fastest local analysis since FF 79)
Opera 55+ Reasonable support
Safari 11.1+ Reasonable support
Edge 17+ Reasonable support

Older browsers (including any version of Internet Explorer) will not work. For your own sake, please upgrade. Security and performance, think about it!

License

Playstrategy is licensed under the GNU Affero General Public License 3 or any later version at your choice with an exception for Highcharts. See copying for details.

Credits

This code is forked from, and exists because of ornicar, and the whole Lichess project.

playstrategy.org currently supports the Mind Sports Olympiad.

Troubleshooting

  • [error] reactivemongo.api.Cursor

In case you see logs similar to reactivemongo.api.Cursor - Fails to send request, try running mongosh lichess < bin/mongodb/indexes.js, that should fix it.

  • [error] assetManifest - Error reading [...]manifest.dev.json

This means the manifest file was not ready to be read before you tried accessing it.
Try invoking the command to build front before starting the back.

About

No description, website, or topics provided.

Resources

License

AGPL-3.0, Unknown licenses found

Licenses found

AGPL-3.0
LICENSE
Unknown
COPYING.md

Security policy

Stars

Watchers

Forks

Releases

No releases published

Sponsor this project

Packages

No packages published