Docker
Deploy FoxIDs i Docker Desktop på en dev eller test maskin.
Detta är en beskrivning av hur du gör en standard deployment och loggar in för första gången.
En FoxIDs installation är självständig, har få externa dependencies och kan uppnå mycket hög upptid med liten insats.
FoxIDs uppdateras genom att uppdatera de två Docker images www.foxids.com/foxids:x.x.x och www.foxids.com/foxidscontrol:x.x.x
till en ny version. Nya FoxIDs releases är backward compatible. Granska release notes innan du uppdaterar. Där hittar du även den aktuella Docker image versionen.
En giltig licens krävs för att få tillgång till FoxIDs releases. Där kan du generera en secret för att autentisera mot Docker image registret på www.foxids.com, som använder Basic authentication.
Förutsättningar:
- Du har Docker Desktop installerat.
- Du har grundläggande kunskap om Docker.
Detta är en lista med nyttiga kommandon i slutet av denna beskrivning.
Denna deployment inkluderar:
- Två webbplatser en för FoxIDs och en för FoxIDs Control (the admin Client och API) i två Docker images
www.foxids.com/foxids:x.x.xochwww.foxids.com/foxidscontrol:x.x.x. - De två webbplatserna exponeras på två olika portar.
- MongoDB är en NoSQL databas och innehåller all data inklusive tenants, miljöer och användare. Deployad med det officiella MongoDB Docker image.
- Redis cache håller sekvenser (t.ex. login och logout), data cache för att förbättra performance och räknare för att säkra autentisering mot olika attacker. Deployad med det officiella Redis Docker image.
- Loggar skrivs till
stdoutdär Docker kan plocka upp dem.
Använd valfritt PostgreSQL istället för MongoDB och valfritt ingen Redis och spara cache data i databasen (MongoDB eller PostgreSQL). Utan Redis cache måste du välja
Nonesom data cache.
Deployment
Deploymenten utförs i den beskrivna ordningen.
Förbered
Ladda ner Docker yaml konfigurationsfiler här och placera dem i en mapp på din dator, t.ex. C:\FoxIDs\Docker.
Öppna en konsol och navigera till mappen Docker.
Volume
docker-compose-image.yaml definierar ett MongoDB-volume med namnet foxids-data.
Som standard skapar och hanterar Docker Compose volymen åt dig.
Om du vill spara MongoDB-data på Windows-värdens filsystem, skapa först värdmappen, t.ex. C:\data\foxids-data, och skapa sedan en extern Docker-volym:
docker volume create --driver local --opt type=none --opt device=C:\data\foxids-data --opt o=bind foxids-data
Ta sedan bort kommentaren från external: true under volumes: foxids-data: i docker-compose-image.yaml, så att Docker Compose använder den externa volymen.
Deploy containrar
De två FoxIDs webbplatserna konfigureras med Docker images. Och valfritt konfigurerade att endast använda HTTP eller både HTTP/HTTPS med ett development certifikat. De officiella MongoDB och Redis images hämtas från Docker Hub.
Pull secret och Docker setup Ange användarnamnet som ditt kund-ID och lösenordet som din pull secret för FoxIDs Docker registret, och autentisera sedan Docker.
docker login www.foxids.com --username <customer-id> --password <pull-secret>
Uppdatera 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
Välj version från FoxIDs releases, och hämta sedan images:
docker compose -f docker-compose-image.yaml pull
Email provider Du kan valfritt konfigurera en global email provider eller senare konfigurera email providers per miljö. FoxIDs stödjer att skicka e-post med SendGrid och SMTP.
Den globala email providern konfigureras i docker-compose-image.yaml filen på foxids tjänsten i environment: sektionen.
Detta exempel visar hur du lägger till Outlook / Microsoft 365 med SMTP:
- 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 Skapa deploymenten med Docker images och HTTP:
- Baserat på Docker images och med HTTP
docker compose -f docker-compose-image.yaml -f docker-compose.development-http.yaml up -d
- Baserat på Docker images och med HTTP/HTTPS - kräver ett exporterat utvecklingscertifikat.
HTTPS compose-filen mappar %APPDATA%\ASP.NET\Https på Windows-värden till /home/app/.aspnet/https i containrarna och konfigurerar Kestrel för att läsa in dev_cert.pfx.
Skapa mappen och exportera .NET-utvecklingscertifikatet innan deploymenten startas:
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"
Lösenordet måste matcha ASPNETCORE_Kestrel__Certificates__Default__Password i docker-compose.development-https.yaml.
docker compose -f docker-compose-image.yaml -f docker-compose.development-https.yaml up -d
Första login
Öppna din FoxIDs Control site (http://localhost:8801 eller https://localhost:8401) i en browser.
Den ska omdirigera till FoxIDs site där du loggar in med standard admin användaren admin@foxids.com och lösenordet FirstAccess! (du måste byta lösenord vid första login).
Du omdirigeras sedan tillbaka till FoxIDs Control site i master tenant. Du kan lägga till fler admin användare i master tenant.
Klicka sedan på main tenant och autentisera igen med samma standard admin användare admin@foxids.com och lösenordet FirstAccess! (även här måste du byta lösenord).
Standard admin användare och lösenord är samma för både
mastertenant ochmaintenant, men det är två olika användare.
Du är nu inloggad på main tenant och kan börja konfigurera dina applikationer och autentiseringsmetoder.
Nyttiga kommandon
Detta är en lista med kommandon som kan vara användbara under deployment för att se detaljer och göra deployment ändringar.
Stoppa deployment
docker compose -f docker-compose-image.yaml -f docker-compose.development-http.yaml down
# eller
docker compose -f docker-compose-image.yaml -f docker-compose.development-https.yaml down
Stoppa container
docker stop xxx
Ta bort container
docker rm xxx
Ta bort image
docker rmi xxx
Lista volumes
docker volume ls
Ta bort volume
docker volume rm xxx
Ta bort alla oanvända volumes
docker volume prune
Visa logs i container
docker logs xxx