Un gestionnaire de projet avec Kanboard


Kanboard est un logiciel de gestion de projet Kanban gratuit et open source.

Ressources :

La description ci-dessous, concerne les outils suivants :
  • Nginx 1.13, Php-FPM 7.0, Postgresql 9.6

Installation & Configuration

Commençons par installer les paquets requis :

apt install nginx php7.0-pgsql php7.0-fpm php7.0-cli php7.0-mbstring php7.0-opcache php7.0-json php7.0-gd php7.0-xml

Rendons-nous dans le dossier où l'application sera placé :

cd /var/www/
sudo -u www-data git clone https://github.com/kanboard/kanboard.git

Editon la configuration de Nginx pour rendre l'application accessible via le port 80 :

vim /etc/apache2/site-enabled/kanboard.domaine.com.conf

server {
        listen 0.0.0.0:80;
        server_name kanboard.domaine.com;

        root /var/www/kanboard/;

        index index.php;
        
        location ~ .php$ {
                try_files $uri =404;
                fastcgi_pass 127.0.0.1:9000;
                fastcgi_index index.php;
                fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
                include fastcgi_params;
        }
}

Puis on recharge la configuraiton :

systemctl reload nginx

On doit également modifier la configuration de PHP-FPM pour qu'il puisse executer les script PHP. Modifions le fichier de configuration suivant :

vim /etc/php/7.0/fpm/pool.d/www.conf

Pour ajouter ceci :

listen = 127.0.0.1:9000

Idem, on relance le service pour appliquer cette modification :

/etc/init.d/php7.0-fpm restart

Je souhaite m’initier à Postgres alors pour Kanboard j'ai choisi de mettre de côté MySQL. Celà dit, par défaut c'est la base SQLite qui est utilisé.

Commençons par lui indiquer que l'on va utiliser un utilisateur précis dont sont authentification sera uniquement local et par mot de passe :

nano /etc/postgresql/9.6/main/pg_hba.conf

Et ajouter cette ligne :

local   kanboard        kanboard                                password

On le relance pour qu'il puisse prendre en compte ces changements :

systemctl restart postgresql

Créons cet utilisateur avec ses droits pour accéder à la base :

sudo -u postgres createuser -P kanboard
sudo -u postgres createdb -O kanboard kanboard
sudo -u postgres psql -U kanboard -W
GRANT ALL PRIVILEGES ON DATABASE kanboard TO kanboard;

Il nous reste plus qu'a importer la structure de la base qui est déjà présente dans le projet :

sudo -u postgres psql -U postgres -W kanboard < /var/www/kanboard/app/Schema/Sql/postgres.sql

Et on indique à Kanboard d'utiliser cette base :

sudo -u www-data cp config.default.php config.php
nano config.php

On vérifie que ces options soient bien appliqué :

<?php
// We choose to use Postgresql instead of Sqlite
define('DB_DRIVER', 'postgres');
 
// Mysql parameters
define('DB_USERNAME', 'REPLACE_ME');
define('DB_PASSWORD', 'REPLACE_ME');
define('DB_HOSTNAME', 'REPLACE_ME');
define('DB_NAME', 'kanboard');

Si aucune erreur est présent alors il est maintenant possible de se rendre avec son navigateur à l'application : http://kanboard.domaine.com On tombera sur une page d'authentification dont les identifiants sont les suivants : admin/admin

Mise à jour

L'application utilise un dépôt git, il suffit alors de le mettre à jour :

sudo -u www-data git fetch

Maintenant que nous avons toutes le modifs dans notre indexe, on va pouvoir les appliquer progressivement par version. On peut notamment passer de version en version 1.2.8 → 1.2.12 ainsi :

sudo -u www-data git merge <HASH_COMMIT>

Le hash convient à la relase que la communauté propose : https://github.com/kanboard/kanboard/releases

Notons qu'il y aura peut-être besoin de mettre à jour la base avec la comande suivante :

sudo -u www-data ./cli db:migrate