From 0e972cdcaf388bdfc5602195db6046c55b0b1ce1 Mon Sep 17 00:00:00 2001 From: afornerot Date: Fri, 2 Aug 2024 16:00:08 +0200 Subject: [PATCH] =?UTF-8?q?d=C3=A9but=20de=20r=C3=A9=C3=A9criture=20readme?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- readme.md | 161 ++++++++++++++---------------------------------------- 1 file changed, 41 insertions(+), 120 deletions(-) diff --git a/readme.md b/readme.md index 81833f8..5376c60 100644 --- a/readme.md +++ b/readme.md @@ -4,119 +4,68 @@ git clone --branch master https://forge.cadoles.com/afornerot/ninedocker.git -## Nine sur localhost +## Nine sur localhost Vous devez ajouter un domaine dans votre host qui pointe sur 127.0.0.0 -Sans personnalisation nine est configuré pour travailler avec nine.local et il écoute le port 7080 +Sans personnalisation nine est configuré pour travailler avec nine.local et il écoute les ports 443 et 80 ``` 127.0.0.0 nine.local ``` -## Comment personnaliser +# Structure du projet -Pour personnaliser la configuration de base +## env -- créer un fichier /env/.env.local -- et faite varier les variables d'environnement WEB_URL et PROTOCOLE +Ce répertoire contient l'ensemble des variables d'environnements de Ninedocker. Ne modifiez jamais le fichier .env, si vous souhaitez personnaliser votre environnement, initialisez un fichier .env.local au même emplacement. Dans ce fichier vous pourrez altérer les valeurs des variables présentes dans le .env. -### Host +### Variables "SERVICE" + +Chaque service ont au minimum trois variables + +``` +- LESERVICE_SERVICE_NAME=leservice # Le nom du service +- LESERVICE_ACTIVATE=1 # Pour activer le service +- LESERVICE_LOCAL=1 # Pour indiquer si le service est hébergé sur ninedocker +``` + +Si vous souhaitez ajouter vos propres services à Ninedocker, ajoutez obligatoirement au moins trois variables dans votre .env.local: + +``` +- MONSERVICE_SERVICE_NAME=leservice +- MONSERVICE_ACTIVATE=1 +- MONSERVICE_LOCAL=1 +``` + +### Variables WEB_URL & PROTOCOLE De base ninedocker est configuré pour fonctionner sur nine.local en https -Exemple de faire fonctionner le docker en local et en http +Vous devez donc modifier dans le .env.local pour être en phase avec votre environnement ``` WEB_URL=mondomaine PROTOCOLE=https ``` -### Ports & Services associés +### Variable MASTERIDENTITY -Les services suivants sont à l'écoute des ports +La variable MASTERIDENTITY peut prendre les valeurs SQL ou SSO ou LDAP. Elle permet d'indiquer à Ninegate ou Nineskeletor qui est le maître de l'indentité. -- 3306 = mariadb -- 9000 = ninegate -- 1389/1636 = openldap -- 8999/8443 = keycloak -- 9001 = nextcloud -- 9002 = nineboard -- 9003 = wordpress -- 9100 = adminer -- 9101 = phpldapadmin -- 9102 = nineapache +- Si **SQL** = c'est que c'est Ninegate ou Nineskeletor qui sont detenteur et maître de l'indentité. Dans ce cas Ninegate ou Nineskeletor seront capable de synchroniser leurs utilisateurs dans un annuaire. Si un service OPENLDAP est activé. +- Si **SSO** = c'est que c'est à la connexion en SSO aux différents services qui va autosubmit ou autoupdate l'utilisateur dans le service qui utilise le service SSO. Dans ce cas, il est impératif que votre mode d'authentification soit paramétré en CAS. +- Si **LDAP** = c'est que c'est le service OPENLDAP qui est maître de l'identité. Dans ce cas c'est à vous d'alimenter les utilisateurs dans l'annuaire. Le service PHPLDAPADMIN pourrait vous aider à cela. Certains service pourront se synchroniser avec votre annuaire pour récupérer d'avance votre structure organisationnelle -Si vous souhaitez ne pas attaquer vos services via leurs ports, vous devrez mettre en place un reverse proxy apache ou ngnix +### Variable MODE_AUTH -exemple apache +Cette variable permet de déterminer quel protocole d'authentification sera utilisé par les différents service -``` -ProxyPass /auth http://0.0.0.0:8080/auth retry=0 keepalive=On -ProxyPassReverse /auth http://0.0.0.0:8080/auth retry=0 +- **SQL** = sa propre mire d'authentification +- **CAS** = CAS le serveur CAS local ou externe +- **LDAP** = l'annuaire local ou externe dans ce cas la variable LDAP_LOGIN_FILTER est nécessaire -ProxyPass /ninegate http://0.0.0.0:9000/ninegate retry=0 keepalive=On -ProxyPassReverse /ninegate http://0.0.0.0:9000/ninegate retry=0 -ProxyPass /wssninegate ws://0.0.0.0:9000/wssninegate retry=0 keepalive=On -ProxyPassReverse /wssninegate ws://0.0.0.0:9000/wssninegate retry=0 - -ProxyPass /nextcloud http://0.0.0.0:9001 retry=0 keepalive=On -ProxyPassReverse /nextcloud http://0.0.0.0:9001 retry=0 - -ProxyPass /nineboard http://0.0.0.0:9002/nineboard retry=0 keepalive=On -ProxyPassReverse /nineboard http://0.0.0.0:9002/nineboard retry=0 -ProxyPass /wssnineboard ws://0.0.0.0:9002/wssnineboard retry=0 keepalive=On -ProxyPassReverse /wssnineboard ws://0.0.0.0:9002/wssnineboard retry=0 - -ProxyPass /wordpress http://0.0.0.0:9003/wordpress retry=0 keepalive=On -ProxyPassReverse /wordpress http://0.0.0.0:9003/wordpress retry=0 - -ProxyPass /adminer http://0.0.0.0:9100 retry=0 keepalive=On -ProxyPassReverse /adminer http://0.0.0.0:9100 retry=0 - -ProxyPass /phpldapadmin http://0.0.0.0:9101/phpldapadmin retry=0 keepalive=On -ProxyPassReverse /phpldapadmin http://0.0.0.0:9101/phpldapadmin retry=0 - -ProxyPass /nineapache http://0.0.0.0:9102 retry=0 keepalive=On -ProxyPassReverse /nineapache http://0.0.0.0:9102 retry=0 -``` - -### Activer / Désactiver les services - -Dans votre ./env/.env.local vous pouvez activer / désactiver des services via les variables suivante - -``` -MARIADB_ACTIVATE= -LDAP_ACTIVATE= -CAS_ACTIVATE= -NINEGATE_ACTIVATE= -NEXTCLOUD_ACTIVATE= -NINEBOARD_ACTIVATE= -WORDPRESS_ACTIVATE= -ADMINER_ACTIVATE= -PHPLDAPADMIN_ACTIVATE= -NINEAPACHE_ACTIVATE= -``` - -### Déporter des services - -Certains services peuvent t'être distant et non géré par le docker nine. Pour cela garder le service actif mais indiquer lui qu'il n'est pas local via les variables suivantes - -``` -LDAP_LOCAL -CAS_LOCAL -NINEGATE_LOCAL -NEXTCLOUD_LOCAL -NINEBOARD_LOCAL -WORDPRESS_LOCAL -ADMINER_LOCAL -PHPLDAPADMIN_LOCAL -NINEAPACHE_LOCAL -``` - -S'il ne sont pas local en fonction du service vous devrez ajouter les variables nécessaire dans votre .env.local pour indiquer où se situe le service. - -**LDAP** +### Variables LDAP ``` LDAP_HOST # Host de votre annuaire @@ -134,35 +83,7 @@ LDAP_EMAIL=mail # Attribut mail d'un utilisateur LDAP_MEMBER=memberUid # Liste des uid utilisateur dans un groupe ``` -### Personnaliser Ninegate - -#### MASTERIDENTITY - -Ce variable va vous permettre de déterminer qui est le maître de l'identité - -**SQL** - -- C'est ninegate le maître vous pouvez via l'interface de gestion de ninagate créer/modifier/supprimer des niveaux/groups/utilisateurs -- Vous pourrez activer l'auto inscription des utilisateurs -- Les utilisateurs pourront bénéficier d'un "Mot de passe oublié" -- Si vous avez activer le service LDAP, les utilisateurs pourront alors être synchroniser - -**LDAP** - -- C'est l'annuaire le maître vous ne plus créer/modifier/supprimer des utilisateurs dans l'interface de ninegate, ni bénéficier de l'auto inscription des utilisateurs ni de la fonctionnalité "Mot de passe oublié" -- Cela sera à vous de créer directement dans l'annuaire vos utilisateurs -- Vous pourrez créer des niveaux et des groupes -- Les niveau01s et les groupes pourront etre associé à une requete LDAP indiquant à Ninegate comment les récupérer et les synchroniser dans sa base - -### MODE_AUTH - -Quel protocole d'authentification sera utilisé par les différents service - -- SQL = sa propre mire d'authentification -- CAS = CAS le serveur CAS local ou externe -- LDAP = l'annuaire local ou externe dans ce cas la variable LDAP_LOGIN_FILTER est nécessaire - -#### Synchronisation +#### Variable LDAP_SYNC Pour activer la synchronisation des comptes il est nessaire d'activer cette variable @@ -172,14 +93,14 @@ LDAP_SYNC En fonction de votre MASTERIDENTITY vous pouvez synchroniser les utilisateurs -**Si masteridentity est à SQL = où sont synchronisées les datas dans l'annuaire** +**Si MASTERIDENTITY est à SQL = synchronisation des datas la BDD vers l'annuaire** Attention dans ce cas ninegate attend une structure d'annuaire bien précise. Vous pouvez retrouver cette structure si vous souhaitez déporter votre annuaire à ces emplacements : - schema = ./volume/openldap/nine/schema/cadoles.ldif - ldif = ./volume/openldap/nine/ldif/cadoles.ldif -Voici les variables qui indiquera à ninegate où aller synchroniser son organisation +Voici les variables qui indiquera à Ninegate où aller synchroniser son organisation ``` LDAP_BASEUSER="ou=users,ou=ninegate,o=gouv,c=fr" @@ -188,7 +109,7 @@ LDAP_BASENIVEAU02="ou=niveau02,ou=ninegate,o=gouv,c=fr" LDAP_BASEGROUP="ou=groups,ou=ninegate,o=gouv,c=fr" ``` -**Si masteridentity est à LDAP** +**Si MASTERIDENTITY est à LDAP** Dans l'interface de ninegate sur les niveaux vous devrait lui indiquer comment créer les utilisateurs de ce niveau via un filtre LDAP @@ -211,6 +132,6 @@ OPENLDAPSYNCHROGROUP OPENLDAPREQGROUP ``` -**Si masteridentity est à SSO** +**Si MASTERIDENTITY est à SSO** Il n'y a pas de synchronisation, la création / modification des utilisateurs se fait à la connexion de ce dernier.