Skip to content

Whist-Team/Whist-Server

Repository files navigation

codecov security: bandit PyPI PyPI - Python Version PyPI - Wheel GitHub repo size Lines of code PyPI - Downloads PyPI - License

Whist-Server

This is the REST API server of a Whist game. It provides user management, session organization and a convenient interface for the rules' implementation of Whist-Core.

Development

Setup

You need Poetry for development.

# Create venv and install deps
poetry install

The Python virtual environment will be created in the .venv directory.

Run tests/lint

# Run tests (in venv)
python -m pytest # or pylint...
# OR
poetry run python -m pytest

Build

Generates sdist and bdist_wheel.

poetry build

Publish

You need the environment variable POETRY_PYPI_TOKEN_PYPI filled with a PyPI token.

poetry build
poetry publish
# OR
poetry publish --build

Run

In order to use GitHub SSO you need to set two environment variables. At the moment they are mandatory.

GITHUB_CLIENT_ID # This is the GitHub Identifier
GITHUB_CLIENT_SECRET # During creation this secret is generated.
GITHUB_REDIRECT_URL=http://HOST:PORT/oauth2/github/ # Only required for Browser Application with the ability to redirect.

Splunk

If you want to use Splunk you require an environment variable with the authentication token: SPLUNK_TOKEN and you have to start the server with optional arguments --splunk_host and --splunk-port.

Splunk support is currently disabled.


In order to run the application it must be started like this:

python -m whist_server --reload --admin_name=root --admin_pwd=password 0.0.0.0 8080

⚠️ A mongodb instance is required to run before launching the Whist-Server.