Docker
Wdróż FoxIDs w Docker Desktop na maszynie deweloperskiej lub testowej.
To opis sposobu wykonania domyślnego wdrożenia i pierwszego logowania.
Instalacja FoxIDs jest jak wiadro: brak zależności zewnętrznych i łatwo osiągnąć bardzo wysoką dostępność przy niewielkim wysiłku. FoxIDs jest aktualizowany przez aktualizację dwóch obrazów Docker foxids/foxids i foxids/foxids-control na nową wersję. Nowe wydania FoxIDs są wstecznie kompatybilne przed aktualizacją sprawdź informacje o wydaniu.
Wymagania wstępne:
- Masz zainstalowany Docker Desktop.
- Masz podstawową wiedzę o Docker.
Na końcu tego opisu znajduje się lista przydatnych poleceń.
To wdrożenie obejmuje:
- Dwie witryny: jedna dla FoxIDs i jedna dla FoxIDs Control (Client i API) w dwóch obrazach Docker foxids/foxids i foxids/foxids-control lub zbudowane z kodu przy użyciu plików
Dockerfile. - Dwie witryny są wystawione na dwóch różnych portach.
- MongoDB to baza NoSQL zawierająca wszystkie dane, w tym tenantów, środowiska i użytkowników. Wdrażana z oficjalnego obrazu MongoDB.
- Redis cache przechowuje sekwencje (np. logowanie i wylogowanie), cache danych dla poprawy wydajności oraz liczniki chroniące przed atakami. Wdrażany z oficjalnego obrazu Redis.
- Logi są zapisywane do
stdout, skąd mogą być zbierane przez Docker.
Opcjonalnie użyj PostgreSql zamiast MongoDB i opcjonalnie zrezygnuj z Redis oraz zapisuj dane cache w bazie (MongoDB lub PostgreSql). Bez Redis ustaw
Nonejako data cache.
Wdrożenie
Wdrożenie jest wykonywane w opisanej kolejności.
Przygotowanie
Sklonuj repozytorium git lub pobierz jako ZIP. Pliki konfiguracyjne YAML dla Dockera znajdują się w folderze ./Docker.
Otwórz konsolę i przejdź do folderu ./Docker.
Wolumen
Potrzebujesz wolumenu dla MongoDB o nazwie foxids-data, gdzie będą zapisywane dane.
Utwórz volume dla MongoDB na hoście Windows, np. w folderze C:\data\foxids-data. Ważne: utwórz foldery przed uruchomieniem polecenia.
docker volume create --driver local --opt type=none --opt device=C:\data\foxids-data --opt o=bind foxids-data
LUB utwórz volume dla MongoDB zarządzany przez Docker.
docker volume create foxids-data
Wdrożenie kontenerów
Dwie witryny FoxIDs są skonfigurowane tak, aby korzystać z obrazów z Docker Hub lub obrazów zbudowanych z kodu przy użyciu plików Dockerfile. Opcjonalnie skonfigurowane do użycia tylko HTTP albo HTTP/HTTPS z certyfikatem deweloperskim.
Oficjalne obrazy MongoDB i Redis są pobierane z Docker Hub.
Dostawca e-mail
Możesz opcjonalnie skonfigurować globalnego dostawcę e-maili lub później skonfigurować dostawców e-maili dla każdego środowiska. FoxIDs obsługuje wysyłanie e-maili przez SendGrid i SMTP.
Globalny dostawca e-maili jest konfigurowany w pliku docker-compose-image.yaml lub docker-compose-project.yaml w usłudze foxids w sekcji environment:.
Poniższy przykład pokazuje konfigurację Outlook / Microsoft 365 przez SMTP:
- name: "Settings__Smtp__FromEmail"
value: "my@email-address.org"
- name: "Settings__Smtp__FromName" # Opcjonalna nazwa nadawcy powiązana z adresem e-mail
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"
Wdrożenie
Utwórz wdrożenie, wybierając jeden z trzech sposobów:
- Wszystko na obrazach z Docker Hub i z HTTP
docker-compose -f docker-compose-image.yaml -f docker-compose.development-http.yaml up -d
- Częściowo na obrazach zbudowanych z kodu przy użyciu plików
Dockerfilei z HTTP
docker-compose -f docker-compose-project.yaml -f docker-compose.development-http.yaml up -d
- Częściowo na obrazach zbudowanych z kodu przy użyciu plików
Dockerfilei z HTTP/HTTPS wymaga certyfikatu deweloperskiego.
docker-compose -f docker-compose-project.yaml -f docker-compose.development-https.yaml up -d
Pierwsze logowanie
Otwórz witrynę FoxIDs Control (http://localhost:8801 lub https://localhost:8401) w przeglądarce.
Powinna przekierować do witryny FoxIDs, gdzie zalogujesz się domyślnym użytkownikiem admin admin@foxids.com i hasłem FirstAccess! (podczas pierwszego logowania musisz zmienić hasło).
Następnie zostaniesz przekierowany z powrotem do witryny FoxIDs Control w tenancie master. Możesz dodać więcej adminów w tenancie master.
Następnie kliknij tenant main i uwierzytelnij się ponownie tym samym domyślnym użytkownikiem admin admin@foxids.com i hasłem FirstAccess! (ponownie wymagane jest ustawienie nowego hasła).
Domyślny użytkownik admin i hasło są takie same dla tenanta
masteri tenantamain, ale to dwaj różni użytkownicy.
Jesteś teraz zalogowany w tenancie main i możesz rozpocząć konfigurację aplikacji i metod uwierzytelniania.
Przydatne polecenia
To lista poleceń, które mogą być przydatne podczas wdrożenia do podglądu szczegółów i wprowadzania zmian.
Usuń wdrożenie
docker-compose -f docker-compose-image.yaml -f docker-compose.development-http.yaml down
# lub
docker-compose -f docker-compose-project.yaml -f docker-compose.development-http.yaml down
# lub
docker-compose -f docker-compose-project.yaml -f docker-compose.development-https.yaml down
Zbuduj obraz z pliku Dockerfile
docker build -f ./src/foxids/Dockerfile . -t foxids:x.x.x # x.x.x to wersja
# lub
docker build -f ./src/foxids.control/Dockerfile . -t foxids-control:x.x.x # x.x.x to wersja
Zatrzymaj kontener
docker stop xxx
Usuń kontener
docker rm xxx
Usuń obraz
docker rmi xxx
Lista wolumenów
docker volume ls
Usuń wolumen
docker volume rm xxx
Usuń wszystkie nieużywane wolumeny
docker volume prune
Pokaż logi w kontenerze
Docker logs xxx