Table des matières

Service Kanban.chapril.org

Introduction

Ce service est basé sur kanboard.
Site principal : https://kanboard.org/
Sources : https://github.com/kanboard/kanboard

Installation des pré-requis

apt update
apt install -y apache2 libapache2-mod-php7.3 php7.3-cli php7.3-mbstring \
    php7.3-opcache php7.3-json php7.3-mysql \
    php7.3-gd php7.3-xml
systemctl enable apache2 mariadb

Pour les plugins :

apt install -y php-zip 
Si ce n'est pas installé kanboard affichera : Votre instance de Kanboard n'est pas configurée pour installer des extensions depuis l'interface utilisateur.

Création des dossiers

mkdir -p /var/www/kanban.chapril.org
mkdir -p /var/log/cron/
mkdir -p /var/log/apache2/kanban.chapril.org/
mkdir -p /srv/kanban.chapril.org/tools

Création des liens

ln -s /etc/cron.d/kanbanchaprilorg /srv/kanban.chapril.org/kanbanchaprilorg.cron
ln -s /var/www/kanban.chapril.org /srv/kanban.chapril.org/www

Configuration apache2

cat > /etc/apache2/sites-available/kanban.chapril.org.conf <<EOF
<VirtualHost *:80>
             ServerName kanban.chapril.org
             ServerAdmin kanban-support@chapril.org

             ErrorLog ${APACHE_LOG_DIR}/kanban.chapril.org/kanban.chapril.org-error.log
             CustomLog ${APACHE_LOG_DIR}/kanban.chapril.org/kanban.chapril.org-access.log combined-proxy

             DocumentRoot /var/www/kanban.chapril.org/

             php_admin_value open_basedir "/var/www/kanban.chapril.org/"

             <Directory "/var/www/kanban.chapril.org/">
                 AllowOverride All
             </Directory>
</VirtualHost>
EOF

Création du fichier cron

La création du fichier cron est tiré de : https://docs.kanboard.org/en/latest/admin_guide/cronjob.html

cat > /etc/cron.d/kanbanchaprilorg <<EOF
0 5 * * * cd /var/www/kanban.chapril.org/ && ./cli cronjob >>/var/log/cron/kanbanchaprilorg.log 2>&1
EOF

Installation

Installation du service

version=1.2.13
wget https://github.com/kanboard/kanboard/archive/v$version.tar.gz
tar xzvf v$version.tar.gz -C /var/www/kanban.chapril.org/ --strip-components=1
chown -R www-data:www-data /var/www/kanban.chapril.org/data
mkdir /var/www/kanban.chapril.org/upload_tmp_dir/
chown www-data:www-data /var/www/kanban.chapril.org/upload_tmp_dir
cp /var/www/kanban.chapril.org/config.default.php /var/www/kanban.chapril.org/config.php 

Base de données

cat > /srv/kanban.chapril.org/tools/create_database.sql <<EOF
CREATE USER 'kanbanchaprilorg_dbadmin'@'localhost' IDENTIFIED BY 'password';
CREATE DATABASE IF NOT EXISTS kanban_chapril_org_db DEFAULT CHARACTER SET utf8mb4 COLLATE 'utf8mb4_unicode_ci';
GRANT ALL privileges ON 'kanbanchaprilorg'.localhost TO 'kanbanchaprilorg_dbadmin'@localhost;
FLUSH PRIVILEGES;
EOF
mysql < /srv/kanban.chapril.org/tools/create_database.sql

Configuration

Éditer le fichier de conf :

nano /var/www/kanban.chapril.org/config.php 

afin d'avoir :

// Enable/Disable plugin installer (Disabled by default for security reasons)
// There is no code review or any approval process to submit a plugin.
// This is up to the Kanboard instance owner to validate if a plugin is legit.
define('PLUGIN_INSTALLER', true);
// Enable/disable email configuration from the user interface
define('MAIL_CONFIGURATION', true);
// E-mail address used for the "From" header (notifications)
define('MAIL_FROM', 'kanban-notifications@chapril.org');

