Установка шахматного сервера 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 --versionjdk
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 -versionsbt
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 -versionnode (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 --versionyarn
npm install --global yarn
npm install -g npm@8.19.0python 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 -Vredis
sudo apt install redis-server
redis-server --version
sudo /etc/init.d/redis-server start
sudo /etc/init.d/redis-server status
redis-cli pingmongodb 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, локально зарегистрироваться и поэкспериментировать с игрой в шахматы (и не только!).