diff options
author | Lizzy Hunt <logan.hunt@usu.edu> | 2023-02-24 15:59:42 -0700 |
---|---|---|
committer | Lizzy Hunt <logan.hunt@usu.edu> | 2023-02-24 15:59:42 -0700 |
commit | ebafe04d354fbfe1ccf89faf495568aed6660c31 (patch) | |
tree | 5f5b24041dad5fb4dcb6bd7597642303090d81b7 /README.md | |
parent | 829deb33e3fbe70f407b482faf63338ee73d3f55 (diff) | |
download | chessh-ebafe04d354fbfe1ccf89faf495568aed6660c31.tar.gz chessh-ebafe04d354fbfe1ccf89faf495568aed6660c31.zip |
Better README
Diffstat (limited to 'README.md')
-rw-r--r-- | README.md | 61 |
1 files changed, 59 insertions, 2 deletions
@@ -1,5 +1,62 @@ # 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 a player's turn. -[https://linux.usu.edu/stream/12](https://linux.usu.edu/stream/12) +## Usage + +### Dependencies ++ `npm` ++ `elixir` ++ `postgresql` ++ `redis` (which you can ignore if you only use the ETS backend for Hammer for + `config/dev.exs`) + +### 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 +``` + +### 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 params) that will + be used to start 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 a player 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 + +## 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 as well as update the load balancer pi's configurations for nginx +and HAproxy. + +More brief architecture talk of CheSSH can be 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) |