app | ||
bin | ||
cli/src/main/scala | ||
conf | ||
project | ||
public | ||
serve | ||
test | ||
uci | ||
.gitignore | ||
.gitmodules | ||
LICENSE | ||
README.md | ||
todo |
lichess.org
Backend of http://lichess.org
- Scala 2.9 with Play2, Akka 2, Scalaz and Salat
- Scalachess
- MongoDB 2
- ArchLinux
Installation
This is full-stack application, not a library, and it may not be straightforward to get it fully running. I assume you run a Unix with mongodb.
Some steps of the installation will trigger a download of the galaxy. This will take, naturally, ages.
Play 2.1
Interestingly enough, Play 2.1 lives in a repository named Play20.
git clone git://github.com/playframework/Play20.git Play21
cd Play21/framework
./build build-repository
./build publish-local
Scalachess
The pure chess logic, with few dependencies. Follow instructions from Scalachess repository
Lila
The database layer, website, cron tasks, websockets and whatnot.
git clone git://github.com/ornicar/lila
cd lila
play compile
Config is in conf/application.conf
.
If all the above worked, which would be quite surprising, you can now setup a webserver and run the application.
Nginx
This is just my local nginx configuration, as an example.
server {
listen 80;
server_name l.org ~^\w\w\.l\.org$;
location /assets {
alias /home/thib/lila/public;
}
location /serve {
alias /home/thib/lila/serve;
}
location / {
proxy_set_header Host $http_host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://127.0.0.1:9000/;
}
error_page 500 501 502 503 504 /error.html;
location = /error.html {
root /home/thib/lila/public/;
}
}
Run it
Open lila play console and give it a ride.
To open a play console using development configuration, use:
bin/dev
This will use the
conf/application_dev.conf
configuration file.
bin/dev
[lila] $ run