/lila

♞ lichess.org: the forever free, adless and open source chess server ♞

Primary LanguageScalaGNU Affero General Public License v3.0AGPL-3.0

Build Status Crowdin Twitter

lichess.org

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, tactic trainer, a mobile app, and a shared analysis board. The UI is available in more than 80 languages thanks to the community.

Lichess is written in Scala 2.11, and relies on Play 2.4 for the routing, templating, and JSON. Pure chess logic is contained in scalachess submodule. The server is fully asynchronous, making heavy use of Scala Futures and Akka 2 actors. Lichess talks to Stockfish deployed in an AI cluster of donated servers. It uses MongoDB 3.4 to store more than 600 million games, which are indexed by elasticsearch. HTTP requests and websocket connections are proxied by nginx 1.9. The web client is written in TypeScript and snabbdom. The blog uses a free open content plan from prismic.io. All rated standard games are published in a free PGN database. Browser testing done with . Please help us translate lichess with Crowdin.

Join us on discord or in the #lichess freenode IRC channel for more info. Use GitHub issues for bug reports and feature requests.

Installation

If you want to add a live chess section to your website, you are welcome to embed lichess into your website. It's very easy to do.

This project source code is open for other developers to have an example of non-trivial scala/play2/mongodb application. You're welcome to reuse as much code as you want for your projects and to get inspired by the solutions I propose to many common web development problems. But please don't just create a public lichess clone. Instead, embed lichess using an <iframe> into your website.

Also note that while I provide the source code, I do not offer support for your lichess instance. I will probably ignore any question about lichess installation and runtime issues.

HTTP API

Feel free to use lichess API in your applications and websites.

Credits

See the lichess Thanks page

Supported browsers

  • Chrome or Chromium, 1 year old or newer (fastest local analysis!)
  • Firefox, 1 year old or newer (second fastest local analysis!)
  • Opera 34 and newer (meh)
  • Safari 9 and newer (boo)
  • Microsoft Edge (yuck)
  • Internet Explorer 11 (eew)

Older browsers will not work. For your own sake, please upgrade. Security and performance, think about it!

License

Lila 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.