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 zelfstandig, heeft weinig externe dependencies en kan met weinig moeite een zeer hoge uptime 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

Het bestand docker-compose-image.yaml definieert een MongoDB-volume met de naam foxids-data.

Standaard maakt en beheert Docker Compose het volume voor je.

Als je MongoDB-data op het Windows host file system wilt opslaan, maak dan eerst de hostmap, bijvoorbeeld C:\data\foxids-data, en maak daarna een extern Docker-volume:

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

Haal daarna het commentaar weg bij external: true onder volumes: foxids-data: in docker-compose-image.yaml, zodat Docker Compose het externe volume gebruikt.

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. Je kunt ook sms-providers globaal of per omgeving configureren.

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:

- Settings:Smtp:FromEmail=my@email-address.org
- Settings:Smtp:FromName=e.g., my company name
- Settings:Smtp:Host=smtp.office365.com
- Settings:Smtp:Port=587
- Settings:Smtp:Username=my@email-address.com
- Settings:Smtp:Password=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 een geëxporteerd development-certificaat.

Het HTTPS compose-bestand koppelt %APPDATA%\ASP.NET\Https op de Windows-host aan /home/app/.aspnet/https in de containers en configureert Kestrel om dev_cert.pfx te laden. Maak de map en exporteer het .NET development-certificaat voordat u de deployment start:

if not exist "%APPDATA%\ASP.NET\Https" mkdir "%APPDATA%\ASP.NET\Https"
dotnet dev-certs https --trust
dotnet dev-certs https --export-path "%APPDATA%\ASP.NET\Https\dev_cert.pfx" -p "foxids-dev-cert"

Het wachtwoord moet overeenkomen met ASPNETCORE_Kestrel__Certificates__Default__Password in docker-compose.development-https.yaml.

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

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