Le mail kanban-notifications@chapril.org est utilisé pour l'en-tête “From” des notifications.

// Mail transport to use: "smtp", "sendmail" or "mail" (PHP mail function)
define('MAIL_TRANSPORT', 'smtp');
// SMTP configuration to use when the "smtp" transport is chosen
define('MAIL_SMTP_HOSTNAME', 'localhost');
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', 'kanbanchaprilorg_dbadmin');
// Mysql/Postgres password
define('DB_PASSWORD', 'password');
// Mysql/Postgres database name
define('DB_NAME', 'kanban_chapril_org_db');
// 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);

Activation de la configuration apache

Activation de la configuration via ad2ensite

ad2ensite kanban.chapril.org.conf
services apache2 restart

Configuration de l'interface une fois connecté en admin

Application settings

Aller dans Settings → Application settings

Application URL

Taux de change des devises

Dans Préférences > Taux de change des devises (lorsque la langue est changée en français).
Ensuite cliquer sur “Changer la monnaie de référence” puis choisir EUR pour l'euro.

Installation des différents plugins

Configuration Gantt :
Aller dans Préférences → Paramètres du diagramme de Gantt
Sélectionner “trier les tâches par date”.

Configuration Jabber :
Aller dans Préférences → Intégrations
Rentrer le nom du server XMPP, le nom de domaine de Jabber et le pseudo Jabber pour le kanboard.

Procédure de mise à jour

Sauvegarde des données :

mkdir -p /var/backups/kanban/$(date +%F)/data
cp -r /var/www/kanban.chapril.org/data/ /var/backups/kanban/$(date +%F)/data
mkdir -p /var/backups/kanban/$(date +%F)/plugins
cp -r /var/www/kanban.chapril.org/plugins/ /var/backups/kanban/$(date +%F)/plugins
cp /var/www/kanban.chapril.org/config.php /var/backups/kanban/$(date +%F)/config.php
# data sql
mkdir -p /var/backups/kanban/$(date +%F)/sql
mysqldump -u database_user -password database_name > /var/backups/kanban/$(date +%F)/sql/dump.sql

Téléchargement de la nouvelle version :

version= last_version
mkdir -p /srv/kanban.chapril.org/working_directory
cd /srv/kanban.chapril.org/working_directory
wget https://github.com/kanboard/kanboard/archive/v${version}.tar.gz
mkdir /srv/kanban.chapril.org/working_directory/kanban.chapril.org.new
tar xzvf v${version}.tar.gz -C /srv/kanban.chapril.org/working_directory/kanban.chapril.org.new --strip-components=1

Copies des données sauvegardés :

cp -rf /var/backups/kanban/$(date +%F)/data/ /srv/kanban.chapril.org/kanban.chapril.org.new/working_directory/data
cp -rf /var/backups/kanban/$(date +%F)/plugins/ /srv/kanban.chapril.org/working_directory/kanban.chapril.org.new/plugins
cp -rf /var/backups/kanban/$(date +%F)/config.php /srv/kanban.chapril.org/working_directory/kanban.chapril.org.new/config.php
cp -r /var/www/kanban.chapril.org /srv/kanban.chapril.org/working_directory/$(date +%F)_kanban.chapril.org.old

Mise en place de la nouvelle version :

rm -rf /var/www/kanban.chapril.org
mv /srv/kanban.chapril.org/working_directory/kanban.chapril.org.new /var/www/kanban.chapril.org

Gestion des droits :

chown -R www-data:www-data ug+w /var/www/kanban.chapril.org/data/
chmod ug+w /var/www/kanban.chapril.org/data/

chown -R www-data:www-data /var/www/kanban.chapril.org/plugins/
chmod ug+w /var/www/kanban.chapril.org/plugins/

mkdir /var/www/kanban.chapril.org/upload_tmp_dir/
chown -R www-data:www-data /var/www/kanban.chapril.org/upload_tmp_dir/