- The dotnet core runtime (currently built against v2.2)
- Access to a redis server to track the state of the application. It's suggested that you install/run redis via docker
- install dotnet core minimum version 2.2
- (optional) install FAKE build tool as a global tool
dotnet tool install fake-cli -g
- (optional) install Paket as a global tool
dotnet tool install paket -g
- The Yarn package manager (you an also use
npm
but the usage ofyarn
is encouraged). - Node LTS installed for the front end components.
- If you're running on OSX or Linux, you'll also need to install Mono.
Fake and Paket must be availble on your path to build the server. If you don't install them as global tools you'll need them in your environment.
To concurrently run the server and the client components in watch mode use the following command:
fake build -t Run
You can use the included Dockerfile
and build.fsx
script to deploy your application as Docker container. You can find more regarding this topic in the official template documentation.
When you run the application by default it's expecting an unauthenticated redis instance running on localhost on the default redis port. You can override this settings and provide your own connection string to a redis server by setting the REDIS_SERVER environment variable to a valid redis connection string. The server will crash on startup if it is unable to connect to redis.
- fake not found - If you fail to execute
fake
from command line after installing it as a global tool, you might need to add it to yourPATH
manually: (e.g.export PATH="$HOME/.dotnet/tools:$PATH"
on unix) - related GitHub issue
A partially client library is provided for python in the clientlib/python
directory. This library targets python 3.x.x To build the client library:
- Install pipenv
- Build an environment using the included pipfile
- In a pipenv shell run
python setup.py -sdist
to build a source distribution
Optionally you may want to run the server on a server to allow other players to play.
The terraform
directory includes a generic terraform install which can deploy the application to AWS (Amazon Web Services). It could also serve as a base to deploy other cloud platforms like heroku, google cloud, or azure.
- Install terraform
- Build the application into a docker container and upload it to an ECR repository in amazon (or other docker host)
- Navgiate to the terraform directory in the console of your choice
- Modify the "aws_ecr_repository" and "cheat_image" sections of ecs.tf to match your setup.
- Run
terraform apply
on the command line. This assumes the command line is setup properly with AWS keys and terraform is available on your path.
This server should be considered in an alpha state. There are significant open issues. It was setup to be run in an insecure environment and would need to be significantly hardened before being run in any public facing environment. Pull requests are welcome.