Documentation Rhizome

Documentation de l'association Rhizome, contribution bienvenue !

Outils pour utilisateurs

Outils du site


technique:adminsys:phoenix:services:kanboard

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
technique:adminsys:phoenix:services:kanboard [2018/09/22 17:26]
tfleuran [Implantation Docker]
technique:adminsys:phoenix:services:kanboard [2018/09/22 17:46] (Version actuelle)
tfleuran Fin 22/09/18
Ligne 3: Ligne 3:
  
 L'​outil a été mis en place pour aider à gérer les différents projets en cours au semestre d'​automne 2018. L'​outil a été mis en place pour aider à gérer les différents projets en cours au semestre d'​automne 2018.
 +
 +===== État du déploiement =====
 +Au 22/09/18, les fonctionnalités suivantes sont déployées:​
 +  * Connexion au LDAP Rhizome pour l'​identification
 +    * En réalité, selon la documentation officielle:
 +      * Si l'​utilisateur n'​existe pas dans la BDD, Kanboard va parcourir le LDAP pour identifier l'​utilisateur
 +      * Si l'​utilisateur existe, il est copié dans la BDD
 +      * (Que se passe-t-il si l'​utilisateur change de mot de passe au niveau LDAP? -> Pour l'​instant,​ on ne peut pas changer de mot de passe au niveau de boutures, donc en attente)
 +  * Récupération des groupes depuis le LDAP
 +    * Fonctionnel,​ mais les groupes ne sont pas peuplés automatiquement (Pas sûr que ce soit intégré dans le logiciel)
 +  * Dépôt de fichiers
 +
 +Il manque au moins les fonctionnalités suivantes:
 +  * Envoie de mails aux utilisateur
  
 ===== Implantation Docker ===== ===== Implantation Docker =====
 Plusieurs fichiers et répertoires concernent l'​image Plusieurs fichiers et répertoires concernent l'​image
-  * //​~/​rhizome/​rhizome-docker/​rhz-board///,​ où se trouve le //​Dockerfile//​ utilisé pour la construction de l'​image+  * //​~/​rhizome/​rhizome-docker/​rhz-board/​ //, où se trouve le //​Dockerfile//​ utilisé pour la construction de l'​image
   * //​~/​rhizome/​docker-compose.yml//,​ fichier avec les configuration pour lancer l'​image ​   * //​~/​rhizome/​docker-compose.yml//,​ fichier avec les configuration pour lancer l'​image ​
-  * //​~/​rhizome/​WEBS/​rhz-board///,​ où sont stockés le fichier de configuration de kanboard et le dossier //data//, stockant les documents, montés sur le docker+  * //​~/​rhizome/​WEBS/​rhz-board/​ //, où sont stockés le fichier de configuration de kanboard et le dossier //data//, stockant les documents, montés sur le docker
  
-==== Dockerfile ====+==== Dockerfile: rhz-kanboard:​latest ​====
 L'​image utilisée par l'​association est construite à partir du fichier suivant (22/09/18): L'​image utilisée par l'​association est construite à partir du fichier suivant (22/09/18):
 <​code>​ <​code>​
