Docker
Deploy FoxIDs i Docker Desktop på en dev eller test maskine.
Dette er en beskrivelse af hvordan du laver en standard deployment og logger ind første gang.
En FoxIDs installation er som en bucket, der er ingen eksterne dependencies og det er let at opnå meget høj oppetid med lille indsats. FoxIDs opdateres ved at opdatere de to docker images foxids/foxids og foxids/foxids-control til en ny version. Nye FoxIDs releases er backwards compatible, se release notes før du opdaterer.
Forudsætninger:
- Du har Docker Desktop installeret.
- Du har grundlæggende viden om Docker.
Dette er en liste over nyttige kommandoer i slutningen af denne beskrivelse.
Denne deployment omfatter:
- To websites en til FoxIDs og en til FoxIDs Control (Client og API) i to docker images foxids/foxids og foxids/foxids-control eller genereret fra kode med
Dockerfilefiler. - De to websites eksponeres på to forskellige porte.
- MongoDB er en NoSQL database og indeholder alle data inklusiv tenants, miljøer og brugere. Deployet med det officielle MongoDB Docker image.
- Redis cache holder sekvenser (fx login og logout), data cache for at forbedre performance og tællere til at sikre autentifikation mod forskellige angreb. Deployet med det officielle Redis Docker image.
- Logs skrives til
stdouthvor Docker kan opsamle dem.
Brug valgfrit PostgreSql i stedet for MongoDB og valgfrit ingen Redis og gem cache data i databasen (MongoDB eller PostgreSql). Uden Redis cache skal du vælge
Nonesom data cache.
Deployment
Deploymenten udføres i den beskrevne rækkefølge.
Gør klar
Clone git repository eller download som ZIP. Docker yaml konfigurationsfilerne ligger i ./Docker mappen.
Åbn en console og navigér til ./Docker mappen.
Volume
Du skal bruge et volume til MongoDB med navnet foxids-data hvor data gemmes.
Opret enten et volume til MongoDB på dit Windows host file system fx i mappen C:\data\foxids-data. Vigtigt: opret mapperne før du kører kommandoen.
docker volume create --driver local --opt type=none --opt device=C:\data\foxids-data --opt o=bind foxids-data
ELLER opret et volume til MongoDB som administreres af Docker.
docker volume create foxids-data
Deploy containere
De to FoxIDs websites konfigureres med enten images fra Docker Hub eller images genereret fra kode med Dockerfile filer. Og valgfrit konfigureret til kun at bruge HTTP eller både HTTP/HTTPS med et development certifikat.
De officielle MongoDB og Redis images hentes fra Docker Hub.
Email provider
Du kan valgfrit konfigurere en global email provider eller senere konfigurere email providers per miljø. FoxIDs understøtter at sende e-mails med SendGrid og SMTP.
Den globale email provider konfigureres i docker-compose-image.yaml eller docker-compose-project.yaml filen på foxids servicen i environment: sektionen.
Dette eksempel viser hvordan du tilføjer Outlook / Microsoft 365 med SMTP:
- name: "Settings__Smtp__FromEmail"
value: "my@email-address.org"
- name: "Settings__Smtp__FromName" # Valgfrit afsendernavn knyttet til e-mailadressen
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
Opret deploymenten ved at vælge en af de tre følgende muligheder:
- Alt baseret på images fra Docker Hub og med HTTP
docker-compose -f docker-compose-image.yaml -f docker-compose.development-http.yaml up -d
- Delvist baseret på images genereret fra kode med
Dockerfilefiler og med HTTP
docker-compose -f docker-compose-project.yaml -f docker-compose.development-http.yaml up -d
- Delvist baseret på images genereret fra kode med
Dockerfilefiler og med HTTP/HTTPS - kræver at development certifikatet er til stede.
docker-compose -f docker-compose-project.yaml -f docker-compose.development-https.yaml up -d
Første login
Åbn dit FoxIDs Control site (http://localhost:8801 eller https://localhost:8401) i en browser.
Det bør videresende til FoxIDs site hvor du logger ind med standard admin brugeren admin@foxids.com og adgangskoden FirstAccess! (du skal ændre adgangskoden ved første login).
Du bliver derefter videresendt tilbage til FoxIDs Control site i master tenant. Du kan tilføje flere admin brugere i master tenant.
Klik derefter på main tenant og autentificér igen med samme standard admin bruger admin@foxids.com og adgangskoden FirstAccess! (igen, du skal ændre adgangskoden).
Standard admin bruger og adgangskode er den samme for både
mastertenant ogmaintenant, men det er to forskellige brugere.
Du er nu logget ind på main tenant og kan begynde at konfigurere dine applikationer og autentifikationsmetoder.
Nyttige kommandoer
Dette er en liste over kommandoer som kan være nyttige under deployment for at se detaljer og lave deployment ændringer.
Nedtag deployment
docker-compose -f docker-compose-image.yaml -f docker-compose.development-http.yaml down
# or
docker-compose -f docker-compose-project.yaml -f docker-compose.development-http.yaml down
# or
docker-compose -f docker-compose-project.yaml -f docker-compose.development-https.yaml down
Byg image med Dockerfile fil
docker build -f ./src/foxids/Dockerfile . -t foxids:x.x.x # x.x.x er versionen
# or
docker build -f ./src/foxids.control/Dockerfile . -t foxids-control:x.x.x # x.x.x er versionen
Stop container
docker stop xxx
Fjern container
docker rm xxx
Fjern image
docker rmi xxx
List volumes
docker volume ls
Fjern volume
docker volume rm xxx
Fjern alle ubrugte volumes
docker volume prune
Vis logs i container
Docker logs xxx