init ninedocker
This commit is contained in:
206
readme.md
Normal file
206
readme.md
Normal file
@ -0,0 +1,206 @@
|
||||
# Installation de nine
|
||||
|
||||
## Cloner le dépot
|
||||
|
||||
git clone
|
||||
|
||||
## Comment personnaliser
|
||||
|
||||
Pour personnaliser la configuration de base
|
||||
|
||||
- créer un fichier /env/.env.local
|
||||
- et faite varier les variables d'environnement WEB_URL et PROTOCOLE
|
||||
|
||||
### Host
|
||||
|
||||
De base ninedocker est configuré pour fonctionner sur nine.local en https
|
||||
|
||||
Exemple de faire fonctionner le docker en local et en http
|
||||
|
||||
```
|
||||
WEB_URL=localhost
|
||||
PROTOCOLE=http
|
||||
```
|
||||
|
||||
### Ports & Services associés
|
||||
|
||||
Les services suivants sont à l'écoute des ports
|
||||
|
||||
- 3306 = mariadb
|
||||
- 9000 = ninegate
|
||||
- 1389/1636 = openldap
|
||||
- 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
|
||||
|
||||
exemple apache
|
||||
|
||||
```
|
||||
ProxyPass /auth http://0.0.0.0:8080/auth retry=0 keepalive=On
|
||||
ProxyPassReverse /auth http://0.0.0.0:8080/auth retry=0
|
||||
|
||||
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**
|
||||
|
||||
```
|
||||
LDAP_HOST # Host de votre annuaire
|
||||
LDAP_PORT # Port de votre annuaire
|
||||
LDAP_TLS # Use TLS 1/0
|
||||
LDAP_BASEDN # Basedn de votre annuaire
|
||||
LDAP_ADMIN_USERNAME # UID du compte writer ou reader de votre annuaire. Writer obligatoire si vous synchroniser ninegate dans votre openldap
|
||||
LDAP_USER # DN du compte writer ou reader de votre annuaire. Writer obligatoire si vous synchroniser ninegate dans votre openldap
|
||||
LDAP_PASSWORD # Password du compte writer ou reader de votre annuaire. Writer obligatoire si vous synchroniser ninegate dans votre openldap
|
||||
LDAP_USERNAME=uid # Attribut de l'uid d'un utilisateur
|
||||
LDAP_FIRSTNAME=givenname # Attribut prénom d'un utilisateur
|
||||
LDAP_LASTNAME=sn # Attribut nom d'un utilisateur
|
||||
LDAP_DISPLAYNAME=displayName # Attribut displayname d'un utilisateur
|
||||
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
|
||||
|
||||
Pour activer la synchronisation des comptes il est nessaire d'activer cette variable
|
||||
|
||||
```
|
||||
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**
|
||||
|
||||
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
|
||||
|
||||
```
|
||||
LDAP_BASEUSER="ou=users,ou=ninegate,o=gouv,c=fr"
|
||||
LDAP_BASENIVEAU01="ou=niveau01,ou=ninegate,o=gouv,c=fr"
|
||||
LDAP_BASENIVEAU02="ou=niveau02,ou=ninegate,o=gouv,c=fr"
|
||||
LDAP_BASEGROUP="ou=groups,ou=ninegate,o=gouv,c=fr"
|
||||
```
|
||||
|
||||
**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
|
||||
|
||||
Exemple
|
||||
|
||||
```
|
||||
(&(uid=*)(objectclass=inetOrgPerson)(!(description=Computer)))
|
||||
```
|
||||
|
||||
Dans ce cas à l'initialisation de ninegate un premier niveau sera généré est lié à la requete annuaire déclarée via
|
||||
|
||||
```
|
||||
OPENLDAPREQNIVEAU01
|
||||
```
|
||||
|
||||
Vous pouvez aussi synchroniser vos groupes annuaires dans ninegate en activant et en précisant la requête LDAP permettrant de les récupérer
|
||||
|
||||
```
|
||||
OPENLDAPSYNCHROGROUP
|
||||
OPENLDAPREQGROUP
|
||||
```
|
||||
|
||||
**Si masteridentity est à SSO**
|
||||
|
||||
Il n'y a pas de synchronisation, la création / modification des utilisateurs se fait à la connexion de ce dernier.
|
Reference in New Issue
Block a user