Docker

Déployez FoxIDs dans Docker Desktop sur une machine de dev ou de test.

Ceci est une description de la manière d’effectuer un déploiement par défaut et de se connecter pour la première fois.

Une installation FoxIDs est comme un bucket, il n’y a pas de dépendances externes et il est facile d’atteindre un très haut niveau de disponibilité avec peu d’efforts. FoxIDs est mis à jour en mettant à jour les deux images docker foxids/foxids et foxids/foxids-control vers une nouvelle version. Les nouvelles versions de FoxIDs sont rétrocompatibles ; veuillez consulter les notes de version avant de mettre à jour.

Prérequis :

  • Vous avez Docker Desktop installé.
  • Vous avez des connaissances de base sur Docker.

Voici une liste de commandes utiles à la fin de cette description.

Ce déploiement comprend :

  • Deux sites web, un pour FoxIDs et un pour FoxIDs Control (Client et API) dans deux images docker foxids/foxids et foxids/foxids-control ou générées à partir du code avec des fichiers Dockerfile.
  • Les deux sites web sont exposés sur deux ports différents.
  • MongoDB est une base de données NoSQL et contient toutes les données, y compris tenants, environnements et utilisateurs. Déployée avec l’image Docker officielle MongoDB.
  • Le cache Redis contient les séquences (ex. login et logout), un cache de données pour améliorer les performances et gère les compteurs pour sécuriser l’authentification contre diverses attaques. Déployé avec l’image Docker officielle Redis.
  • Les logs sont écrits sur stdout où ils peuvent être récupérés par Docker.

Optionnellement utilisez PostgreSql à la place de MongoDB et, optionnellement, désactivez Redis et enregistrez les données de cache dans la base de données (MongoDB ou PostgreSql). Sans cache Redis, vous devez sélectionner None comme data cache.

Déploiement

Le déploiement est effectué dans l’ordre décrit.

Préparer

Clonez le dépôt git ou téléchargez en ZIP. Les fichiers de configuration Docker yaml se trouvent dans le dossier ./Docker.
Ouvrez une console et naviguez vers le dossier ./Docker.

Volume

Vous avez besoin d’un volume pour MongoDB avec le nom foxids-data où les données sont enregistrées.

Soit créez un volume pour MongoDB sur votre système de fichiers hôte Windows, par ex. le dossier C:\data\foxids-data. Important : créez les dossiers avant d’exécuter la commande.

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

OU créez un volume pour MongoDB géré par Docker.

docker volume create foxids-data

Déployer les conteneurs

Les deux sites FoxIDs sont configurés soit avec des images depuis Docker Hub, soit avec des images générées depuis le code via des fichiers Dockerfile. Et éventuellement configurés pour utiliser uniquement HTTP ou HTTP/HTTPS avec un certificat de développement.
Les images officielles MongoDB et Redis sont tirées depuis Docker Hub.

Fournisseur d’e-mail
Vous pouvez configurer un fournisseur d’e-mail global ou plus tard configurer des fournisseurs d’e-mail par environnement. FoxIDs prend en charge l’envoi d’e-mails avec SendGrid et SMTP.

Le fournisseur d’e-mail global est configuré dans le fichier docker-compose-image.yaml ou docker-compose-project.yaml sur le service foxids dans la section environment:.
Cet exemple montre comment ajouter Outlook / Microsoft 365 avec SMTP :

- name: "Settings__Smtp__FromEmail"
    value: "my@email-address.org"
- name: "Settings__Smtp__FromName" # Optional from name associated to the email address 
    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"

Déployer
Créez le déploiement, sélectionnez l’une des trois façons suivantes :

  1. Tout basé sur des images Docker Hub et en HTTP
docker-compose -f docker-compose-image.yaml -f docker-compose.development-http.yaml up -d
  1. Partiel basé sur des images générées depuis le code avec des fichiers Dockerfile et en HTTP
docker-compose -f docker-compose-project.yaml -f docker-compose.development-http.yaml up -d
  1. Partiel basé sur des images générées depuis le code avec des fichiers Dockerfile et en HTTP/HTTPS - nécessite un certificat de développement présent.
docker-compose -f docker-compose-project.yaml -f docker-compose.development-https.yaml up -d

Première connexion

Ouvrez votre site FoxIDs Control (http://localhost:8801 ou https://localhost:8401) dans un navigateur. Il devrait rediriger vers le site FoxIDs où vous vous connectez avec l’utilisateur admin par défaut admin@foxids.com et le mot de passe FirstAccess! (vous devez changer le mot de passe à la première connexion).
Vous êtes ensuite redirigé vers le site FoxIDs Control dans le tenant master. Vous pouvez ajouter d’autres administrateurs dans le tenant master.

Ensuite, cliquez sur le tenant main et authentifiez-vous à nouveau avec le même utilisateur admin par défaut admin@foxids.com et le mot de passe FirstAccess! (vous devez à nouveau changer le mot de passe).

L’utilisateur admin par défaut et le mot de passe sont les mêmes pour le tenant master et le tenant main, mais il s’agit de deux utilisateurs différents.

Vous êtes maintenant connecté au tenant main et pouvez commencer à configurer vos applications et méthodes d’authentification.

Commandes utiles

Voici une liste de commandes pouvant être utiles pendant le déploiement pour voir les détails et effectuer des modifications de déploiement.

Détruire le déploiement

docker-compose -f docker-compose-image.yaml -f docker-compose.development-http.yaml down
# ou
docker-compose -f docker-compose-project.yaml -f docker-compose.development-http.yaml down
# ou
docker-compose -f docker-compose-project.yaml -f docker-compose.development-https.yaml down

Construire l’image avec un fichier Dockerfile

docker build -f ./src/foxids/Dockerfile . -t foxids:x.x.x    # x.x.x est la version
# ou
docker build -f ./src/foxids.control/Dockerfile . -t foxids-control:x.x.x    # x.x.x est la version

Arrêter un conteneur

docker stop xxx

Supprimer un conteneur

docker rm xxx

Supprimer une image

docker rmi xxx

Lister les volumes

docker volume ls

Supprimer un volume

docker volume rm xxx

Supprimer tous les volumes inutilisés

docker volume prune

Afficher les logs d’un conteneur

Docker logs xxx

Votre confidentialité

Nous utilisons des cookies pour améliorer votre expérience sur nos sites. Cliquez sur « Accepter tous les cookies » pour accepter l'utilisation des cookies. Pour refuser les cookies non essentiels, cliquez sur « Cookies nécessaires uniquement ».

Consultez notre politique de confidentialité pour en savoir plus