Как стать автором
Обновить

Установка шахматного сервера 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

itzgeek.com

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

scala-sbt.org

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

nvm

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

kontext.tech

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

docs.microsoft.com

Установка вебсокет сервера 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, локально зарегистрироваться и поэкспериментировать с игрой в шахматы (и не только!).

telegram

Теги:
Хабы:
Данная статья не подлежит комментированию, поскольку её автор ещё не является полноправным участником сообщества. Вы сможете связаться с автором только после того, как он получит приглашение от кого-либо из участников сообщества. До этого момента его username будет скрыт псевдонимом.