### Clone Lichess Repository and Setup Dependencies Source: https://github.com/lichess-org/lila/wiki/Lichess-Development-Onboarding Clone the Lichess repository and install necessary tools like corepack for pnpm. This is the initial step for setting up the development environment. ```sh git clone --recursive https://github.com/lichess-org/lila.git cd lila corepack enable ``` -------------------------------- ### Setup Lichess-Fishnet for Computer Play Source: https://github.com/lichess-org/lila/wiki/Lichess-Development-Onboarding Clone and run the lila-fishnet server to enable playing against Stockfish. This is separate from the analysis setup. ```sh git clone https://github.com/lichess-org/lila-fishnet.git cd lila-fishnet sbt app/run -Dhttp.port=9665 ``` -------------------------------- ### Start Lichess SBT Console Source: https://github.com/lichess-org/lila/wiki/Lichess-Development-Onboarding Start the Lichess SBT console to manage the application. After the console boots, type 'compile' to build the project and 'run' to start the HTTP server. ```sh ./lila.sh ``` -------------------------------- ### Setup Sound Test Buttons Source: https://github.com/lichess-org/lila/blob/master/public/oops/sounds.html Initializes the sound test interface by creating buttons for each sound set and basic sound effect. It uses jQuery (via 'cash.min.js') to manipulate the DOM and attach click event listeners to play sounds. The setup is delayed by 250ms. ```javascript const soundSets = ['standard', 'futuristic', 'lisp', 'nes', 'piano', 'robot', 'sfx', 'woodland']; const basics = [ 'genericNotify', 'move', 'capture', 'explosion', 'lowTime', 'victory', 'defeat', 'draw', 'berserk', 'check', 'checkmate', 'newChallenge', 'newPM', 'confirmation', 'error', 'practiceComplete', 'practiceWrong', 'tournament1st', 'tournament2nd', 'tournament3rd', 'tournamentOther', ...[...Array(11).keys()].reverse().map(i => 'CountDown' + i), ]; setTimeout(function () { soundSets.forEach(s => { $('').text(s).appendTo($('table.common thead tr')); }); for (const name of basics) { var tr = $('').appendTo($('table.common tbody')); $.each(soundSets, function (i, soundSet) { $('') .append( $('