- 
          
- 
                Notifications
    You must be signed in to change notification settings 
- Fork 2.5k
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
- 
npmfrom 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 --global core.autocrlf false 
- 
Fork the lila project from github on your computer (including submodules): git clone --recursive https://github.com/ornicar/lila.gitgit config --global core.autocrlf true
- 
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.batEdit dev.bat to have -Dfile.encoding=UTF-8, increase memory -Xms2048M -Xmx3072M -Dfile.encoding=UTF-8
- 
Create conf/application.confwith 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.ps1to 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.conffile, and add this 'Server' block to thehttpblock: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 9663and press enter.
- In your browser, navigate to l.org