Ligne 35: Ligne 49:
  
 CMD ["/​run.sh"​] CMD ["/​run.sh"​]
 +</​code>​
 +
 +L'​image est construite à partir de la commande suivante:
 +<​code>​
 +docker built -t rhz-kanboard .
 +</​code>​
 +
 +==== docker-compose.yml ====
 +Les lignes suivantes permettent de déclarer l'​image dans le fichier //​docker-compose.yml//,​ selon les règles de déploiement de Rhizome (22/09/18):
 +<​code>​
 +services:
 +  kanboard:
 +      mem_limit: 256m
 +      image: rhz-board
 +      container_name:​ kanboard
 +      networks:
 +        - frontend_bridge
 +        - backend_bridge
 +      depends_on:
 +        - slapd
 +        - mysql
 +      links:
 +       - mysql:mysql
 +       - slapd:ldap
 +      volumes:
 +       - /​root/​rhizome/​WEBS/​rhz-board/​config.php:/​var/​www/​html/​config.php
 +       - /​root/​rhizome/​WEBS/​rhz-board/​data:/​var/​www/​html/​data
 +      labels:
 +       - traefik.enable = true
 +       - traefik.backend = kanboard
 +       - traefik.frontend.rule=Host:​orga.rhizome-fai.net
 +       - traefik.docker.network=frontend
 +       - traefik.port=80
 +</​code>​
 +Le conteneur est lancé avec la commande suivante depuis le répertoire du fichier
 +<​code>​
 +docker-compose up -d kanboard
 +</​code>​
 +
 +==== Volumes attachés ====
 +Comme spécifiés dans le fichier //​docker-compose//,​ ///​root/​rhizome/​WEBS/​rhz-board/​data//​ et ///​root/​rhizome/​WEBS/​rhz-board/​config.php//​ sont montés sur le docker. Si le fichier de configuration peut être lu et utilisé par l'​utilisateur www-data du conteneur, les commandes suivantes ont été appliquées sur le dossier //data// pour que le dossier et son contenu soient modifiables et accessibles à kanboard:
 +<​code>​
 +chown :www-data ./data/
 +chmod g+s ./data/
 +chmod 775 ./data/
 +</​code>​
 +
 +===== Configuration de Kanboard =====
 +On retrouve ici le contenu de //​config.php//​ moins les mots de passe et identifiants (remplacés par //​--------------//​)(22/​09/​18):​
 +<​code>​
 +<?php
 +
 +/​*******************************************************************/​
 +/* Rename this file to config.php if you want to change the values */
 +/​*******************************************************************/​
 +
 +// Data folder (must be writeable by the web server user and absolute)
 +define('​DATA_DIR',​ __DIR__.DIRECTORY_SEPARATOR.'​data'​);​
 +
 +// Enable/​Disable debug
 +define('​DEBUG',​ false);
 +
 +// Available log drivers: syslog, stderr, stdout or file
 +define('​LOG_DRIVER',​ ''​);​
 +
 +// Log filename if the log driver is "​file"​
 +define('​LOG_FILE',​ DATA_DIR.DIRECTORY_SEPARATOR.'​debug.log'​);​
 +
 +// Plugins directory
 +define('​PLUGINS_DIR',​ '​plugins'​);​
 +
 +// Plugins directory URL
 +define('​PLUGIN_API_URL',​ '​https://​kanboard.net/​plugins.json'​);​
 +
 +// Enable/​Disable plugin installer
 +define('​PLUGIN_INSTALLER',​ true);
 +
 +// Available cache drivers are "​file"​ and "​memory"​
 +define('​CACHE_DRIVER',​ '​memory'​);​
 +
 +// Cache folder to use if cache driver is "​file"​ (must be writeable by the web server user)
 +define('​CACHE_DIR',​ DATA_DIR.DIRECTORY_SEPARATOR.'​cache'​);​
 +
 +// Folder for uploaded files (must be writeable by the web server user)
 +define('​FILES_DIR',​ DATA_DIR.DIRECTORY_SEPARATOR.'​files'​);​
 +
 +// Enable/​disable email configuration from the user interface
 +define('​MAIL_CONFIGURATION',​ true);
 +
 +// E-mail address used for the "​From"​ header (notifications)
 +define('​MAIL_FROM',​ '​replace-me@kanboard.local'​);​
 +
 +// Mail transport available: "​smtp",​ "​sendmail",​ "​mail"​ (PHP mail function), "​postmark",​ "​mailgun",​ "​sendgrid"​
 +define('​MAIL_TRANSPORT',​ '​mail'​);​
 +
 +// SMTP configuration to use when the "​smtp"​ transport is chosen
 +define('​MAIL_SMTP_HOSTNAME',​ ''​);​
 +define('​MAIL_SMTP_PORT',​ 25);
 +define('​MAIL_SMTP_USERNAME',​ ''​);​
 +define('​MAIL_SMTP_PASSWORD',​ ''​);​
 +define('​MAIL_SMTP_ENCRYPTION',​ null); // Valid values are "​null",​ "​ssl"​ or "​tls"​
 +
 +// Sendmail command to use when the transport is "​sendmail"​
 +define('​MAIL_SENDMAIL_COMMAND',​ '/​usr/​sbin/​sendmail -bs');
 +
 +// Run automatically database migrations
 +// If set to false, you will have to run manually the SQL migrations from the CLI during the next Kanboard upgrade
 +// Do not run the migrations from multiple processes at the same time (example: web page + background worker)
 +define('​DB_RUN_MIGRATIONS',​ true);
 +
 +// Database driver: sqlite, mysql or postgres (sqlite by default)
 +define('​DB_DRIVER',​ '​mysql'​);​
 +
 +// Mysql/​Postgres username
 +define('​DB_USERNAME',​ '​root'​);​
 +
 +// Mysql/​Postgres password
 +define('​DB_PASSWORD',​ '​--------------'​);​
 +
 +// Mysql/​Postgres hostname
 +define('​DB_HOSTNAME',​ '​mysql'​);​
 +
 +// Mysql/​Postgres database name
 +define('​DB_NAME',​ '​kanboard'​);​
 +
 +// Mysql/​Postgres custom port (null = default port)
 +define('​DB_PORT',​ null);
 +
 +// Mysql SSL key
 +define('​DB_SSL_KEY',​ null);
 +
 +// Mysql SSL certificate
 +define('​DB_SSL_CERT',​ null);
 +
 +// Mysql SSL CA
 +define('​DB_SSL_CA',​ null);
 +
 +// Enable LDAP authentication (false by default)
 +define('​LDAP_AUTH',​ true);
 +
 +// LDAP server hostname
 +define('​LDAP_SERVER',​ '​ldap://​ldap:​389'​);​
 +
 +// LDAP server port (389 by default)
 +define('​LDAP_PORT',​ 389);
 +
 +// By default, require certificate to be verified for ldaps:// style URL. Set to false to skip the verification
 +define('​LDAP_SSL_VERIFY',​ false);
 +
 +// Enable LDAP START_TLS
 +define('​LDAP_START_TLS',​ false);
 +
 +// By default Kanboard lowercase the ldap username to avoid duplicate users (the database is case sensitive)
 +// Set to true if you want to preserve the case
 +define('​LDAP_USERNAME_CASE_SENSITIVE',​ true);
 +
 +// LDAP bind type: "​anonymous",​ "​user"​ or "​proxy"​
 +define('​LDAP_BIND_TYPE',​ '​proxy'​);​
 +
 +// LDAP username to use with proxy mode
 +// LDAP username pattern to use with user mode
 +define('​LDAP_USERNAME',​ '​uid=kanboard,​ou=application,​dc=rhizome-fai,​dc=net'​);​
 +
 +// LDAP password to use for proxy mode
 +define('​LDAP_PASSWORD',​ '​--------------'​);​
 +
 +// LDAP DN for users
 +// Example for ActiveDirectory:​ CN=Users,​DC=kanboard,​DC=local
 +// Example for OpenLDAP: ou=People,​dc=example,​dc=com
 +define('​LDAP_USER_BASE_DN',​ '​ou=user,​dc=rhizome-fai,​dc=net'​);​
 +
 +// LDAP pattern to use when searching for a user account
 +// Example for ActiveDirectory:​ '​(&​(objectClass=user)(sAMAccountName=%s))'​
 +// Example for OpenLDAP: '​uid=%s'​
 +define('​LDAP_USER_FILTER',​ '​uid=%s'​);​
 +
 +// LDAP attribute for username
 +// Example for ActiveDirectory:​ '​samaccountname'​
 +// Example for OpenLDAP: '​uid'​
 +define('​LDAP_USER_ATTRIBUTE_USERNAME',​ '​uid'​);​
 +
 +// LDAP attribute for user full name
 +// Example for ActiveDirectory:​ '​displayname'​
 +// Example for OpenLDAP: '​cn'​
 +define('​LDAP_USER_ATTRIBUTE_FULLNAME',​ '​givenName'​);​
 +
 +// LDAP attribute for user email
 +define('​LDAP_USER_ATTRIBUTE_EMAIL',​ '​mail'​);​
 +
 +// LDAP attribute to find groups in user profile
 +define('​LDAP_USER_ATTRIBUTE_GROUPS',​ ''​);​
 +
 +// LDAP attribute for user avatar image: thumbnailPhoto or jpegPhoto
 +define('​LDAP_USER_ATTRIBUTE_PHOTO',​ ''​);​
 +
 +// LDAP attribute for user language, example: '​preferredlanguage'​
 +// Put an empty string to disable language sync
 +define('​LDAP_USER_ATTRIBUTE_LANGUAGE',​ ''​);​
 +
 +// Allow automatic LDAP user creation
 +define('​LDAP_USER_CREATION',​ true);
 +
 +// LDAP DN for administrators
 +// Example: CN=Kanboard-Admins,​CN=Users,​DC=kanboard,​DC=local
 +define('​LDAP_GROUP_ADMIN_DN',​ ''​);​
 +
 +// LDAP DN for managers
 +// Example: CN=Kanboard Managers,​CN=Users,​DC=kanboard,​DC=local
 +define('​LDAP_GROUP_MANAGER_DN',​ ''​);​
 +
 +// Enable LDAP group provider for project permissions
 +// The end-user will be able to browse LDAP groups from the user interface and allow access to specified projects
 +define('​LDAP_GROUP_PROVIDER',​ true);
 +
 +// LDAP Base DN for groups
 +define('​LDAP_GROUP_BASE_DN',​ '​ou=group,​dc=rhizome-fai,​dc=net'​);​
 +
 +// LDAP group filter
 +// Example for ActiveDirectory:​ (&​(objectClass=group)(sAMAccountName=%s*))
 +define('​LDAP_GROUP_FILTER',​ '​(&​(objectClass=groupOfNames))'​);​
 +
 +
 +// LDAP user group filter
 +// If this filter is configured, Kanboard will search user groups in LDAP_GROUP_BASE_DN with this filter
 +// Example for OpenLDAP: (&​(objectClass=posixGroup)(memberUid=%s))
 +define('​LDAP_GROUP_USER_FILTER',​ ''​);​
 +
 +// LDAP attribute for the group name
 +define('​LDAP_GROUP_ATTRIBUTE_NAME',​ '​cn'​);​
 +
 +// Enable/​disable the reverse proxy authentication
 +define('​REVERSE_PROXY_AUTH',​ false);
 +
 +// Header name to use for the username
 +define('​REVERSE_PROXY_USER_HEADER',​ '​REMOTE_USER'​);​
 +
 +// Username of the admin, by default blank
 +define('​REVERSE_PROXY_DEFAULT_ADMIN',​ ''​);​
 +
 +// Default domain to use for setting the email address
 +define('​REVERSE_PROXY_DEFAULT_DOMAIN',​ ''​);​
 +
 +// Enable/​disable remember me authentication
 +define('​REMEMBER_ME_AUTH',​ true);
 +
 +// Enable or disable "​Strict-Transport-Security"​ HTTP header
 +define('​ENABLE_HSTS',​ true);
 +
 +// Enable or disable "​X-Frame-Options:​ DENY" HTTP header
 +define('​ENABLE_XFRAME',​ true);
 +
 +// Escape html inside markdown text
 +define('​MARKDOWN_ESCAPE_HTML',​ true);
 +
 +// API alternative authentication header, the default is HTTP Basic Authentication defined in RFC2617
 +define('​API_AUTHENTICATION_HEADER',​ ''​);​
 +
 +// Enable/​disable url rewrite
 +define('​ENABLE_URL_REWRITE',​ false);
 +
 +// Hide login form, useful if all your users use Google/​Github/​ReverseProxy authentication
 +define('​HIDE_LOGIN_FORM',​ false);
 +
 +// Disabling logout (useful for external SSO authentication)
 +define('​DISABLE_LOGOUT',​ false);
 +
 +// Enable captcha after 3 authentication failure
 +define('​BRUTEFORCE_CAPTCHA',​ 3);
 +
 +// Lock the account after 6 authentication failure
 +define('​BRUTEFORCE_LOCKDOWN',​ 6);
 +
 +// Lock account duration in minute
 +define('​BRUTEFORCE_LOCKDOWN_DURATION',​ 15);
 +
 +// Session duration in second (0 = until the browser is closed)
 +// See http://​php.net/​manual/​en/​session.configuration.php#​ini.session.cookie-lifetime
 +define('​SESSION_DURATION',​ 0);
 +
 +// HTTP client proxy
 +define('​HTTP_PROXY_HOSTNAME',​ ''​);​
 +define('​HTTP_PROXY_PORT',​ '​3128'​);​
 +define('​HTTP_PROXY_USERNAME',​ ''​);​
 +define('​HTTP_PROXY_PASSWORD',​ ''​);​
 +
 +// Set to false to allow self-signed certificates
 +define('​HTTP_VERIFY_SSL_CERTIFICATE',​ true);
 +
 +// TOTP (2FA) issuer name
 +define('​TOTP_ISSUER',​ '​Kanboard'​);​
 +
 </​code>​ </​code>​
  
technique/adminsys/phoenix/services/kanboard.txt · Dernière modification: 2018/09/22 17:46 par tfleuran