Name | Nickname | GitHub Nick | Rolle |
---|---|---|---|
Mathis | Block | vMysterion | Teamleitung |
Timo | Kohlmeier | Wambo04 | Entwickler |
Lukas | Hitzemann | Batschko | Entwickler |
Anestis Lalidis | Mateo | Nesti024 | Entwickler |
Sebastian | Steinmeyer | CrappyAlgorithm | Entwickler |
Julian | Wasilewski | JulianWasilewski | Entwickler |
- Über pip die requirements.txt als Quelle nutzen, um die Abhängigkeiten zu installieren
$ pip install -r requirements.txt
- MariaDB 10.x installieren -- zur besseren Kompatibilität bitte Nutzer="backend" und Passwort="softwareprojekt2020" erstellen -- bei abweichenden Daten muss dies in der backend_config.ini angepasst werden (bitte nicht commiten!)
- Projekt clonen
- Projektordner in der Konsole öffnen
- Falls nicht vorhanden virtualenv installieren (wird ergänzt falls nötig)
- Virtual Environment anlegen
- Linux:
$ python3 -m venv venv
- Windows:
$ python -m venv venv
- Virtual Enviroment starten
- Linux:
$ source venv/bin/activate
- Windows:
$ .\venv\Scripts\activate.bat
- Nun sollte vor dem Komandozeilenpromt (venv) erscheinen
- Installieren der notwendigen Pakete
- Linux:
$ pip3 install -r requirements.txt
- Windows:
$ pip install -r requirements.txt
- In der Konsole ins Hauptverzeichnis des Projekts wechseln
- Virtual Enviroment starten
- Linux:
$ $ source venv/bin/activate
- Windows:
$ .\venv\Scripts\activate.bat
- Setzen von 2 Enviroment Variablen
- Linux:
$ export FLASK_APP=backend $ export FLASK_ENV=development
- Windows:
$ set FLASK_APP=backend $ set FLASK_ENV=development
- Nun kann die Anwendung wie folgt genutzt werden
$ flask <Befehl>
Befehl | Beschreibung |
---|---|
run | startet das Backend |
init-db | initialisiert bzw bereinigt die Datenbank |
Parameter | Beschreibung |
---|---|
-h host-ip :text | Angabe der Socket-IP. Mögliche externe IP's können mit ifconfig eingesehen werden. |
-p port :integer | Angabe des Socket-Port. |
Der Zugriff ist nur mittels Schlüssel basierter Authentifikation möglich. Wer Zugriff haben möchte kann mir seinen öffentlichen Schlüssel schicken. Bei Fragen bitte an CrappyAlgorithm (Sebastian Steinmeyer) wenden.
- falls nicht vorhanden SSH Client installieren (für Windows z.B. Putty) Verbindungsdaten:
IP: 84.118.2.15
Port: 222
User: pi
Der Zugriff auf die Datenbank ist per SSH-Tunnel möglich. Im folgenden wird die Einrichtung unter DBeaver beschrieben, da dies für alle gängigen Betriebssystemen vorhanden ist.
- Auf den Stecker mit dem grünen Plus klicken, um eine neue Datenbankverbindung einzurichten
Unter "Einstellungen" müssen die Daten für den SSH Zugriff eingetragen werden. Das hier angegebene Passwort, ist das dem Schlüssel zugehörige.
Unter "Erweitert" wird der SSH Tunnel eingerichtet. Die Angaben für "Remote-Host/-Port" bitte nicht verändern. Die Angaben für "Localer-Port" müssen angepasst werden, wenn bereit eine Datenbank bzw. eine andere Anwendung den Port verwendet.
Nun kann "Tunnelkonfiguration testen" verwendet werden, um die erfolgreiche Einrichtung zu validieren.
Unter Server werden nun die Daten für den Lokalen-Host/-Port aus der Einrichtung des SSH Tunnels verwendet. Das Feld Datenbank kann genutzt werden, um sich nur mit einer Spezifischen Datenbank (Schema) zu verbinden. Unter Authentifizierung müssen die localen Nutzerdaten für den Datenbankzugriff auf dem Raspberry verwendet werden. Diese Daten können bei CrappyAlgorithm (Sebastian Steinmeyer) erfragt werden.
Anschließend können wir über "Verbindung testen" die erfolgreiche Einrichtung der Verbindung validieren und bei Erfolg die Einrichtung mit "OK" abschließen.
Ein Neustart ist nur notwendig, um eine neue Version zu deployen oder die Datenbank neu zu initialisieren.
Das Backend ist unter folgenden Verbindungsdaten erreichbar:
IP: 84.118.2.15
Port: 80
- gunicorn beenden
$ sudo systemctl stop backend
- neue Backend Version pullen
$ cd ~/Backend/
$ git stash // um die Modifikationen zurückzusetzen
$ git pull
- Konfiguration wiederherstellen
$ cp ~/backend_configs/backend_config.ini ~/Backend/backend_config.ini
- den Secret Key unter ~/backend_configs/secret_key in der Datei ~/Backend/backend/init.py setzen
- falls gewünscht kann die Datenbank neu initialisiert werden
$ cd ~/Backend
export FLASK_APP=backend
flask init-db
- Server starten
$ sudo sytemctl start backend
- Die Schlüssel sind in der Datei "/home/pi/backend_configs/nohup.out"zu finden
- Zum testen vor einem PR bitte mit:
- Linux:
$ ./CI.sh
- Windows:
prüfen ob keine Fehler mehr da sind.$ CI.bat
$ pytest -v
siehe hier