Docker
Stellen Sie FoxIDs in Docker Desktop auf einer dev oder test Maschine bereit.
Dies ist eine Beschreibung, wie Sie eine Standard Bereitstellung durchführen und sich erstmals anmelden.
Eine FoxIDs Installation ist wie ein Eimer, es gibt keine externen Abhängigkeiten und es ist einfach, mit wenig Aufwand eine sehr hohe Verfügbarkeit zu erreichen. FoxIDs werden aktualisiert, indem die beiden Docker Images foxids/foxids und foxids/foxids-control auf eine neue Version aktualisiert werden. Neue FoxIDs Releases sind abwärtskompatibel, konsultieren Sie bitte die release notes vor dem Update.
Voraussetzungen:
- Docker Desktop ist installiert.
- Grundkenntnisse in Docker.
Dies ist eine Liste nützlicher Befehle am Ende dieser Beschreibung.
Diese Bereitstellung umfasst:
- Zwei Websites, eine für FoxIDs und eine für FoxIDs Control (Client und API) in zwei Docker Images foxids/foxids und foxids/foxids-control oder aus Code mit
DockerfileDateien generiert. - Die beiden Websites werden auf zwei verschiedenen Ports bereitgestellt.
- MongoDB ist eine NoSQL Datenbank und enthält alle Daten einschließlich Tenants, Umgebungen und Benutzer. Bereitgestellt mit dem offiziellen MongoDB Docker Image.
- Redis cache hält Sequenzen (z. B. Login und Logout), Daten Cache zur Leistungsverbesserung und Zähler, um die Authentifizierung gegen verschiedene Angriffe zu schützen. Bereitgestellt mit dem offiziellen Redis Docker Image.
- Logs werden in
stdoutgeschrieben, wo sie von Docker aufgenommen werden können.
Optional verwenden Sie PostgreSql statt MongoDB und optional verzichten Sie auf Redis und speichern Cache Daten in der Datenbank (MongoDB oder PostgreSql). Ohne Redis cache müssen Sie
Noneals data cache auswählen.
Bereitstellung
Die Bereitstellung erfolgt in der beschriebenen Reihenfolge.
Vorbereitung
Klonen Sie das git repository oder laden Sie es als ZIP herunter. Die Docker yaml Konfigurationsdateien befinden sich im Ordner ./Docker.
Öffnen Sie eine Konsole und navigieren Sie zum Ordner ./Docker.
Volume
Sie benötigen ein Volume für MongoDB mit dem Namen foxids-data, in dem die Daten gespeichert werden.
Erstellen Sie entweder ein volume für MongoDB auf dem Windows Host Dateisystem z. B. im Ordner C:\data\foxids-data. Wichtig: Erstellen Sie die Ordner vor dem Ausführen des Befehls.
docker volume create --driver local --opt type=none --opt device=C:\data\foxids-data --opt o=bind foxids-data
ODER erstellen Sie ein volume für MongoDB, das von Docker verwaltet wird.
docker volume create foxids-data
Container bereitstellen
Die beiden FoxIDs Websites sind entweder mit Images von Docker Hub oder mit aus Code generierten Images über Dockerfile Dateien konfiguriert. Optional können sie so konfiguriert werden, dass sie nur HTTP oder sowohl HTTP/HTTPS mit einem Entwicklungszertifikat verwenden.
Die offiziellen MongoDB und Redis Images werden von Docker Hub gezogen.
E Mail Provider
Optional können Sie einen globalen E Mail Provider konfigurieren oder später E Mail Provider pro Umgebung konfigurieren. FoxIDs unterstützt das Senden von E Mails mit SendGrid und SMTP.
Der globale E Mail Provider wird in der Datei docker-compose-image.yaml oder docker-compose-project.yaml beim foxids Service im Abschnitt environment: konfiguriert.
Dieses Beispiel zeigt, wie Sie Outlook / Microsoft 365 mit SMTP hinzufügen:
- name: "Settings__Smtp__FromEmail"
value: "my@email-address.org"
- name: "Settings__Smtp__FromName" # Optionaler Absendername zur E Mail Adresse
value: "e.g, my company name"
- name: "Settings__Smtp__Host"
value: "smtp.office365.com"
- name: "Settings__Smtp__Port"
value: "587"
- name: "Settings__Smtp__Username"
value: "my@email-address.com"
- name: "Settings__Smtp__Password"
value: "xxxxxxx"
Bereitstellen
Erstellen Sie die Bereitstellung und wählen Sie eine der folgenden drei Möglichkeiten:
- Alles basiert auf Images von Docker Hub und mit HTTP
docker-compose -f docker-compose-image.yaml -f docker-compose.development-http.yaml up -d
- Teilweise auf Images aus Code mit
DockerfileDateien und mit HTTP
docker-compose -f docker-compose-project.yaml -f docker-compose.development-http.yaml up -d
- Teilweise auf Images aus Code mit
DockerfileDateien und mit HTTP/HTTPS - erfordert ein vorhandenes Entwicklungszertifikat.
docker-compose -f docker-compose-project.yaml -f docker-compose.development-https.yaml up -d
Erster Login
Öffnen Sie Ihre FoxIDs Control Site (http://localhost:8801 oder https://localhost:8401) in einem Browser.
Sie sollte zur FoxIDs Site weiterleiten, wo Sie sich mit dem Standard Admin Benutzer admin@foxids.com und dem Passwort FirstAccess! anmelden (Sie müssen das Passwort beim ersten Login ändern).
Sie werden dann zurück zur FoxIDs Control Site im master Tenant weitergeleitet. Sie können weitere Admin Benutzer im Master Tenant hinzufügen.
Klicken Sie anschließend auf den main Tenant und authentifizieren Sie sich erneut mit demselben Standard Admin Benutzer admin@foxids.com und dem Passwort FirstAccess! (auch hier müssen Sie das Passwort ändern).
Standard Admin Benutzer und Passwort sind für
masterTenant undmainTenant gleich, es handelt sich jedoch um zwei unterschiedliche Benutzer.
Sie sind jetzt im main Tenant angemeldet und können mit der Konfiguration Ihrer Anwendungen und Authentifizierungsmethoden beginnen.
Nützliche Befehle
Dies ist eine Liste von Befehlen, die während der Bereitstellung nützlich sein können, um Details anzusehen und Änderungen an der Bereitstellung vorzunehmen.
Bereitstellung beenden
docker-compose -f docker-compose-image.yaml -f docker-compose.development-http.yaml down
# or
docker-compose -f docker-compose-project.yaml -f docker-compose.development-http.yaml down
# or
docker-compose -f docker-compose-project.yaml -f docker-compose.development-https.yaml down
Image mit Dockerfile erstellen
docker build -f ./src/foxids/Dockerfile . -t foxids:x.x.x # x.x.x ist die Version
# or
docker build -f ./src/foxids.control/Dockerfile . -t foxids-control:x.x.x # x.x.x ist die Version
Container stoppen
docker stop xxx
Container entfernen
docker rm xxx
Image entfernen
docker rmi xxx
Volumes auflisten
docker volume ls
Volume entfernen
docker volume rm xxx
Alle ungenutzten Volumes entfernen
docker volume prune
Logs im Container anzeigen
Docker logs xxx