## Run dev-server with poetry
To make a development server run on localhost:
```python3
export FLASK_APP=stechuhr_server/server.py
export FLASK_ENV=development
poetry run flask run --cert=adhoc
```

## Run with python3-ven in production

Make sure `python3-venv` is installed:

```bash
sudo apt install python3-venv
```

Then clone the repo and enter it:

```bash
git clone ssh://git@code.hfbk.net:4242/pandemic_response/stechuhr-server.git
cd stechuhr-server
```

Create a new venv environment, activate it, install the reuqirements from requirements.txt and start the server
```
python3 -m venv env
source env/bin/activate
pip3 install -r requirements.txt
python3 stechuhr_server/server.py
```

Check the output to find the config directory. You might want to run it as a different user tho.

There is also a systemctl unit file that you probably need to change to your needs

In production it makes sense to run stechuhr with gunicorn:

```bash
source env/bin/activate
gunicorn stechuhr_server.server:app
```

# Configuration

## ID verification

in `config.toml` you can add a list of regex patterns that stechuhr (*both on server and on client!*) uses to verify the Card IDs. These two patterns for example allow upper/lowercase hex strings with lengths either between 6 and 16 characters OR exactly 24 characters:

```toml
id_patterns = [
    "^[A-Fa-f0-9]{24}$",
    "^[A-Fa-f0-9]{6,16}$",
]
```

If in doubt consider [testing your regexes here](https://regexplained.com/)