### Web-server (Philipp Horstenkamp) Der Webserver benötigt das Extra `web-server` um alle Abhängigkeiten sauber zu installieren. Unser Webserver ist ein [`Dash`](https://dash.plotly.com/) Webserver welcher auf [`Flask`](https://dash.plotly.com/) aufbaut und nicht über `Gunicorn` gestartet wird. Zusätzlich wurden die Pakete `dash-bootstrap-components` und `dash-daq` für mehr Virtualisierungskomponenten verwendet. `dash-auth`-ermöglicht die Nutzung von Basic Auth. Zudem wurde `flask-compress` genutzt um große Antworten als gzip an den Browser zu Schicken und so Traffic zu reduzieren. Um Antwortzeiten zu reduzieren wurden Antworten und Zwischenergebnisse mit `cachetools`-Decorator gecacht. #### Einstallungen Nachfolgend eine Tabelle der möglichen Einstellungen über Umgebungsvariablen. Natürlich kann auch hier eine wie in der [README.md](../../../../README.md) gezeigt eine `*.json` verwendet werden, um die Datenbankverbindung zu definieren. | Wert | Default | Compose-Defaults | Erklärung | |:--------------------------:|:-------:|:---------------------:|---------------------------------------------------------------------------------------| | HTTP_PORT | 80 | *Fehler* | Der Port auf dem die Applikation gestartet werden soll. | | DASH_URL_BASE_PATHNAME | / | /transparenzregister/ | Der Basispfad auf dem HTTP-Requests empfangen werden. | | PYTHON_DASH_LOGIN_USERNAME | | | Ein HTTP-Basic-Auth Username, kein Passwortschutz wenn leer. | | PYTHON_DASH_LOGIN_PW | | | Ein HTTP-Basic-Auth Password, kein Passwortschutz wenn leer. | | PYTHON_POSTGRES_USERNAME | | postgres | Ein Nutzername für Zugriff auf die Production DB (Postgres) | | PYTHON_POSTGRES_PASSWORD | | *Fehler* | Ein Passwort für Zugriff auf die Production DB (Postgres) | | PYTHON_POSTGRES_HOST | | postgres | Der Host auf dem die Production DB (Postgres) erreichbar ist. | | PYTHON_POSTGRES_DATABASE | | db | Der Name der Production DB (Postgres). | | PYTHON_POSTGRES_PORT | | 5432 | Der Port auf dem auf die Production DB (Postgres) Zugegriffen werden kann. | | PYTHON_SQLITE_PATH | | | Ein Pfad um auf eine SQLLite Datenbank zuzugreifen. Überschreibt den Postgres Zugang. | | PYTHON_CACHE_TTL | 3600 | | Defines how long the ttl cache should save some calculation results. |