aboutsummaryrefslogtreecommitdiff
path: root/README.md
diff options
context:
space:
mode:
authorSimponic <elizabeth.hunt@simponic.xyz>2023-02-26 12:25:45 -0700
committerSimponic <elizabeth.hunt@simponic.xyz>2023-02-26 12:25:45 -0700
commita4ef0569210eb6239d284886564a29684f299d71 (patch)
treea9840b95b6fbaf8bbd6abb49ca8aa5e7aae7c244 /README.md
parentf671aa8da3e3e0bdda7bc5dfb53b3a79cebcdc17 (diff)
parent6bef6494c229759f7fd6852b7b94901ee2b242a1 (diff)
downloadchessh-a4ef0569210eb6239d284886564a29684f299d71.tar.gz
chessh-a4ef0569210eb6239d284886564a29684f299d71.zip
Merge branch 'main' of github.com:Simponic/chessh
Diffstat (limited to 'README.md')
-rw-r--r--README.md64
1 files changed, 62 insertions, 2 deletions
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