-
-
Notifications
You must be signed in to change notification settings - Fork 2.3k
Lichess Development Onboarding (Windows)
The following instructions explain how to set up your development environment for Lichess on Windows.
GNU/Linux instructions: https://github.com/ornicar/lila/wiki/Lichess-Development-Onboarding
Note that Windows is not officially supported for lila builds. It works now, but there is no guarantee that it stays like that.
- Git
- sbt If 13.6 then open sbt.bat and update to below set INIT_SBT_VERSION=0.13.16
- MongoDB
-
npm
from Node.js. - nginx
- yarn
-
gulp-cli
(yarn global add gulp-cli
) - Powershell (likely already on your machine)
-
Turn off line feed conversion in windows (all checkins are made from linux). git config core.autocrlf false
-
Fork the lila project from github on your computer (including submodules):
git clone --recursive https://github.com/ornicar/lila.git
-
Change your current directory to the top level of the checked out repository. This is important for the successful execution of the Lichess build scripts.
cd lila
. -
copy bin\dev.default.windows.bat bin\dev.bat
Edit dev.bat to have -Dfile.encoding=UTF-8, increase memory -Xms2048M -Xmx3072M -Dfile.encoding=UTF-8 -
Create
conf/application.conf
with the following content:include "base" net { domain = "l.org" } geoip { file = "data/GeoLite2-City.mmdb" } http { port = 9663 }
-
Run
powershell -executionpolicy bypass -File bin\gen\geoip.ps1
to download the GeoIP database. -
Run
yarn install
-
Run
.\ui\build.bat
-
Compile the Scala application with
.\bin\dev.bat compile
-
Add the following line to your hosts file (
C:\Windows\System32\drivers\etc\hosts
):127.0.0.1 l.org socket.l.org en.l.org
-
Open your
nginx.conf
file, and add this 'Server' block to thehttp
block:server { server_name l.org ~^\w\w\.l\.org$; listen 80; error_log logs\lila.access.log; access_log logs\lila.error.log; charset utf-8; location /assets { add_header "Access-Control-Allow-Origin" "*"; alias <path\to\>\lila\public; } location / { proxy_set_header Host $http_host; proxy_set_header X-Forwarded-For $remote_addr; proxy_set_header X-Forwarded-Proto $scheme; proxy_read_timeout 90s; proxy_http_version 1.1; proxy_pass http://127.0.0.1:9663; } error_page 500 501 502 503 /oops/servererror.html; error_page 504 /oops/timeout.html; error_page 429 /oops/toomanyrequests.html; location /oops/ { root <path\to\>\lila\public; } location = /robots.txt { root <path\to\>\lila\public; } } server { server_name socket.l.org; listen 80; charset utf-8; location / { proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; proxy_set_header X-Forwarded-For $remote_addr; proxy_set_header X-Forwarded-Proto $scheme; proxy_pass http://127.0.0.1:9663; } }
Don't forget to change <path\to\>
into an actual path.
- Restart (or start) nginx.
- Make sure nginx is running.
- Make sure a MongoDB server instance is running.
- From the top level of the lichess project, execute
.\bin\dev.bat
- When sbt is finished retrieving dependencies, type
run 9663
and press enter. - In your browser, navigate to
l.org