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.x en www.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 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

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:

  1. Op basis van Docker images en met HTTP
docker-compose -f docker-compose-image.yaml -f docker-compose.development-http.yaml up -d
  1. 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 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-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

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