1
0
Fork 1
lila-cruft/README-install.md

1550 lines
49 KiB
Markdown
Raw Normal View History

2021-12-22 10:53:20 -07:00
# HOWTO Set up Your Own Chess Server
This document shows how to install a chess server.
2021-12-22 11:57:50 -07:00
The free software application Lila, written by the fine developers at
https://lichess.org, will be used.
2021-12-22 10:53:20 -07:00
# Overview
2021-12-22 11:57:50 -07:00
System will be built from these main parts listed below. You don't
need to know all of these, but knowing some system administration
will help.
2021-12-22 10:53:20 -07:00
* OVH ISP.
2021-12-22 11:58:38 -07:00
* Debian stable (Bullseye/11).
2021-12-22 10:53:20 -07:00
* Lila.
* Lila-ws.
* Apache.
* MongoDB.
* Redis.
2021-12-22 11:57:50 -07:00
* Scala.
2021-12-22 10:53:20 -07:00
* Java.
* SBT.
* Yarn.
* Python.
* Git.
* Node.
2021-12-22 11:37:55 -07:00
* Certbot.
* DNS.
2021-12-22 11:57:50 -07:00
* All the way down to GRUB and below...
2021-12-22 10:53:20 -07:00
2021-12-22 13:22:07 -07:00
For a high volume service, some of these services can be broken out
across multiple servers. For this example, we'll use just one "blank"
2021-12-22 14:57:15 -07:00
remote virtual server with nothing else on it.
2021-12-22 13:22:07 -07:00
2021-12-22 10:53:20 -07:00
# Upstream
The best current upstream document describing the process is here:
https://github.com/ornicar/lila/wiki/Lichess-Development-Onboarding
Main upstream repos:
* https://github.com/ornicar/lila
2021-12-22 11:57:50 -07:00
* https://github.com/ornicar/lila-ws
2021-12-22 10:53:20 -07:00
2021-12-22 13:43:01 -07:00
# Donate
Be sure to donate to lichess for their great website and for
making free software:
* https://lichess.org/patron
2021-12-22 10:53:20 -07:00
# Pre-Installation Setup
First, you need to have a location to host the server. You will want a server
with a minimum of 4 gigs of RAM. When the server is running, usage is low,
but it takes awhile to compile, so more CPU/RAM will speed that up.
For this example, we'll set up at OVH, which is the same Internet company
that lichess.org uses.
2021-12-22 11:37:55 -07:00
You will also need a domain and someone providing domain name service (DNS).
OVH provides this service (presumably?) or I recommend Njalla.
2021-12-22 12:22:52 -07:00
2021-12-22 11:37:55 -07:00
## Register DNS
Since it takes awhile to spread across the Internet, it is best to first
register your domain so that process can happen in the background while
you are setting up the server.
2021-12-22 12:22:52 -07:00
For this example, we'll use the domain `mychestserver.org` with the final
example server URL being:
* https://www.mychestserver.org
2021-12-22 11:37:55 -07:00
2021-12-22 11:57:50 -07:00
Go to your registrar, and register your domain, such as:
* https://njal.la/
2021-12-22 12:22:52 -07:00
2021-12-22 11:57:50 -07:00
## Register at ISP
Go to OVH (or ISP of your choice) and create an account to host your server.
OVH may have regional websites as well:
* https://ovh.com/
2021-12-22 12:22:52 -07:00
2021-12-22 11:37:55 -07:00
## Set up Workstation SSH Keys
To connect to the server, you will need SSH keys. They'll be needed at time
of server creation, so we'll make them now. This is an example how to create
keys on a Debian stable workstation, where the username is "debian" and
the workstation name is "workstation". For OVH, we're creating `ecdsa` keys,
which is inferior to `ed25519` keys. Last I tested, OVH doesn't accept the
latter.
```
# Run command to create keys.
# Note the location where you saved the key.
# Just hit "enter" for a passphrase.
debian@workstation:~$ ssh-keygen -t ecdsa
Generating public/private ecdsa key pair.
Enter file in which to save the key (/home/debian/.ssh/id_ecdsa): /home/debian/.ssh/id_ecdsa-chess
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/debian/.ssh/id_ecdsa-chess
Your public key has been saved in /home/debian/.ssh/id_ecdsa-chess.pub
The key fingerprint is:
SHA256:M2qUpyl31CCUcn3t2+vM6Cn4JaZIVvnFJICtTQiTQmY debian@workstation
The key's randomart image is:
+---[ECDSA 256]---+
| .E oo.*. . |
| o. oo= +.. . |
| . o.+..... |
| .o.+ +. |
| o S . oo |
| . B + .. . |
| . O ..+ . . |
| * o.o.o =. |
| . ...o+.+ |
+----[SHA256]-----+
```
2021-12-22 12:22:52 -07:00
2021-12-22 11:37:55 -07:00
## Upload SSH key to ISP
2021-12-22 11:57:50 -07:00
Take SSH the key you just created above and upload it to OVH.
Go to `Public Cloud`, then near the bottom left column, under
`Project Management` click `SSH Keys`.
Under the new `SSH Keys` window, click `Add and SSH Key` button.
2021-12-22 12:22:52 -07:00
Paste the PUBLIC key created above, ending with `.pub` extension,
into the `Key` section of the `Add an SSH key` popup window.
2021-12-22 11:57:50 -07:00
Take this output and paste into that form in the browser:
```
cat /home/debian/.ssh/id_ecdsa-chess.pub
```
It should look like a tangled mess like this (note, the `debian@workstation` field
at the end is informational and can be something depending on your user/workstaion):
```
ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBC16EdTLECoLqSnmM/aSKrskLYN5ygu2dVvSAfiu4SAHPElrY6wqgUq6kzzsbbnko+VqyGzZ4tTWMml/AlBrQaw= debian@workstation
```
In the `Name` field, enter `mychestkey`.
Click `Add` to save the key at OVH. You should now see it in the list.
2021-12-22 11:37:55 -07:00
2021-12-22 12:22:52 -07:00
2021-12-22 11:37:55 -07:00
## Create Virtual Machine at ISP
2021-12-22 11:57:50 -07:00
OVH sells dedicated "bare metal" servers called the `Bare Metal Cloud`.
They also sell virtual machine instances under the `Public Cloud`.
2021-12-22 11:37:55 -07:00
The bare metal servers can be better, but they are generally more expensive,
a bit more complex to set up and maintain. So for this example, we
2021-12-22 11:57:50 -07:00
will set up a virtual machine in the `Public Cloud`.
2021-12-22 10:53:20 -07:00
2021-12-22 11:57:50 -07:00
In OVH `Dashboard` click on `Public Cloud`, then in left column near the top
2021-12-22 13:44:19 -07:00
under `Compute`, click `Instances`. Then under the new `Instances` window,
2021-12-22 11:57:50 -07:00
click `Create an Instance`.
2021-12-22 11:37:55 -07:00
2021-12-22 11:57:50 -07:00
* `Select a Model`: `Discovery` tab, then select D2-8. There are some options
2021-12-22 11:37:55 -07:00
with 4 gigs of RAM and fewer CPUs, which could be used, but kind of slow.
This option is ~$20USD/month.
2021-12-22 11:57:50 -07:00
* `Select a Region`: The https://lichess.org server is in various data centers around
2021-12-22 13:45:10 -07:00
Northern France, such as Gravelines (GRA). If you want to be close to that
2021-12-22 11:37:55 -07:00
for some reason, you can select that. Or you could select a server that
is regionally close to you and your users in another part of the world.
2021-12-22 11:57:50 -07:00
For this example, we'll select Gravelines GRA3. Click `Next`.
* `Select an Image`: Under `Unix Distributions` tab, select `Debian 11`.
* `Select an Image`: Under `SSH key` at the bottom of the section, select the
`mychestkey` you created and uploaded above. Click `Next`
2021-12-22 11:37:55 -07:00
2021-12-22 11:57:50 -07:00
* `Configure your instance`: Just one instance. We'll use `mychestserver` for
the name, use yours as appropriate. We won't do any of `Post-installation
script`, `Private Networks`, or `Backups`, although they could be used.
Click `Next`.
2021-12-22 11:37:55 -07:00
2021-12-22 11:57:50 -07:00
* `Billing Period`: As you like. This is just a test, so here just using
`Hourly` at $0.03886/hour. Click `Create an instance` to create the
virtual computer, which also starts billing.
2021-12-22 11:37:55 -07:00
2021-12-22 12:22:52 -07:00
* OVH will say `Launching Instance` and a few minutes later, your server
should be ready and in `Activated` status when viewed under the `Instances`
tab under `Public Cloud`.
## Forward DNS Configuration
Set up forward DNS with the new IP address OVH gave you for your
instance. Look at the `Public IP` of your new server `Activated`
server instance. In this example, it is `147.135.193.212`. That is the
network address of your new server. We want to add it to DNS, so add
it to OVH (?) or Njalla's records. For this example, this URL was used:
* https://njal.la/domains/mychestserver.org/
Click `Manage` for the domain, then `+ Add Record`.
* `Type`: Use `A` record.
* `Name`: Use `www`.
* `IPv4 Address`: Use the `Public IP` OVH gave you for your instance. In
this example, `147.135.193.212`.
* `TTL`: Lets do something short for now, use `5m`. Click `Add`.
That will take anywhere from a few seconds to an hour to be picked up by
2021-12-22 14:53:02 -07:00
nameservers around the world. It is best if you *don't* query it for now
2021-12-22 12:22:52 -07:00
(wait ~15+ minutes) or servers may cache a negative answer, which you'll
have to outwait.
## Reverse DNS Configuration
Set up reverse DNS with the new IP address OVH gave you for your
instance. Look at the `Public IP` of your new server `Activated`
server instance. In this example, it is `147.135.193.212`.
In the OVH `Dashboard` under your `Instances`, click on your instance,
such as the example `mychestserver`. On the right hand side under
`Networks` in the `IPv4` section there is a button with three dots.
Click it and select `Change reverse DNS`. Find your `Public IP` address
in the list, our example `147.135.193.212`. In the `Reverse DNS`
column, click the edit pencil box icon. Enter your full domain name,
such as our example `www.mychestserver.org` and click the check mark
to save it.
## Set up SSH on Workstation
Back on your workstation, set up your SSH configuration with the key
2021-12-22 12:40:18 -07:00
you created and the new `Public IP`. Edit the file `~/.ssh/config`.
2021-12-22 12:22:52 -07:00
2021-12-22 12:40:18 -07:00
```
vim ~/.ssh/config
```
Add using your name and `Public IP` instead of this example.
Also, use the path to the *private* workstation SSH key created earlier.
Add to `~/.ssh/config`:
```
Host mychestserver
Hostname 147.135.193.212
User debian
Port 22
Identityfile ~/.ssh/id_ecdsa-chess
```
# Login
Now from your workstation, log into the server and check that all
is ok:
```
2021-12-22 12:40:54 -07:00
ssh mychestserver
2021-12-22 12:40:18 -07:00
```
It should look something like this:
```
debian@workstation:~$ ssh mychestserver
Host key fingerprint is SHA256:WgtWRY7N3POEhSqhhS6aq7Wac1sR7AQ+abQTpgXiQvU
+---[ECDSA 256]---+
|SSB. . .S .. |
|+* *. . SB ..S |
|o.B +E oo.=.+ . |
|.. =..o.. . + |
| bb.b S. . |
| o o + . |
| ... . . |
|.ooo |
|+=o. |
+----[SHA256]-----+
Linux mychestserver 5.10.0-8-cloud-amd64 #1 SMP Debian 5.10.46-5 (2021-09-23) x86_64
The programs included with the Debian GNU/Linux system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.
Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
permitted by applicable law.
debian@mychestserver:~$
```
You can check all is happy with commands like:
```
free -h
df -h
cat /proc/cpuinfo
dpkg -l
uname -a
dmesg -T
```
2021-12-22 12:51:37 -07:00
# Update Server
First, set new passwords for user `debian` and then `root` on the server,
using sudo as root... Looks something like this:
```
debian@mychestserver:~$ sudo passwd debian
New password:
Retype new password:
passwd: password updated successfully
debian@mychestserver:~$ sudo passwd
New password:
Retype new password:
passwd: password updated successfully
```
Now, update to latest Debian packages.
```
sudo apt update
sudo apt upgrade
sudo apt clean
```
Reboot server to newly updated system.
2021-12-22 13:20:33 -07:00
It should take less than a minute to reboot.
2021-12-22 12:51:37 -07:00
```
reboot
```
2021-12-22 12:40:18 -07:00
# Install
2021-12-22 13:20:33 -07:00
Log back into the new server:
2021-12-22 12:51:37 -07:00
```
debian@workstation:~$ ssh mychestserver
```
2021-12-22 10:53:20 -07:00
2021-12-22 13:20:33 -07:00
## Install Debian Dependencies
Install the following dependencies from Debian's repos:
```
sudo apt update
2021-12-22 14:23:52 -07:00
sudo apt install \
apache2 \
build-essential \
git \
openjdk-11-jre-headless \
python-is-python3 \
python2 \
python3-certbot-apache \
redis-server
sudo apt clean
2021-12-22 13:20:33 -07:00
```
Note: Docs say `python2` is needed, but is that still correct?
## Install External Dependencies
Lila has quite a few dependencies, many of which are outside
2021-12-22 13:52:59 -07:00
of distributions' repositories. Sometimes the dependency exists
2021-12-22 13:20:33 -07:00
in the repo, but it is the wrong version. So we'll need to install
2021-12-22 13:52:59 -07:00
these dependencies from external repositories:
2021-12-22 13:20:33 -07:00
* `mongodb`
* `node`
* `sbt`
* `yarn`
### Install MongoDB
2021-12-22 13:32:10 -07:00
Install MongoDB thusly.
Note, they don't have a Debian Bullseye repo, but the Debian
Buster repo works.
```
# Get APT Key
wget -qO - https://www.mongodb.org/static/pgp/server-5.0.asc | sudo apt-key add -
# Add Repository
echo "deb http://repo.mongodb.org/apt/debian buster/mongodb-org/5.0 main" | sudo tee /etc/apt/sources.list.d/mongodb-org-5.0.list
2021-12-22 10:53:20 -07:00
2021-12-22 13:32:10 -07:00
# Update Apt
sudo apt update
# Install MongoDB Server
sudo apt install mongodb-org
# Be clean
sudo apt clean
# Start mongodb server
sudo systemctl start mongod.service
# Enable mongodb server on boot
sudo systemctl enable mongod.service
# Logs are here:
sudo tail -f /var/log/mongodb/mongod.log
```
2021-12-22 13:20:33 -07:00
### Install Node
2021-12-22 13:32:34 -07:00
Install Node thusly:
2021-12-22 13:20:33 -07:00
2021-12-22 13:52:59 -07:00
```
# Setup repos with their script
curl -fsSL https://deb.nodesource.com/setup_12.x | sudo bash -
# Install it
sudo apt install nodejs
sudo apt clean
```
2021-12-22 13:20:33 -07:00
2021-12-22 13:56:56 -07:00
2021-12-22 13:20:33 -07:00
### Install SBT
2021-12-22 13:32:34 -07:00
Install SBT thusly:
2021-12-22 13:20:33 -07:00
2021-12-22 13:56:56 -07:00
```
# Set up repos
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
# Add repo key
curl -sL "https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x2EE0EA64E40A89B84B2DF73499E82A75642AC823" | sudo apt-key add
# Update repo, install, and clean.
sudo apt update
sudo apt install sbt
sudo apt clean
```
2021-12-22 13:20:33 -07:00
### Install Yarn
2021-12-22 13:32:34 -07:00
Install Yarn thusly:
2021-12-22 13:20:33 -07:00
2021-12-22 14:03:19 -07:00
```
# Set up repos
echo "deb [signed-by=/usr/share/keyrings/yarnkey.gpg] https://dl.yarnpkg.com/debian stable main" | sudo tee /etc/apt/sources.list.d/yarn.list
# Add repo key
curl -sL https://dl.yarnpkg.com/debian/pubkey.gpg | gpg --dearmor | sudo tee /usr/share/keyrings/yarnkey.gpg >/dev/null
# Update repo, install, and clean.
sudo apt update
sudo apt install yarn
sudo apt clean
# Check OK:
debian@mychestserver:~$ yarn --version
1.22.17
```
2021-12-22 13:20:33 -07:00
2021-12-22 14:23:52 -07:00
## Set up Webserver
It is a bit easier to set up the webserver and get its SSL certificates
confirmed all working correctly before installing Lila, to
lessen any complications.
The webserver directories will be owned by user `debian`.
```
# User debian owns webserver files
sudo chown -R debian:debian /var/www
# Quick words for the webserver for testing
echo "mychestserver web" > /var/www/html/index.html
# Start webserver
sudo systemctl start apache2
# Logs are:
sudo tail -f /var/log/apache2/*.log
```
In your browser, you should now be able to see your website
in insecure plaintext on port 80. Go to your site with your
workstation's browser to check.
It should say like "mychestserver web".
* http://www.mychestserver.org
Note, your browser may try to send you to the `https` URL,
but that is set up below with `certbot`.
```
# Set up SSL certificates
sudo certbot
```
It should look something like this:
```
debian@mychestserver:~$ sudo certbot
Saving debug log to /var/log/letsencrypt/letsencrypt.log
Plugins selected: Authenticator apache, Installer apache
Enter email address (used for urgent renewal and security notices)
(Enter 'c' to cancel): webmaster@mychestserver.org
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Please read the Terms of Service at
https://letsencrypt.org/documents/LE-SA-v1.2-November-15-2017.pdf. You must
agree in order to register with the ACME server. Do you agree?
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
(Y)es/(N)o: y
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Would you be willing, once your first certificate is successfully issued, to
share your email address with the Electronic Frontier Foundation, a founding
partner of the Let's Encrypt project and the non-profit organization that
develops Certbot? We'd like to send you email about our work encrypting the web,
EFF news, campaigns, and ways to support digital freedom.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
(Y)es/(N)o: n
Account registered.
No names were found in your configuration files. Please enter in your domain
name(s) (comma and/or space separated) (Enter 'c' to cancel): www.mychestserver.org
Requesting a certificate for www.mychestserver.org
Performing the following challenges:
http-01 challenge for www.mychestserver.org
Enabled Apache rewrite module
Waiting for verification...
Cleaning up challenges
Created an SSL vhost at /etc/apache2/sites-available/000-default-le-ssl.conf
Enabled Apache socache_shmcb module
Enabled Apache ssl module
Deploying Certificate to VirtualHost /etc/apache2/sites-available/000-default-le-ssl.conf
Enabling available site: /etc/apache2/sites-available/000-default-le-ssl.conf
Enabled Apache rewrite module
Redirecting vhost in /etc/apache2/sites-enabled/000-default.conf to ssl vhost in /etc/apache2/sites-available/000-default-le-ssl.conf
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Congratulations! You have successfully enabled https://www.mychestserver.org
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
IMPORTANT NOTES:
- Congratulations! Your certificate and chain have been saved at:
/etc/letsencrypt/live/www.mychestserver.org/fullchain.pem
Your key file has been saved at:
/etc/letsencrypt/live/www.mychestserver.org/privkey.pem
Your certificate will expire on 2022-03-22. To obtain a new or
tweaked version of this certificate in the future, simply run
certbot again with the "certonly" option. To non-interactively
renew *all* of your certificates, run "certbot renew"
- If you like Certbot, please consider supporting our work by:
Donating to ISRG / Let's Encrypt: https://letsencrypt.org/donate
Donating to EFF: https://eff.org/donate-le
```
Then restart your web server:
```
sudo systemctl restart apache2
```
Now go to your website, and you should see that `https` encrypted
SSL is now working and you can view the certificate in your
workstation's web browser:
* https://www.mychestserver.org/
Lets also enable some Apache modules we'll need later.
```
# Enable Apache modules
sudo a2enmod headers http2 proxy proxy_http proxy_http2 proxy_wstunnel
# Restart Apache
sudo systemctl restart apache2
# Enable Apache to start on boot
sudo systemctl enable apache2
```
2021-12-22 13:20:33 -07:00
## Install Lila
2021-12-22 14:23:52 -07:00
Now we can actually install lila! See here:
2021-12-22 10:53:20 -07:00
* https://github.com/ornicar/lila
2021-12-22 10:04:40 -07:00
2021-12-22 14:36:41 -07:00
We'll install it in the Apache web tree.
Install thusly on server as `debian` user.
2021-12-22 14:23:52 -07:00
```
2021-12-22 14:36:41 -07:00
# Remove old directory
rm -rf /var/www/html
2021-12-22 14:23:52 -07:00
2021-12-22 14:36:41 -07:00
# Go to web directory
cd /var/www
2021-12-22 14:23:52 -07:00
2021-12-22 14:36:41 -07:00
# Clone the Lila git repository to the `html` directory
git clone --recursive https://github.com/ornicar/lila.git html
2021-12-22 14:23:52 -07:00
```
2021-12-22 13:20:33 -07:00
2021-12-22 14:36:41 -07:00
## Create MongoDB
Create a new MongoDB database.
```
# Go to new cloned dir
cd /var/www/html
# Create MongoDB database indexes
mongo lichess bin/mongodb/indexes.js
```
Creating the MongoDB database should look something like this:
```
debian@mychestserver:/var/www/html$ mongo lichess bin/mongodb/indexes.js
MongoDB shell version v5.0.5
connecting to: mongodb://127.0.0.1:27017/lichess?compressors=disabled&gssapiServiceName=mongodb
Implicit session: session { "id" : UUID("7b35e8f2-528c-4136-8b8f-7e9e21200857") }
MongoDB server version: 5.0.5
```
2021-12-22 14:53:02 -07:00
## Build Lila CSS and JS
Build the Lila CSS and JS files. This will take around ten minutes.
```
cd /var/www/html
./ui/build
```
It should look something like this:
```
debian@mychestserver:/var/www/html$ ./ui/build
building ui modules with target=dev and mode=build
node: v12.22.8
yarn: 1.22.17
yarn install v1.22.17
[1/5] Validating package.json...
[2/5] Resolving packages...
[3/5] Fetching packages...
[4/5] Linking dependencies...
[5/5] Building fresh packages...
Done in 37.56s.
For faster builds, install GNU parallel.
### ui/common ###
yarn run v1.22.17
$ $npm_execpath run compile
$ tsc
Done in 5.45s.
### ui/chess ###
yarn run v1.22.17
$ $npm_execpath run compile
$ tsc --incremental
Done in 4.38s.
### ui/palantir ###
yarn run v1.22.17
$ $npm_execpath run compile && rollup --config
$ tsc --incremental --declaration
src/main.ts → ../../public/compiled/palantir.js...
created ../../public/compiled/palantir.js in 1.7s
Done in 6.38s.
### ui/ceval ###
yarn run v1.22.17
$ $npm_execpath run compile
$ tsc --incremental
Done in 5.42s.
### ui/game ###
yarn run v1.22.17
$ $npm_execpath run compile
$ tsc --incremental
Done in 4.45s.
### ui/tree ###
yarn run v1.22.17
$ $npm_execpath run compile
$ tsc --incremental
Done in 4.32s.
### ui/chat ###
yarn run v1.22.17
$ $npm_execpath run compile && rollup --config
$ tsc --incremental --declaration --inlineSourceMap
src/main.ts → ../../public/compiled/chat.js...
created ../../public/compiled/chat.js in 3s
Done in 8.81s.
### ui/nvui ###
yarn run v1.22.17
$ $npm_execpath run compile
$ tsc --incremental
Done in 5.54s.
### ui/puz ###
yarn run v1.22.17
$ $npm_execpath run compile
$ tsc --incremental
Done in 4.72s.
### ui/css ###
yarn run v1.22.17
$ gulp css-dev
[21:40:38] Using gulpfile /var/www/html/ui/gulpfile.js
[21:40:38] Starting 'css-dev'...
[21:40:38] Starting 'createThemedBuilds'...
[21:40:38] Finished 'createThemedBuilds' after 22 ms
[21:40:38] Starting 'build'...
[21:41:06] Finished 'build' after 28 s
[21:41:06] Finished 'css-dev' after 28 s
Done in 29.11s.
### ui/site ###
yarn run v1.22.17
$ $npm_execpath run deps && rollup --config
$ cat ../../public/javascripts/vendor/cash.min.js ./dep/powertip.min.js ./dep/howler.min.js ./dep/mousetrap.min.js > ../../public/compiled/deps.min.js
src/site.ts → ../../public/compiled/site.js...
created ../../public/compiled/site.js in 6s
Done in 7.25s.
### ui/swiss ###
yarn run v1.22.17
$ rollup --config
src/main.ts → ../../public/compiled/swiss.js...
created ../../public/compiled/swiss.js in 4.6s
Done in 5.39s.
### ui/msg ###
yarn run v1.22.17
$ rollup --config
src/main.ts → ../../public/compiled/msg.js...
created ../../public/compiled/msg.js in 3.5s
Done in 4.34s.
### ui/cli ###
yarn run v1.22.17
$ rollup --config
src/main.ts → ../../public/compiled/cli.js...
created ../../public/compiled/cli.js in 1.9s
Done in 2.87s.
### ui/challenge ###
yarn run v1.22.17
$ rollup --config
src/main.ts → ../../public/compiled/challenge.js...
created ../../public/compiled/challenge.js in 2.4s
Done in 3.20s.
### ui/notify ###
yarn run v1.22.17
$ rollup --config
src/main.ts → ../../public/compiled/notify.js...
created ../../public/compiled/notify.js in 2.7s
Done in 3.57s.
### ui/learn ###
yarn run v1.22.17
$ rollup --config
src/main.ts → ../../public/compiled/learn.js...
created ../../public/compiled/learn.js in 5.1s
Done in 5.97s.
### ui/insight ###
yarn run v1.22.17
$ rollup --config
src/main.ts → ../../public/compiled/insight.js...
created ../../public/compiled/insight.js in 3.2s
Done in 4.08s.
### ui/editor ###
yarn run v1.22.17
$ rollup --config
src/main.ts → ../../public/compiled/editor.js...
created ../../public/compiled/editor.js in 4.4s
Done in 5.18s.
### ui/puzzle ###
yarn run v1.22.17
$ rollup --config
src/main.ts → ../../public/compiled/puzzle.js...
created ../../public/compiled/puzzle.js in 6.7s
Done in 7.65s.
### ui/round ###
yarn run v1.22.17
$ rollup --config
src/main.ts → ../../public/compiled/round.js...
created ../../public/compiled/round.js in 7.1s
Done in 8.14s.
### ui/analyse ###
yarn run v1.22.17
$ rollup --config
src/main.ts → ../../public/compiled/analysisBoard.js...
(!) Circular dependencies
src/main.ts -> src/boot.ts -> src/main.ts
src/treeView/treeView.ts -> src/treeView/columnView.ts -> src/treeView/treeView.ts
src/main.ts -> src/ctrl.ts -> src/treeView/treeView.ts -> src/treeView/contextMenu.ts -> src/main.ts
src/treeView/treeView.ts -> src/treeView/inlineView.ts -> src/treeView/treeView.ts
src/view.ts -> src/study/playerBars.ts -> src/view.ts
created ../../public/compiled/analysisBoard.js in 12.6s
Done in 13.54s.
### ui/lobby ###
yarn run v1.22.17
$ rollup --config
src/boot.ts → ../../public/compiled/lobby.js...
created ../../public/compiled/lobby.js in 5.3s
Done in 6.24s.
### ui/tournament ###
yarn run v1.22.17
$ rollup --config
src/main.ts → ../../public/compiled/tournament.js...
created ../../public/compiled/tournament.js in 5.4s
Done in 6.14s.
### ui/tournamentSchedule ###
yarn run v1.22.17
$ rollup --config
src/main.ts → ../../public/compiled/tournament.schedule.js...
created ../../public/compiled/tournament.schedule.js in 2.4s
Done in 3.21s.
### ui/tournamentCalendar ###
yarn run v1.22.17
$ rollup --config
src/main.ts → ../../public/compiled/tournament.calendar.js...
created ../../public/compiled/tournament.calendar.js in 3.3s
Done in 4.12s.
### ui/simul ###
yarn run v1.22.17
$ rollup --config
src/main.ts → ../../public/compiled/simul.js...
created ../../public/compiled/simul.js in 3.7s
Done in 4.55s.
### ui/dasher ###
yarn run v1.22.17
$ rollup --config
src/main.ts → ../../public/compiled/dasher.js...
created ../../public/compiled/dasher.js in 3.7s
Done in 4.73s.
### ui/speech ###
yarn run v1.22.17
$ rollup --config
src/main.ts → ../../public/compiled/speech.js...
created ../../public/compiled/speech.js in 1.3s
Done in 2.23s.
### ui/serviceWorker ###
yarn run v1.22.17
$ rollup --config
src/main.ts → ../../public/compiled/serviceWorker.js...
created ../../public/compiled/serviceWorker.js in 950ms
Done in 1.66s.
### ui/dgt ###
yarn run v1.22.17
$ rollup --config
src/main.ts → ../../public/compiled/dgt.js...
created ../../public/compiled/dgt.js in 3.2s
Done in 3.92s.
### ui/storm ###
yarn run v1.22.17
$ rollup --config
src/main.ts → ../../public/compiled/storm.js...
created ../../public/compiled/storm.js in 4.4s
Done in 5.38s.
### ui/racer ###
yarn run v1.22.17
$ rollup --config
src/main.ts → ../../public/compiled/racer.js...
created ../../public/compiled/racer.js in 4.1s
Done in 4.87s.
### ui/site plugin tvEmbed ###
yarn run v1.22.17
$ rollup --config --config-plugin tvEmbed
src/tvEmbed.ts → ../../public/compiled/tvEmbed.js...
created ../../public/compiled/tvEmbed.js in 5.6s
Done in 6.54s.
### ui/site plugin puzzleEmbed ###
yarn run v1.22.17
$ rollup --config --config-plugin puzzleEmbed
src/puzzleEmbed.ts → ../../public/compiled/puzzle.embed.js...
created ../../public/compiled/puzzle.embed.js in 5.8s
Done in 6.69s.
### ui/site plugin analyseEmbed ###
yarn run v1.22.17
$ rollup --config --config-plugin analyseEmbed
src/analyseEmbed.ts → ../../public/compiled/analysisBoard.embed.js...
created ../../public/compiled/analysisBoard.embed.js in 5.4s
Done in 6.54s.
### ui/site plugin user ###
yarn run v1.22.17
$ rollup --config --config-plugin user
src/user.ts → ../../public/compiled/user.js...
created ../../public/compiled/user.js in 5.3s
Done in 6.36s.
### ui/site plugin modUser ###
yarn run v1.22.17
$ rollup --config --config-plugin modUser
src/modUser.ts → ../../public/compiled/mod.user.js...
created ../../public/compiled/mod.user.js in 5.3s
Done in 6.17s.
### ui/site plugin modSearch ###
yarn run v1.22.17
$ rollup --config --config-plugin modSearch
src/modSearch.ts → ../../public/compiled/mod.search.js...
created ../../public/compiled/mod.search.js in 4.9s
Done in 5.86s.
### ui/site plugin clas ###
yarn run v1.22.17
$ rollup --config --config-plugin clas
src/clas.ts → ../../public/compiled/clas.js...
created ../../public/compiled/clas.js in 4.9s
Done in 5.92s.
### ui/site plugin coordinate ###
yarn run v1.22.17
$ rollup --config --config-plugin coordinate
src/coordinate.ts → ../../public/compiled/coordinate.js...
created ../../public/compiled/coordinate.js in 5.5s
Done in 6.50s.
### ui/site plugin captcha ###
yarn run v1.22.17
$ rollup --config --config-plugin captcha
src/captcha.ts → ../../public/compiled/captcha.js...
created ../../public/compiled/captcha.js in 4.9s
Done in 5.90s.
### ui/site plugin expandText ###
yarn run v1.22.17
$ rollup --config --config-plugin expandText
src/expandText.ts → ../../public/compiled/expandText.js...
created ../../public/compiled/expandText.js in 4.9s
Done in 5.84s.
### ui/site plugin team ###
yarn run v1.22.17
$ rollup --config --config-plugin team
src/team.ts → ../../public/compiled/team.js...
created ../../public/compiled/team.js in 5.2s
Done in 6.11s.
### ui/site plugin forum ###
yarn run v1.22.17
$ rollup --config --config-plugin forum
src/forum.ts → ../../public/compiled/forum.js...
created ../../public/compiled/forum.js in 5.2s
Done in 6.11s.
### ui/site plugin account ###
yarn run v1.22.17
$ rollup --config --config-plugin account
src/account.ts → ../../public/compiled/account.js...
created ../../public/compiled/account.js in 5.6s
Done in 6.56s.
### ui/site plugin coachShow ###
yarn run v1.22.17
$ rollup --config --config-plugin coachShow
src/coachShow.ts → ../../public/compiled/coach.show.js...
created ../../public/compiled/coach.show.js in 4.9s
Done in 5.88s.
### ui/site plugin coachForm ###
yarn run v1.22.17
$ rollup --config --config-plugin coachForm
src/coachForm.ts → ../../public/compiled/coach.form.js...
created ../../public/compiled/coach.form.js in 6.6s
Done in 7.58s.
### ui/site plugin challengePage ###
yarn run v1.22.17
$ rollup --config --config-plugin challengePage
src/challengePage.ts → ../../public/compiled/challengePage.js...
created ../../public/compiled/challengePage.js in 5.1s
Done in 6.10s.
### ui/site plugin checkout ###
yarn run v1.22.17
$ rollup --config --config-plugin checkout
src/checkout.ts → ../../public/compiled/checkout.js...
created ../../public/compiled/checkout.js in 4.6s
Done in 5.49s.
### ui/site plugin plan ###
yarn run v1.22.17
$ rollup --config --config-plugin plan
src/plan.ts → ../../public/compiled/plan.js...
created ../../public/compiled/plan.js in 5.9s
Done in 7.00s.
### ui/site plugin login ###
yarn run v1.22.17
$ rollup --config --config-plugin login
src/login.ts → ../../public/compiled/login.js...
created ../../public/compiled/login.js in 5.2s
Done in 6.29s.
### ui/site plugin passwordComplexity ###
yarn run v1.22.17
$ rollup --config --config-plugin passwordComplexity
src/passwordComplexity.ts → ../../public/compiled/passwordComplexity.js...
created ../../public/compiled/passwordComplexity.js in 5.4s
Done in 6.39s.
### ui/site plugin tourForm ###
yarn run v1.22.17
$ rollup --config --config-plugin tourForm
src/tourForm.ts → ../../public/compiled/tourForm.js...
created ../../public/compiled/tourForm.js in 5.6s
Done in 6.72s.
### ui/site plugin teamBattleForm ###
yarn run v1.22.17
$ rollup --config --config-plugin teamBattleForm
src/teamBattleForm.ts → ../../public/compiled/teamBattleForm.js...
created ../../public/compiled/teamBattleForm.js in 5.5s
Done in 6.54s.
### ui/site plugin gameSearch ###
yarn run v1.22.17
$ rollup --config --config-plugin gameSearch
src/gameSearch.ts → ../../public/compiled/gameSearch.js...
created ../../public/compiled/gameSearch.js in 4.6s
Done in 5.67s.
### ui/site plugin userComplete ###
yarn run v1.22.17
$ rollup --config --config-plugin userComplete
src/userComplete.ts → ../../public/compiled/userComplete.js...
created ../../public/compiled/userComplete.js in 5.9s
Done in 6.92s.
### ui/site plugin infiniteScroll ###
yarn run v1.22.17
$ rollup --config --config-plugin infiniteScroll
src/infiniteScroll.ts → ../../public/compiled/infiniteScroll.js...
created ../../public/compiled/infiniteScroll.js in 5s
Done in 5.98s.
### ui/site plugin flatpickr ###
yarn run v1.22.17
$ rollup --config --config-plugin flatpickr
src/flatpickr.ts → ../../public/compiled/flatpickr.js...
created ../../public/compiled/flatpickr.js in 5.6s
Done in 6.70s.
### ui/site plugin teamAdmin ###
yarn run v1.22.17
$ rollup --config --config-plugin teamAdmin
src/teamAdmin.ts → ../../public/compiled/team.admin.js...
created ../../public/compiled/team.admin.js in 5.1s
Done in 6.15s.
### ui/site plugin appeal ###
yarn run v1.22.17
$ rollup --config --config-plugin appeal
src/appeal.ts → ../../public/compiled/appeal.js...
created ../../public/compiled/appeal.js in 5.1s
Done in 5.99s.
### ui/site plugin modGames ###
yarn run v1.22.17
$ rollup --config --config-plugin modGames
src/modGames.ts → ../../public/compiled/mod.games.js...
created ../../public/compiled/mod.games.js in 4.9s
Done in 5.85s.
### ui/site plugin publicChats ###
yarn run v1.22.17
$ rollup --config --config-plugin publicChats
src/publicChats.ts → ../../public/compiled/publicChats.js...
created ../../public/compiled/publicChats.js in 5s
Done in 5.88s.
### ui/site plugin contact ###
yarn run v1.22.17
$ rollup --config --config-plugin contact
src/contact.ts → ../../public/compiled/contact.js...
created ../../public/compiled/contact.js in 5.2s
Done in 6.34s.
### ui/site plugin userGamesDownload ###
yarn run v1.22.17
$ rollup --config --config-plugin userGamesDownload
src/userGamesDownload.ts → ../../public/compiled/userGamesDownload.js...
created ../../public/compiled/userGamesDownload.js in 4.9s
Done in 5.83s.
### ui/site plugin modActivity ###
yarn run v1.22.17
$ rollup --config --config-plugin modActivity
src/modActivity.ts → ../../public/compiled/modActivity.js...
created ../../public/compiled/modActivity.js in 8.8s
Done in 9.77s.
### ui/site plugin tvGames ###
yarn run v1.22.17
$ rollup --config --config-plugin tvGames
src/tvGames.ts → ../../public/compiled/tvGames.js...
created ../../public/compiled/tvGames.js in 5.2s
Done in 6.37s.
### ui/site plugin ublog ###
yarn run v1.22.17
$ rollup --config --config-plugin ublog
src/ublog.ts → ../../public/compiled/ublog.js...
created ../../public/compiled/ublog.js in 5.1s
Done in 6.14s.
### ui/site plugin ublogForm ###
yarn run v1.22.17
$ rollup --config --config-plugin ublogForm
src/ublogForm.ts → ../../public/compiled/ublogForm.js...
created ../../public/compiled/ublogForm.js in 10.8s
Done in 11.94s.
### ui/round plugin nvui ###
yarn run v1.22.17
$ rollup --config --config-plugin nvui
src/plugins/nvui.ts → ../../public/compiled/round.nvui.js...
created ../../public/compiled/round.nvui.js in 6s
Done in 6.80s.
### ui/round plugin keyboardMove ###
yarn run v1.22.17
$ rollup --config --config-plugin keyboardMove
src/plugins/keyboardMove.ts → ../../public/compiled/round.keyboardMove.js...
created ../../public/compiled/round.keyboardMove.js in 5.1s
Done in 5.93s.
### ui/analyse plugin nvui ###
yarn run v1.22.17
$ rollup --config --config-plugin nvui
src/plugins/nvui.ts → ../../public/compiled/analysisBoard.nvui.js...
(!) If you do not supply "output.name", you may not be able to access the exports of an IIFE bundle.
created ../../public/compiled/analysisBoard.nvui.js in 9.8s
Done in 10.79s.
### ui/analyse plugin studyTopicForm ###
yarn run v1.22.17
$ rollup --config --config-plugin studyTopicForm
src/plugins/studyTopicForm.ts → ../../public/compiled/study.topic.form.js...
created ../../public/compiled/study.topic.form.js in 8.8s
Done in 9.56s.
### ui/puzzle plugin nvui ###
yarn run v1.22.17
$ rollup --config --config-plugin nvui
src/plugins/nvui.ts → ../../public/compiled/puzzle.nvui.js...
created ../../public/compiled/puzzle.nvui.js in 5s
Done in 5.77s.
### ui/puzzle plugin dashboard ###
yarn run v1.22.17
$ rollup --config --config-plugin dashboard
src/dashboard.ts → ../../public/compiled/puzzle.dashboard.js...
created ../../public/compiled/puzzle.dashboard.js in 6.2s
Done in 6.90s.
```
2021-12-22 14:57:15 -07:00
## Start Lila Console
With everything built in the UI ok above,
start the Lila console thusly:
```
cd /var/www/html
./lila
```
It should look something like this:
```
debian@mychestserver:/var/www/html$ ./lila
|\_ _ _ _
/o \ | (_) ___| |__ ___ ___ ___ ___ _ __ __ _
(_. || | | |/ __| '_ \ / _ \/ __/ __| / _ \| '__/ _` |
/__\ | | | (__| | | | __/\__ \__ \| (_) | | | (_| |
)___( |_|_|\___|_| |_|\___||___/___(_)___/|_| \__, |
|___/
Java 11.0.13
sbt -Dreactivemongo.api.bson.document.strict=false
downloading sbt launcher 1.5.8
copying runtime jar...
[info] [launcher] getting org.scala-sbt sbt 1.5.8 (this may take some time)...
[info] [launcher] getting Scala 2.12.14 (for sbt)...
[info] welcome to sbt 1.5.8 (Debian Java 11.0.13)
[info] loading settings for project html-build from plugins.sbt ...
[info] loading project definition from /var/www/html/project
[info] Updating
https://repo1.maven.org/maven2/ch/epfl/scala/sbt-bloop_2.12_1.0/1.4.11/sbt-bloop-1.4.11.pom
100.0% [##########] 2.7 KiB (13.4 KiB / s)
https://repo1.maven.org/maven2/org/scalameta/sbt-scalafmt_2.12_1.0/2.4.5/sbt-scalafmt-2.4.5.pom
100.0% [##########] 2.7 KiB (13.4 KiB / s)
https://raw.githubusercontent.com/ornicar/lila-maven/master/com.typesafe.play/sbt-plugin/scala_2.12/sbt_1.0/2.8.8-lila_1.8/ivys/ivy.xml
100.0% [##########] 4.5 KiB (13.4 KiB / s)
https://repo1.maven.org/maven2/com/typesafe/config/1.4.1/config-1.4.1.pom
100.0% [##########] 2.2 KiB (103.7 KiB / s)
https://repo1.maven.org/maven2/com/google/code/gson/gson/2.7/gson-2.7.pom
100.0% [##########] 1.4 KiB (34.4 KiB / s)
https://repo1.maven.org/maven2/net/java/dev/jna/jna/4.5.0/jna-4.5.0.pom
100.0% [##########] 1.5 KiB (36.7 KiB / s)
https://repo1.maven.org/maven2/com/lightbend/play/play-file-watch_2.12/1.1.16/play-file-watch_2.12-1.1.16.pom
100.0% [##########] 2.7 KiB (34.6 KiB / s)
https://repo1.maven.org/maven2/com/google/code/findbugs/jsr305/3.0.2/jsr305-3.0.2.pom
100.0% [##########] 4.2 KiB (93.0 KiB / s)
https://repo1.maven.org/maven2/net/java/dev/jna/jna-platform/4.5.0/jna-platform-4.5.0.pom
100.0% [##########] 1.8 KiB (117.2 KiB / s)
https://repo1.maven.org/maven2/org/scalameta/scalafmt-dynamic_2.12/3.2.1/scalafmt-dynamic_2.12-3.2.1.pom
100.0% [##########] 2.7 KiB (42.8 KiB / s)
https://repo1.maven.org/maven2/org/scalameta/scalafmt-sysops_2.12/3.2.1/scalafmt-sysops_2.12-3.2.1.pom
100.0% [##########] 2.2 KiB (33.6 KiB / s)
https://repo1.maven.org/maven2/org/slf4j/slf4j-simple/1.7.32/slf4j-simple-1.7.32.pom
100.0% [##########] 1021B (19.9 KiB / s)
https://raw.githubusercontent.com/ornicar/lila-maven/master/com.typesafe.play/sbt-routes-compiler_2.12/2.8.8-lila_1.8/ivys/ivy.xml
100.0% [##########] 3.3 KiB (19.0 KiB / s)
https://raw.githubusercontent.com/ornicar/lila-maven/master/com.typesafe.play/play-exceptions/2.8.8-lila_1.8/ivys/ivy.xml
100.0% [##########] 2.3 KiB (8.1 KiB / s)
https://repo.scala-sbt.org/scalasbt/sbt-plugin-releases/com.typesafe.sbt/sbt-native-packager/scala_2.12/sbt_1.0/1.8.1/ivys/ivy.xml
100.0% [##########] 3.8 KiB (2.7 KiB / s)
https://repo.scala-sbt.org/scalasbt/sbt-plugin-releases/com.typesafe.sbt/sbt-twirl/scala_2.12/sbt_1.0/1.5.1/ivys/ivy.xml
100.0% [##########] 3.2 KiB (2.3 KiB / s)
https://repo.scala-sbt.org/scalasbt/sbt-plugin-releases/com.typesafe.sbt/sbt-web/scala_2.12/sbt_1.0/1.4.4/ivys/ivy.xml
100.0% [##########] 2.7 KiB (1.9 KiB / s)
https://repo1.maven.org/maven2/com/google/code/gson/gson-parent/2.7/gson-parent-2.7.pom
100.0% [##########] 3.5 KiB (116.5 KiB / s)
https://repo1.maven.org/maven2/org/slf4j/slf4j-parent/1.7.32/slf4j-parent-1.7.32.pom
100.0% [##########] 13.5 KiB (518.6 KiB / s)
https://repo1.maven.org/maven2/com/typesafe/play/twirl-compiler_2.12/1.5.1/twirl-compiler_2.12-1.5.1.pom
100.0% [##########] 2.3 KiB (125.1 KiB / s)
https://repo1.maven.org/maven2/com/typesafe/akka/akka-actor_2.12/2.5.17/akka-actor_2.12-2.5.17.pom
100.0% [##########] 2.1 KiB (57.8 KiB / s)
https://repo1.maven.org/maven2/com/typesafe/play/twirl-api_2.12/1.5.1/twirl-api_2.12-1.5.1.pom
100.0% [##########] 1.9 KiB (64.0 KiB / s)
https://repo1.maven.org/maven2/org/apache/ant/ant/1.10.9/ant-1.10.9.pom
100.0% [##########] 16.1 KiB (520.2 KiB / s)
https://repo1.maven.org/maven2/org/apache/commons/commons-compress/1.20/commons-compress-1.20.pom
100.0% [##########] 17.8 KiB (509.7 KiB / s)
https://repo1.maven.org/maven2/org/scalameta/scalafmt-interfaces/3.2.1/scalafmt-interfaces-3.2.1.pom
100.0% [##########] 2.1 KiB (55.9 KiB / s)
https://repo1.maven.org/maven2/org/scala-lang/modules/scala-xml_2.12/1.1.1/scala-xml_2.12-1.1.1.pom
100.0% [##########] 2.7 KiB (76.8 KiB / s)
https://repo1.maven.org/maven2/com/github/pathikrit/better-files_2.12/3.8.0/better-files_2.12-3.8.0.pom
100.0% [##########] 2.7 KiB (117.1 KiB / s)
https://repo1.maven.org/maven2/io/get-coursier/interface/0.0.17/interface-0.0.17.pom
100.0% [##########] 1.6 KiB (50.2 KiB / s)
https://repo1.maven.org/maven2/io/methvin/directory-watcher/0.15.0/directory-watcher-0.15.0.pom
100.0% [##########] 3.1 KiB (110.4 KiB / s)
https://repo1.maven.org/maven2/org/slf4j/slf4j-api/1.7.32/slf4j-api-1.7.32.pom
100.0% [##########] 3.7 KiB (53.5 KiB / s)
https://repo1.maven.org/maven2/com/github/eldis/tool-launcher/0.2.2/tool-launcher-0.2.2.pom
100.0% [##########] 1.6 KiB (44.2 KiB / s)
https://repo1.maven.org/maven2/org/webjars/webjars-locator-core/0.36/webjars-locator-core-0.36.pom
100.0% [##########] 8.1 KiB (194.0 KiB / s)
https://repo1.maven.org/maven2/org/apache/ant/ant-parent/1.10.9/ant-parent-1.10.9.pom
100.0% [##########] 6.4 KiB (187.2 KiB / s)
https://repo1.maven.org/maven2/org/apache/commons/commons-parent/48/commons-parent-48.pom
100.0% [##########] 70.3 KiB (1.9 MiB / s)
https://repo1.maven.org/maven2/org/apache/apache/21/apache-21.pom
100.0% [##########] 16.7 KiB (726.3 KiB / s)
https://repo1.maven.org/maven2/org/scala-lang/modules/scala-java8-compat_2.12/0.8.0/scala-java8-compat_2.12-0.8.0.pom
100.0% [##########] 2.3 KiB (84.5 KiB / s)
https://repo1.maven.org/maven2/com/fasterxml/jackson/core/jackson-core/2.9.7/jackson-core-2.9.7.pom
100.0% [##########] 4.0 KiB (84.4 KiB / s)
https://repo1.maven.org/maven2/com/typesafe/play/twirl-parser_2.12/1.5.1/twirl-parser_2.12-1.5.1.pom
100.0% [##########] 2.1 KiB (44.2 KiB / s)
https://repo1.maven.org/maven2/org/apache/commons/commons-lang3/3.8.1/commons-lang3-3.8.1.pom
100.0% [##########] 27.2 KiB (567.4 KiB / s)
https://repo1.maven.org/maven2/org/scala-lang/modules/scala-xml_2.12/1.2.0/scala-xml_2.12-1.2.0.pom
100.0% [##########] 2.7 KiB (53.7 KiB / s)
https://repo1.maven.org/maven2/net/java/dev/jna/jna/5.7.0/jna-5.7.0.pom
100.0% [##########] 1.5 KiB (39.6 KiB / s)
https://repo1.maven.org/maven2/org/apache/ant/ant-launcher/1.10.9/ant-launcher-1.10.9.pom
100.0% [##########] 3.1 KiB (68.6 KiB / s)
https://repo1.maven.org/maven2/com/fasterxml/jackson/jackson-base/2.9.7/jackson-base-2.9.7.pom
100.0% [##########] 5.2 KiB (218.5 KiB / s)
https://repo1.maven.org/maven2/org/apache/commons/commons-parent/47/commons-parent-47.pom
100.0% [##########] 75.7 KiB (3.2 MiB / s)
https://repo1.maven.org/maven2/org/apache/apache/19/apache-19.pom
100.0% [##########] 15.1 KiB (351.8 KiB / s)
https://repo1.maven.org/maven2/com/fasterxml/jackson/jackson-bom/2.9.7/jackson-bom-2.9.7.pom
100.0% [##########] 12.0 KiB (193.6 KiB / s)
https://repo1.maven.org/maven2/com/fasterxml/jackson/jackson-parent/2.9.1.1/jackson-parent-2.9.1.1.pom
100.0% [##########] 7.8 KiB (313.4 KiB / s)
https://repo1.maven.org/maven2/com/fasterxml/oss-parent/33/oss-parent-33.pom
100.0% [##########] 21.3 KiB (645.7 KiB / s)
[info] Resolved dependencies
[info] Updating
https://repo1.maven.org/maven2/jline/jline/2.14.6/jline-2.14.6.pom
100.0% [##########] 19.4 KiB (693.8 KiB / s)
https://repo1.maven.org/maven2/org/fusesource/jansi/jansi/1.12/jansi-1.12.pom
100.0% [##########] 3.6 KiB (151.0 KiB / s)
https://repo1.maven.org/maven2/org/fusesource/jansi/jansi-project/1.12/jansi-project-1.12.pom
100.0% [##########] 11.5 KiB (411.0 KiB / s)
[info] Resolved dependencies
[info] Fetching artifacts of
https://repo1.maven.org/maven2/com/typesafe/play/twirl-parser_2.12/1.5.1/twirl-parser_2.12-1.5.1.jar
100.0% [##########] 76.5 KiB (3.6 MiB / s)
https://repo1.maven.org/maven2/org/fusesource/jansi/jansi/1.12/jansi-1.12.jar
100.0% [##########] 148.2 KiB (3.1 MiB / s)
https://repo1.maven.org/maven2/org/scalameta/scalafmt-sysops_2.12/3.2.1/scalafmt-sysops_2.12-3.2.1.jar
100.0% [##########] 45.0 KiB (1.2 MiB / s)
https://repo1.maven.org/maven2/org/apache/commons/commons-compress/1.20/commons-compress-1.20.jar
100.0% [##########] 617.6 KiB (11.6 MiB / s)
https://repo1.maven.org/maven2/org/scala-lang/modules/scala-java8-compat_2.12/0.8.0/scala-java8-compat_2.12-0.8.0.jar
100.0% [##########] 1.1 MiB (13.9 MiB / s)
https://repo1.maven.org/maven2/com/github/eldis/tool-launcher/0.2.2/tool-launcher-0.2.2.jar
100.0% [##########] 3.4 KiB (101.8 KiB / s)
https://repo1.maven.org/maven2/io/get-coursier/interface/0.0.17/interface-0.0.17.jar
100.0% [##########] 3.0 MiB (26.2 MiB / s)
https://repo1.maven.org/maven2/com/lightbend/play/play-file-watch_2.12/1.1.16/play-file-watch_2.12-1.1.16.jar
100.0% [##########] 52.3 KiB (1.5 MiB / s)
https://repo1.maven.org/maven2/com/typesafe/play/twirl-api_2.12/1.5.1/twirl-api_2.12-1.5.1.jar
100.0% [##########] 75.6 KiB (4.9 MiB / s)
https://repo1.maven.org/maven2/org/slf4j/slf4j-api/1.7.32/slf4j-api-1.7.32.jar
100.0% [##########] 40.5 KiB (779.6 KiB / s)
https://raw.githubusercontent.com/ornicar/lila-maven/master/com.typesafe.play/play-exceptions/2.8.8-lila_1.8/jars/play-exceptions.jar
100.0% [##########] 4.7 KiB (25.3 KiB / s)
https://repo1.maven.org/maven2/com/github/pathikrit/better-files_2.12/3.8.0/better-files_2.12-3.8.0.jar
100.0% [##########] 248.9 KiB (5.7 MiB / s)
https://repo1.maven.org/maven2/com/typesafe/config/1.4.1/config-1.4.1.jar
100.0% [##########] 288.3 KiB (7.8 MiB / s)
https://raw.githubusercontent.com/ornicar/lila-maven/master/com.typesafe.play/sbt-plugin/scala_2.12/sbt_1.0/2.8.8-lila_1.8/jars/sbt-plugin.jar
100.0% [##########] 101.5 KiB (470.0 KiB / s)
https://repo1.maven.org/maven2/com/google/code/findbugs/jsr305/3.0.2/jsr305-3.0.2.jar
100.0% [##########] 19.5 KiB (486.7 KiB / s)
https://repo1.maven.org/maven2/com/typesafe/play/twirl-compiler_2.12/1.5.1/twirl-compiler_2.12-1.5.1.jar
100.0% [##########] 66.3 KiB (1.8 MiB / s)
https://repo1.maven.org/maven2/io/methvin/directory-watcher/0.15.0/directory-watcher-0.15.0.jar
100.0% [##########] 49.4 KiB (1.1 MiB / s)
https://repo1.maven.org/maven2/org/scalameta/sbt-scalafmt_2.12_1.0/2.4.5/sbt-scalafmt-2.4.5.jar
100.0% [##########] 48.2 KiB (1.7 MiB / s)
https://repo1.maven.org/maven2/com/google/code/gson/gson/2.7/gson-2.7.jar
100.0% [##########] 226.5 KiB (2.4 MiB / s)
https://repo1.maven.org/maven2/net/java/dev/jna/jna-platform/4.5.0/jna-platform-4.5.0.jar
100.0% [##########] 2.2 MiB (19.8 MiB / s)
https://repo1.maven.org/maven2/org/scalameta/scalafmt-interfaces/3.2.1/scalafmt-interfaces-3.2.1.jar
100.0% [##########] 5.2 KiB (131.1 KiB / s)
https://repo1.maven.org/maven2/org/scala-lang/modules/scala-xml_2.12/1.2.0/scala-xml_2.12-1.2.0.jar
100.0% [##########] 543.5 KiB (9.0 MiB / s)
https://repo1.maven.org/maven2/jline/jline/2.14.6/jline-2.14.6.jar
100.0% [##########] 262.5 KiB (9.5 MiB / s)
https://repo1.maven.org/maven2/org/apache/commons/commons-lang3/3.8.1/commons-lang3-3.8.1.jar
100.0% [##########] 490.1 KiB (4.4 MiB / s)
https://repo1.maven.org/maven2/ch/epfl/scala/sbt-bloop_2.12_1.0/1.4.11/sbt-bloop-1.4.11.jar
100.0% [##########] 10.9 MiB (27.6 MiB / s)
https://repo1.maven.org/maven2/org/scalameta/scalafmt-dynamic_2.12/3.2.1/scalafmt-dynamic_2.12-3.2.1.jar
100.0% [##########] 135.8 KiB (4.1 MiB / s)
https://repo1.maven.org/maven2/org/webjars/webjars-locator-core/0.36/webjars-locator-core-0.36.jar
100.0% [##########] 26.8 KiB (744.5 KiB / s)
https://raw.githubusercontent.com/ornicar/lila-maven/master/com.typesafe.play/sbt-routes-compiler_2.12/2.8.8-lila_1.8/jars/sbt-routes-compiler_2.12.jar
100.0% [##########] 183.0 KiB (759.4 KiB / s)
https://repo.scala-sbt.org/scalasbt/sbt-plugin-releases/com.typesafe.sbt/sbt-web/scala_2.12/sbt_1.0/1.4.4/srcs/sbt-web-sources.jar
100.0% [##########] 19.9 KiB (44.1 KiB / s)
https://repo1.maven.org/maven2/com/fasterxml/jackson/core/jackson-core/2.9.7/jackson-core-2.9.7.jar
100.0% [##########] 316.4 KiB (8.4 MiB / s)
https://repo1.maven.org/maven2/org/apache/ant/ant-launcher/1.10.9/ant-launcher-1.10.9.jar
100.0% [##########] 18.4 KiB (921.8 KiB / s)
https://repo1.maven.org/maven2/org/apache/ant/ant/1.10.9/ant-1.10.9.jar
100.0% [##########] 2.2 MiB (27.8 MiB / s)
https://repo1.maven.org/maven2/org/slf4j/slf4j-simple/1.7.32/slf4j-simple-1.7.32.jar
100.0% [##########] 14.9 KiB (827.7 KiB / s)
https://repo1.maven.org/maven2/net/java/dev/jna/jna/5.7.0/jna-5.7.0.jar
100.0% [##########] 1.6 MiB (24.0 MiB / s)
https://repo1.maven.org/maven2/com/typesafe/akka/akka-actor_2.12/2.5.17/akka-actor_2.12-2.5.17.jar
100.0% [##########] 3.3 MiB (12.8 MiB / s)
https://repo.scala-sbt.org/scalasbt/sbt-plugin-releases/com.typesafe.sbt/sbt-twirl/scala_2.12/sbt_1.0/1.5.1/jars/sbt-twirl.jar
100.0% [##########] 53.9 KiB (95.5 KiB / s)
https://repo.scala-sbt.org/scalasbt/sbt-plugin-releases/com.typesafe.sbt/sbt-web/scala_2.12/sbt_1.0/1.4.4/jars/sbt-web.jar
100.0% [##########] 126.6 KiB (180.6 KiB / s)
https://repo.scala-sbt.org/scalasbt/sbt-plugin-releases/com.typesafe.sbt/sbt-native-packager/scala_2.12/sbt_1.0/1.8.1/jars/sbt-native-packager.jar
100.0% [##########] 858.0 KiB (483.9 KiB / s)
https://repo.scala-sbt.org/scalasbt/sbt-plugin-releases/com.typesafe.sbt/sbt-web/scala_2.12/sbt_1.0/1.4.4/docs/sbt-web-javadoc.jar
100.0% [##########] 1.3 MiB (643.2 KiB / s)
[info] Fetched artifacts of
[info] compiling 3 Scala sources to /var/www/html/project/target/scala-2.12/sbt-1.0/classes ...
[info] Non-compiled module 'compiler-bridge_2.12' for Scala 2.12.14. Compiling...
[info] Compilation completed in 14.772s.
[warn] one feature warning; re-run with -feature for details
[warn] one warning found
[info] loading settings for project lila from build.sbt ...
[info] resolving key references (67100 settings) ...
[info] set current project to lila (in build file:/var/www/html/)
[info] sbt server started at local:///home/debian/.sbt/1.0/server/22a4d6cb6dbbe2874385/sock
[info] started sbt server
[lila] $
```
2021-12-22 15:08:04 -07:00
## Compile Lila
At the `lila` prompt created by running Lila in the above step,
compile Lila thusly:
```
compile
```
It should look like:
```
[lila] $ compile
...
# lots of output, running for around five minutes.
...
https://repo1.maven.org/maven2/org/specs2/specs2-common_2.13/4.8.1/specs2-common_2.13-4.8.1.jar
100.0% [##########] 2.0 MiB (12.2 MiB / s)
https://raw.githubusercontent.com/ornicar/lila-maven/master/com/typesafe/play/play-logback_2.13/2.8.8-lila_1.8/play-logback_2.13-2.8.8-lila_1.8.jar
100.0% [##########] 9.5 KiB (50.2 KiB / s)
[info] Fetched artifacts of
[info] compiling 9 Scala sources and 4 Java sources to /var/www/html/modules/rating/target/scala-2.13/classes ...
[info] compiling 26 Scala sources and 1 Java source to /var/www/html/modules/user/target/scala-2.13/classes ...
...
[info] compiling 22 Scala sources to /var/www/html/modules/api/target/scala-2.13/classes ...
[info] compiling 342 Scala sources and 1 Java source to /var/www/html/target/scala-2.13/classes ...
[success] Total time: 335 s (05:35), completed Dec 22, 2021, 10:04:55 PM
[lila] $
```
2021-12-22 14:53:02 -07:00
2021-12-22 13:20:33 -07:00
## Install lila-ws
2021-12-22 10:53:20 -07:00
* https://github.com/ornicar/lila-ws
2021-12-22 10:04:40 -07:00
```
vim ./src/main/resources/application.conf
# set
csrf.origin = "https://deepcrayon.fish"
```
2021-12-22 11:37:55 -07:00
2021-12-22 13:32:10 -07:00
2021-12-22 13:20:33 -07:00
# Configure
Configure thusly...
2021-12-22 13:32:10 -07:00
2021-12-22 13:20:33 -07:00
# Use
Use thusly...
2021-12-22 13:32:10 -07:00
2021-12-22 11:37:55 -07:00
# Misc
Potentially include items such as:
* Local firewall.
* Securing ssh.
* Locking down system overall.
2021-12-22 12:51:37 -07:00
* Set locale.
* Set timezone.
* Disable IPv6.
2021-12-22 13:20:33 -07:00
* Lila secrets & salts.
2021-12-22 13:32:10 -07:00
* Turn off unneeded services.
2021-12-22 13:41:08 -07:00
* Forums.
* Irwin.
* Mail.
* Bots.
2021-12-22 14:57:15 -07:00
* git branches