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 www.foxids.com/foxids:x.x.x en www.foxids.com/foxidscontrol:x.x.x
naar een nieuwe versie te updaten. Nieuwe FoxIDs releases zijn backward compatible. Bekijk de release notes voordat je update. Daar vind je ook de huidige Docker image versie.
Een geldige licentie is vereist om toegang te krijgen tot de FoxIDs releases. Van daaruit kun je een secret genereren om te authenticeren bij het Docker image register op www.foxids.com, dat Basic authentication gebruikt.
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 (the admin Client en API) in twee Docker images
www.foxids.com/foxids:x.x.xenwww.foxids.com/foxidscontrol:x.x.x. - 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
Download de Docker yaml configuratiebestanden hier en plaats ze in een map op je machine, bijvoorbeeld C:\FoxIDs\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 de Docker images. 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.
Pull secret en Docker setup
Stel de gebruikersnaam in op je klant-ID en het wachtwoord op je pull secret voor het FoxIDs Docker register, en authenticeer daarna Docker.
docker login www.foxids.com --username <customer-id> --password <pull-secret>
Update C:\src\GitHub\FoxIDs.Assets\Docker\docker-compose-image.yaml:
services:
foxids:
image: www.foxids.com/foxids:x.x.x
foxids-control:
image: www.foxids.com/foxidscontrol:x.x.x
Kies de versie in FoxIDs releases en pull daarna de images:
docker-compose -f docker-compose-image.yaml pull
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 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 Docker images en HTTP:
- Op basis van Docker images en met HTTP
docker-compose -f docker-compose-image.yaml -f docker-compose.development-http.yaml up -d
- Op basis van Docker images en met HTTP/HTTPS - vereist dat het development-certificaat aanwezig is.
docker-compose -f docker-compose-image.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-image.yaml -f docker-compose.development-https.yaml down
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