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
Dockerfilebestanden. - 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
stdoutgeschreven 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
Nonekiezen 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:
- 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
- Gedeeltelijk op basis van images die met
Dockerfilebestanden uit code zijn gegenereerd en met HTTP
docker-compose -f docker-compose-project.yaml -f docker-compose.development-http.yaml up -d
- Gedeeltelijk op basis van images die met
Dockerfilebestanden 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
mastertenant als demaintenant, 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