207 lines
7.0 KiB
Markdown
207 lines
7.0 KiB
Markdown
# Installation de nine
|
||
|
||
## Cloner le dépot
|
||
|
||
git clone --branch master https://forge.cadoles.com/afornerot/ninedocker.git
|
||
|
||
## 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.
|