Installation

Wenn Sie AaaS-API ausprobieren möchten, verwenden Sie bestenfalls die sich in der README.md befindliche Installationsanleitung aus unserem öffentlich zugänglichen Github Repositorium. Der Vollständigkeit halber bieten wir Ihnen aber auch hier eine Anleitung zur Installation unserer Applikation an.

Wir stellen Ihnen Konfigurationsdateien für Docker Compose zur Verfügung, mit denen Sie AaaS-API isoliert vom Rest Ihres Systems betreiben können. Wenn Sie zur Orchestrierung der für unsere Anwendung benötigten Dienste keine Containervirtualisierung mittels Docker verwenden wollen, sondern zur Ausführung stattdessen eine virtuelle Maschine wie Vagrant bevorzugen oder wenn Sie unsere Applikation nativ auf einem Ihrer Rechner betreiben möchten, dann muss Ihr System eine Reihe an Anforderungen erfüllen.

Anforderungen

  • Anwendungsserver: PHP in der Version >= 7.2.5.
  • Webserver: Wir empfehlen nginx und liefern eine Konfigurationsdatei für PHP-FPM.
  • Datenbankserver: Wir empfehlen MariaDB in der Version >= 10.2.7. Sie können auch MySQL in der Version >= 5.7.8 benutzen.
  • Cacheserver: Redis.
  • Composer zur Verwaltung von Drittanbieterabhängigkeiten.
  • OpenSSL zur Erzeugung kryptografischer Schlüssel.
  • Git als Versionsverwaltungssystem. (Optional)

Unsere Konfigurationsdateien zur Dienstekomposition mit Docker decken alle Anforderungen an das Endsystem ab. Wir empfehlen dementsprechend sowohl für ihre Entwicklungs- als auch für Ihre Produktivumgebung die Verwendung von Docker. Zur Verwaltung Ihrer Docker-Umgebungen empfehlen wir Portainer oder Rancher.

Installationsanleitung

Falls Sie Git installiert haben, klonen Sie bitte das Projekt in einen Ordner Ihrer Wahl. Als Alternative dazu können Sie auch eine aktuelle Version komprimiert herunterladen und entpacken:

$ git clone git@github.com:christiansiewert/aaas-api.git <DIRECTORY>
$ cd <DIRECTORY>

Hinweis

Wenn Sie, wie von uns empfohlen, Docker Compose benutzen, dann müssen Sie jetzt docker-compose up ausführen, um die einzelnen Dienste, wie den Anwendungsserver oder den Webserver, zu starten. Außerdem müssen Sie allen folgenden Kommandos docker-compose exec php voranstellen, um das Kommando auf dem entsprechenden PHP-Container Ihrer Docker-Umgebung auszuführen. Sie können als Alternative dazu auch docker-compose exec php /bin/bash ausführen, um eine Linux-Shell auf dem PHP-Container zu starten.

Sie installieren anschließend bitte die Drittanbieterabhängigkeiten:

$ composer install

Wenn Composer mit einem Out of memory-Fehler abbricht, deaktivieren Sie bitte die Speicherbegrenzung von Composer:

$ COMPOSER_MEMORY_LIMIT=-1 composer install

Sie erzeugen bitte ein RSA-Schlüsselpaar zur späteren Verifizierung von JWT-Access-Tokens. Bei der Erzeugung werden Sie nach einer Passphrase gefragt, welche Sie bitte anschließend als Umgebungsvariable in der Datei .env unterhalb des Wurzelverzeichnisses eintragen. Der Name der Umgebungsvariable lautet JWT_PASSPHRASE und ist standardmäßig auf app! gesetzt:

$ openssl genrsa -out config/jwt/private.pem -aes256 4096
$ openssl rsa -pubout -in config/jwt/private.pem -out config/jwt/public.pem

Sie finden innerhalb der .env-Datei außerdem noch die Umgebungsvariablen DATABASE_USER, DATABASE_PASSWORD und DATABASE_NAME. Hier tragen Sie bitte die entsprechenden Informationen ein, damit unsere Anwendung auf Ihr Datenbanksystem zugreifen kann. Schlussendlich migrieren Sie bitte Ihre leere Datenbank auf den Ausgangszustand unserer Applikation:

$ php bin/console doctrine:migrations:migrate --no-interaction

Sie sollten nun einen Administrator-Account erstellen, über den Sie später HTTP-Anfragen an unsere Ressourcen absetzen und damit Ihre API erstellen können:

$ php bin/console acl:create-user EMAIL PASSWORD --admin

Nachdem Sie das getan haben, können Sie testweise einen JWT-Zugriffstoken vom Server beziehen:

curl -X POST -H "Content-Type: application/json" http://localhost/auth/login_check \
-d '{ "email" : "EMAIL", "password" : "PASSWORD" }'

Wenn Ihre Zugangsdaten korrekt sind, dann sollte der Server mit einem entsprechenden Token antworten:

{
    "token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiJ9.eyJpYXQiOcm9sZXMiOlsiUk9MRV9..."
}

Sie haben AaaS-API damit erfolgreich installiert und können unsere Anwendung nun benutzen.