Docker

Deploy FoxIDs in Docker Desktop op een dev of test machine.

Dit is een beschrijving van hoe je een standaard deployment uitvoert en voor het eerst inlogt.

Een FoxIDs installatie is als een bucket, er zijn geen externe dependencies en het is eenvoudig om met weinig moeite een zeer hoge uptime te bereiken. FoxIDs wordt geüpdatet door de twee Docker images foxids/foxids en foxids/foxids-control naar een nieuwe versie te updaten. Nieuwe FoxIDs releases zijn backwards compatible, raadpleeg de release notes voordat je update.

Voorwaarden:

  • Je hebt Docker Desktop geïnstalleerd.
  • Je hebt basiskennis van Docker.

Dit is een lijst met handige commando's aan het einde van deze beschrijving.

Deze deployment omvat:

  • Twee websites: één voor FoxIDs en één voor FoxIDs Control (Client en API) in twee Docker images foxids/foxids en foxids/foxids-control of gegenereerd uit code met Dockerfile bestanden.
  • De twee websites worden op twee verschillende poorten blootgesteld.
  • MongoDB is een NoSQL database en bevat alle data inclusief tenants, omgevingen en gebruikers. Gedeployed met het officiële MongoDB Docker image.
  • Redis cache bevat sequenties (bijv. login en logout), data cache om performance te verbeteren en counters om authenticatie te beveiligen tegen verschillende aanvallen. Gedeployed met het officiële Redis Docker image.
  • Logs worden naar stdout geschreven waar Docker ze kan oppakken.

Gebruik optioneel PostgreSql in plaats van MongoDB en optioneel geen Redis en sla cache data op in de database (MongoDB of PostgreSql). Zonder Redis cache moet je None kiezen als data cache.

Deployment

De deployment wordt in de beschreven volgorde uitgevoerd.

Voorbereiden

Clone de git repository of download als ZIP. De Docker yaml configuratiebestanden staan in de map ./Docker.
Open een console en navigeer naar de map ./Docker.

Volume

Je hebt een volume nodig voor MongoDB met de naam foxids-data waar data wordt opgeslagen.

Maak óf een volume voor MongoDB op je Windows host file system, bijv. in de map C:\data\foxids-data. Belangrijk: maak de mappen aan voordat je het commando uitvoert.

docker volume create --driver local --opt type=none --opt device=C:\data\foxids-data --opt o=bind foxids-data

OF maak een volume voor MongoDB dat door Docker wordt beheerd.

docker volume create foxids-data

Containers deployen

De twee FoxIDs websites worden geconfigureerd met images van Docker Hub of images die uit code met Dockerfile bestanden zijn gegenereerd. En optioneel geconfigureerd om alleen HTTP of zowel HTTP/HTTPS met een development certificaat te gebruiken.
De officiële MongoDB en Redis images worden van Docker Hub gepulld.

Email provider
Je kunt optioneel een globale email provider configureren of later per omgeving email providers configureren. FoxIDs ondersteunt het verzenden van e-mails met SendGrid en SMTP.

De globale email provider wordt geconfigureerd in het docker-compose-image.yaml of docker-compose-project.yaml bestand in de foxids service in de environment: sectie.
Dit voorbeeld laat zien hoe je Outlook / Microsoft 365 met SMTP toevoegt:

- name: "Settings__Smtp__FromEmail"
    value: "my@email-address.org"
- name: "Settings__Smtp__FromName" # Optionele afzendernaam geassocieerd met het e-mailadres 
    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"

Deploy
Maak de deployment met één van de drie volgende opties:

  1. Alles op basis van images van Docker Hub en met HTTP
docker-compose -f docker-compose-image.yaml -f docker-compose.development-http.yaml up -d
  1. Gedeeltelijk op basis van images die met Dockerfile bestanden uit code zijn gegenereerd en met HTTP
docker-compose -f docker-compose-project.yaml -f docker-compose.development-http.yaml up -d
  1. Gedeeltelijk op basis van images die met Dockerfile bestanden uit code zijn gegenereerd en met HTTP/HTTPS - vereist dat het development certificaat aanwezig is.
docker-compose -f docker-compose-project.yaml -f docker-compose.development-https.yaml up -d

First login

Open je FoxIDs Control site (http://localhost:8801 of https://localhost:8401) in een browser. Deze zou moeten doorsturen naar de FoxIDs site waar je inlogt met de standaard admin gebruiker admin@foxids.com en wachtwoord FirstAccess! (je moet het wachtwoord wijzigen bij de eerste login).
Je wordt daarna teruggeleid naar de FoxIDs Control site in de master tenant. Je kunt meer admin users toevoegen in de master tenant.

Klik vervolgens op de main tenant en authenticeer opnieuw met dezelfde standaard admin gebruiker admin@foxids.com en wachtwoord FirstAccess! (ook hier moet je het wachtwoord wijzigen).

De standaard admin gebruiker en het wachtwoord zijn hetzelfde voor zowel de master tenant als de main tenant, maar het zijn twee verschillende gebruikers.

Je bent nu ingelogd op de main tenant en kunt starten met het configureren van je applicaties en authenticatiemethoden.

Handige commando's

Dit is een lijst met commando's die handig kunnen zijn tijdens de deployment om details te bekijken en wijzigingen door te voeren.

Deployment stoppen

docker-compose -f docker-compose-image.yaml -f docker-compose.development-http.yaml down
# of
docker-compose -f docker-compose-project.yaml -f docker-compose.development-http.yaml down
# of
docker-compose -f docker-compose-project.yaml -f docker-compose.development-https.yaml down

Image bouwen met Dockerfile bestand

docker build -f ./src/foxids/Dockerfile . -t foxids:x.x.x    # x.x.x is de versie
# of
docker build -f ./src/foxids.control/Dockerfile . -t foxids-control:x.x.x    # x.x.x is de versie

Container stoppen

docker stop xxx

Container verwijderen

docker rm xxx

Image verwijderen

docker rmi xxx

Volumes tonen

docker volume ls

Volume verwijderen

docker volume rm xxx

Alle ongebruikte volumes verwijderen

docker volume prune

Logs in container tonen

Docker logs xxx

Uw privacy

We gebruiken cookies om uw ervaring op onze websites te verbeteren. Klik op de knop 'Alle cookies accepteren' om akkoord te gaan met het gebruik van cookies. Om niet-noodzakelijke cookies te weigeren, klikt u op 'Alleen noodzakelijke cookies'.

Bezoek onze privacyverklaring voor meer informatie