Skip to content

Lichess Development Onboarding (Windows)

Niklas Fiekas edited this page Aug 25, 2018 · 25 revisions

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.

Prequisites

  • Git
  • sbt If 13.6 then open bin/sbt.bat and change set INIT_SBT_VERSION=_TO_BE_REPLACED to set INIT_SBT_VERSION=0.13.16 (around line 50)
  • MongoDB
  • npm from Node.js.
  • nginx
  • yarn
  • gulp-cli (yarn global add gulp-cli)
  • Powershell (likely already on your machine) - required version >= 4.0 (in order to have CopyTo method)

Installation steps

  1. Turn off line feed conversion in windows (all checkins are made from linux): git config --global core.autocrlf false

  2. Fork the lila project from github on your computer (including submodules): git clone --recursive https://github.com/ornicar/lila.git

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

  4. copy bin\dev.default.bat bin\dev.bat

  5. Edit dev.bat so java uses UTF8 file encoding and increased memory. Add the following parameters to JAVA_OPTS for that: -Xms2048M -Xmx3072M -Dfile.encoding=UTF-8

  6. Create conf/application.conf with the following content:

     include "base"
    
     geoip {
        file = "data/GeoLite2-City.mmdb"
     }
    
     http {
       port = 9663
     }
    
  7. Run powershell -executionpolicy bypass -File bin\gen\geoip.ps1 to download the GeoIP database.

  8. Run yarn install

  9. Run .\ui\build.bat

  10. Compile the Scala application with .\bin\dev.bat compile

Setting up your web server

  1. Add the following line to your hosts file (C:\Windows\System32\drivers\etc\hosts): 127.0.0.1 lichess-assets.local

  2. Open your nginx.conf file, and add this 'Server' block to the http block:

    server {
      server_name lichess-assets.local;
      listen 80;
      charset utf-8;
      location /assets {
        add_header "Access-Control-Allow-Origin" "*";
        alias "C:/projects/lila/public/";
      }
    }
    

Don't forget to change C:/projects/lila into the actual path where lila is cloned to. Convert backward slashes to forward slashes (or escape them)

  1. Restart (or start) nginx.

Running the application.

  1. Make sure nginx is running.
  2. Make sure a MongoDB server instance is running.
  3. From the top level of the lichess project, execute .\bin\dev.bat
  4. When sbt is finished retrieving dependencies, type run 9663 and press enter.
  5. In your browser, navigate to localhost:9663