Установка шахматного сервера Lichess на Windows (WSL, Ubuntu)
Lichess это популярный шахматный сервер, созданный французским программистом Тибо Дюплесси, на котором периодически играют известные Топ игроки, в том числе и всем известный Чемпион Мира Магнус Карлсен. Код сервера написан в большей степени на языке scala
и является открытым и распространяется под свободной лицензией AGPL
.

В данной публикации я расскажу вам, как запустить рабочий сервер Lichess на своём компьютере под управлением Windows (WSL)
.
Начало
Предполагается, что вы умеете работать с WSL
под Windows
, где в качестве операционной системы будем использовать Ubuntu 20.04
. В случае, если это не так, то на просторах интернета вполне достаточно информации по данной теме. А теперь настроим рабочее окружение!
Visual studio code
Для более удобной разработки на WSL, вам необходимо установить отличный редактор кода Visual studio code и расширение к нему Remote Development. Более подробно процесс настройки редактора описывается по данной ссылке Разработка в WSL.
Путь к данной программе, должен быть прописан в переменной окружения path
, что позволит его вызвать из терминала Ubuntu
ubuntu
Запускаем консоль ubuntu
и обновляемся, а далее вызываем редактор Visual studio code, командой code .
sudo apt update
sudo apt upgrade
code .
Для более удобной работы, откройте окно терминала в самом редакторе, в котором установим следующие необходимые инструменты
git
sudo apt install git
git --version
jdk
sudo apt update
sudo apt install -y libc6-x32 libc6-i386
wget https://download.oracle.com/java/18/latest/jdk-18_linux-x64_bin.deb
sudo dpkg -i jdk-18_linux-x64_bin.deb
sudo update-alternatives --install /usr/bin/java java /usr/lib/jvm/jdk-18/bin/java 1
java -version
sbt
echo "deb https://repo.scala-sbt.org/scalasbt/debian all main" | sudo tee /etc/apt/sources.list.d/sbt.list
echo "deb https://repo.scala-sbt.org/scalasbt/debian /" | sudo tee /etc/apt/sources.list.d/sbt_old.list
curl -sL "https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x2EE0EA64E40A89B84B2DF73499E82A75642AC823" |
sudo apt-key add
sudo apt-get updatesudo apt-get install sbt
sbt -version
node (nvm)
wget -qO- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.1/install.sh | bash
export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm
[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion" # This loads nvm bash_completioncommand -v nvm
Вы можете перечислить доступные версии, используя ls-remote:
nvm ls-remote
nvm install 16.17.0
node --version
yarn
npm install --global yarn
npm install -g npm@8.19.0
python 2
Установка именно второй версии python
рекомендована на официальном сайте разработки Lichess-Development-Onboarding. Но здесь возникает небольшая проблема, которая заключается в том, что работает команда python2
, а не python
.
sudo apt install python2
python2 -V
python -V
Я пока не знаю, нужно это и нет, но на всякий случае сделаем так, чтобы при вводе команды python
у нас определялась 2-я версия python
. Через команду which python2
мы узнаём его расположение (у меня /usr/bin/python2
), и прописываем в команду alias python="/usr/bin/python2"
which python2
alias python="/usr/bin/python2"
python2 -V
python -V
redis
sudo apt install redis-server
redis-server --version
sudo /etc/init.d/redis-server start
sudo /etc/init.d/redis-server status
redis-cli ping
mongodb 5
К сожалению mongodb 6 пока не поддерживается (у меня были ошибки), поэтому будем использовать mongodb 5 (как собственно и рекомендуется на сайте Lichess-Development-Onboarding)
Обновите пакеты Ubuntu:
sudo apt update
Импортируйте открытый ключ, используемый системой управления пакетами MongoDB:
wget -qO - https://www.mongodb.org/static/pgp/server-5.0.asc | sudo apt-key add -
Создайте файл списка для MongoDB:
echo "deb [ arch=amd64,arm64 ] https://repo.mongodb.org/apt/ubuntu focal/mongodb-org/5.0 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-5.0.list
Перезагрузите локальную базу данных пакета:
sudo apt-get update
Установите пакеты MongoDB:
sudo apt-get install -y mongodb-org
Подтвердите установку и получите номер версии:
mongod --version
Создайте каталог для хранения данных:
mkdir -p ~/data/db
Запустите экземпляр Mongo:
sudo mongod --dbpath ~/data/db
Убедитесь, что экземпляр MongoDB работает с:
ps -e | grep 'mongod'
Оставьте пока данный терминал открытым, в дальнейшем вы его можете закрыть сочетанием клавиш:
CTRL+C
Установка вебсокет сервера lichess
Откройте новое окно терминала, создайте рабочую папку и войдите в неё
mkdir mydev
cd mydev
Клонируйте и запустите сервер
git clone https://github.com/lichess-org/lila-ws.git
cd lila-ws
sbt run
Установка основного сервера lichess
Откройте новое окно терминала и войдите в ранее созданную рабочую папку mydev
cd mydev
клонируйте и запустите основной сервер
git clone --recursive https://github.com/lichess-org/lila.git
cd lila
mongosh lichess bin/mongodb/indexes.js # создает индексы базы данных
./ui/build # строит CSS и JS
./lila # запускает консоль SBT
Через некоторое время в консоли появится команда [lila] $
Поочерёдно введите compile
[lila] $ compile
И после небольшого ожидания, команду run
[lila] $ run
Теперь вы можете открыть в разных браузерах localhost:9663, локально зарегистрироваться и поэкспериментировать с игрой в шахматы (и не только!).