début de réécriture readme

This commit is contained in:
afornerot 2024-08-02 16:00:08 +02:00
parent 1a2cdc01af
commit 0e972cdcaf
1 changed files with 41 additions and 120 deletions

161
readme.md
View File

@ -4,119 +4,68 @@
git clone --branch master https://forge.cadoles.com/afornerot/ninedocker.git 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 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 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 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.
- et faite varier les variables d'environnement WEB_URL et PROTOCOLE
### 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 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 WEB_URL=mondomaine
PROTOCOLE=https 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 - 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é.
- 9000 = ninegate - 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.
- 1389/1636 = openldap - 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
- 8999/8443 = keycloak
- 9001 = nextcloud
- 9002 = nineboard
- 9003 = wordpress
- 9100 = adminer
- 9101 = phpldapadmin
- 9102 = nineapache
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
``` - **SQL** = sa propre mire d'authentification
ProxyPass /auth http://0.0.0.0:8080/auth retry=0 keepalive=On - **CAS** = CAS le serveur CAS local ou externe
ProxyPassReverse /auth http://0.0.0.0:8080/auth retry=0 - **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 ### Variables LDAP
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**
``` ```
LDAP_HOST # Host de votre annuaire 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 LDAP_MEMBER=memberUid # Liste des uid utilisateur dans un groupe
``` ```
### Personnaliser Ninegate #### Variable LDAP_SYNC
#### 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
Pour activer la synchronisation des comptes il est nessaire d'activer cette variable 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 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 : 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 - schema = ./volume/openldap/nine/schema/cadoles.ldif
- ldif = ./volume/openldap/nine/ldif/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" 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" 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 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 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. Il n'y a pas de synchronisation, la création / modification des utilisateurs se fait à la connexion de ce dernier.