summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.env.example4
-rw-r--r--README.md64
-rwxr-xr-xbuildscripts/build/build_server.sh3
-rw-r--r--presentation/chessh.org2
4 files changed, 65 insertions, 8 deletions
diff --git a/.env.example b/.env.example
index 6636fb9..2f43485 100644
--- a/.env.example
+++ b/.env.example
@@ -2,10 +2,6 @@ HOST=0.0.0.0
NODE_ID=aUniqueString
DATABASE_URL=ecto://chessh:password@database/chessh
-POSTGRES_USER=chessh
-POSTGRES_PASSWORD=password
-POSTGRES_DATABASE=chessh
-
WEB_PORT=8080
REACT_APP_DISCORD_INVITE=https://discord.gg/ajsdlkfjaskldjf
diff --git a/README.md b/README.md
index 3b06450..9b72b6a 100644
--- a/README.md
+++ b/README.md
@@ -1,5 +1,65 @@
# CheSSH
-Check out the USUFSLC presentation for this application to understand best what the hell this is:
+CheSSH is a distributed multiplayer implementation of the game of Chess over SSH,
+written in Elixir, with Discord integrations to deliver alerts when players are
+looking for opponents, or in games when it is one's turn.
-[https://linux.usu.edu/stream/12](https://linux.usu.edu/stream/12)
+https://user-images.githubusercontent.com/25559600/221317658-a80046ca-6009-456d-b43c-67d95baa4bf6.mp4
+
+## Usage
+
+### Dependencies
++ `npm`
++ `elixir`
++ `postgresql`
++ `redis` (which you can ignore if you only use the ETS backend for Hammer in
+ `config/dev.exs` [set by default])
+
+### Installation
+
+Do something among the lines of:
+
+```
+git clone https://github.com/Simponic/chessh
+cd chessh
+
+cp .env.example .env
+chmod 0700 .env
+
+# In one shell (after filling in your .env), start CheSSH
+export $(cat .env | xargs)
+mix ecto.create
+mix ecto.migrate
+iex -S mix
+
+# In another shell, start the frontend
+export $(cat .env | xargs)
+cd front
+npm install
+npm start
+```
+
+## Architecture
+The process of building the pi cluster is wholly contained in the awful
+`buildscripts`, which will individually `ssh` into separate pi's and build the
+services locally there as well as update the load balancer pi's configurations for nginx
+and HAproxy.
+
+More architecture talk of CheSSH can be found in my (albeit kinda cringe) FSLC
+presentation on Elixir:
+[https://github.com/Simponic/chessh/blob/main/presentation/chessh.org](https://github.com/Simponic/chessh/blob/main/presentation/chessh.org)
+
+
+## Environment Variables (mostly optional)
++ `REACT_APP_DISCORD_INVITE` is the invite link to the discord server with the
+ CheSSH bot
++ `REACT_APP_DISCORD_OAUTH` is the link (after replacing the GET URL params) that will
+ be used to initiate discord OAUTH from the frontend
++ `CLIENT_REDIRECT_AFTER_OAUTH` & `SERVER_REDIRECT_URI` are self-explanatory
++ `REACT_APP_SSH_SERVER` and `REACT_APP_SSH_PORT` are used to build the .ssh config
+ given to users on the home page of CheSSH after authentication
++ `NEW_GAME_PINGABLE_ROLE_ID` is the role id of the role to ping when one is
+ looking for an opponent
++ `REMIND_MOVE_CHANNEL_ID` is the channel id to create private threads with players
+ for move reminders and other communications
++ `NEW_GAME_CHANNEL_ID` is similar to the above
diff --git a/buildscripts/build/build_server.sh b/buildscripts/build/build_server.sh
index 57a3a1c..5a1a5b7 100755
--- a/buildscripts/build/build_server.sh
+++ b/buildscripts/build/build_server.sh
@@ -37,5 +37,4 @@ cd $HOME
sudo mv chessh.service /etc/systemd/system/chessh.service
sudo systemctl daemon-reload
sudo systemctl enable chessh
-sudo systemctl stop chessh
-sudo systemctl start chessh
+sudo systemctl restart chessh
diff --git a/presentation/chessh.org b/presentation/chessh.org
index ff13cfd..f425f3c 100644
--- a/presentation/chessh.org
+++ b/presentation/chessh.org
@@ -5,6 +5,8 @@
* Reminder: linux.usu.edu
This meeting should be being streamed live at [[https://linux.usu.edu/streams]].
+(UPDATE: It is now archived at [[https://linux.usu.edu/stream/12]])
+
* Introduction
#+BEGIN_SRC elixir
defmodule Hello do