Comment installer le logiciel de gestion de projet Kanboard sur CentOS 8

Kanboard est un logiciel de gestion de projet open-source qui t’aide à gérer tes projets et à visualiser ton flux de travail. Il utilise la méthodologie Kanban et est spécialement conçu pour les petites équipes qui privilégient le minimalisme et la simplicité. Kanban fournit une interface Web simple et facile à utiliser qui te permet de gérer ton projet via un navigateur Web. Tu peux aussi intégrer Kanban à des services externes à l’aide des plugins.

Dans ce tutoriel, nous allons te montrer comment installer Kanban avec Nginx et Let’s Encrypt SSL sur CentOS 8.

Conditions préalables

  • Un serveur exécutant CentOS 8.
  • Un nom de domaine valide pointé avec l’IP de ton serveur.
  • Un mot de passe root est configuré sur ton serveur.

Installer le serveur LEMP

Tout d’abord, tu dois installer Nginx, MariaDB, PHP et d’autres extensions PHP sur ton serveur. Tu peux tous les installer avec la commande suivante :

dnf install nginx mariadb-server php php-fpm php-mbstring php-cli php-json php-opcache php-zip php-xml php-gd php-ldap php-mysqli php-sqlite3 php-json php-dom -y

Une fois que tous les paquets sont installés, démarre le service Nginx, PHP-FPM et MariaDB et active leur démarrage au redémarrage du système avec la commande suivante :

systemctl start mariadb
systemctl enable mariadb
systemctl start nginx
systemctl start php-fpm
systemctl enable nginx
systemctl enable php-fpm

Ensuite, modifie le fichier de configuration de PHP-FPM et change l’utilisateur et le groupe d’apache en nginx.

nano /etc/php-fpm.d/www.conf

Change les lignes suivantes :

user = nginx
group = nginx

Enregistre et ferme le fichier puis redémarre le service PHP-FPM pour appliquer les modifications :

systemctl restart php-fpm

Une fois que tu as terminé, tu peux passer à l’étape suivante.

Crée une base de données pour Kanban

Kanban utilise SQLite et MariaDB comme backend de base de données. Tu devras donc créer une base de données et un utilisateur pour Kanban.

Tout d’abord, connecte-toi à MariaDB à l’aide de la commande suivante :

mysql

Une fois connecté, crée une base de données et un utilisateur avec la commande suivante :

MariaDB [(none)]> CREATE DATABASE kanboard CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
MariaDB [(none)]> GRANT ALL PRIVILEGES ON kanboard.* TO 'kanboard'@'localhost' IDENTIFIED BY 'password';

Ensuite, vide les privilèges et sors de MariaDB avec la commande suivante :

MariaDB [(none)]> FLUSH PRIVILEGES;
MariaDB [(none)]> EXIT;

Une fois la base de données et l’utilisateur créés, tu peux passer à l’étape suivante.

Télécharge Kanban

Tout d’abord, tu dois télécharger la dernière version de Kanban depuis le dépôt Git Hub. Tu peux la télécharger avec la commande suivante :

wget https://github.com/kanboard/kanboard/archive/v1.2.18.tar.gz

Une fois le téléchargement terminé, extrais le fichier téléchargé avec la commande suivante :

tar -xvzf v1.2.18.tar.gz

Ensuite, déplace le répertoire extrait vers le répertoire racine de Nginx web avec la commande suivante :

mv kanboard-1.2.18 /var/www/html/kanboard

Ensuite, modifie le répertoire à la racine web de Nginx et copie le fichier de configuration type :

cd /var/www/html/kanboard
cp config.default.php config.php

Ensuite, modifie le fichier de configuration et définis les paramètres de ta base de données :

nano config.php

Change les lignes suivantes en fonction de ta base de données :

define('DB_DRIVER', 'mysql');

// Mysql/Postgres username
define('DB_USERNAME', 'kanboard');

// Mysql/Postgres password
define('DB_PASSWORD', 'password');

// Mysql/Postgres hostname
define('DB_HOSTNAME', 'localhost');

// Mysql/Postgres database name
define('DB_NAME', 'kanboard');

Sauvegarde et ferme le fichier lorsque tu as terminé. Ensuite, définis la propriété et les permissions avec la commande suivante :

chown -R nginx:nginx /var/www/html/kanboard
chmod -R 775 /var/www/html/kanboard

Une fois que tu as terminé, tu peux passer à l’étape suivante.

Configurer Nginx pour Kanban

Ensuite, tu devras créer un fichier de configuration d’hôte virtuel Nginx pour héberger Kanban. Tu peux le créer avec la commande suivante :

nano /etc/nginx/conf.d/kanboard.conf

Ajoute les lignes suivantes :

server {
        listen       80;
        server_name  kanboard.example.com;
        index        index.php;
        root         /var/www/html/kanboard;
        client_max_body_size 32M;

        location / {
            try_files $uri $uri/ /index.php$is_args$args;
        }

        location ~ \.php$ {
            try_files $uri =404;
            fastcgi_split_path_info ^(.+\.php)(/.+)$;
            fastcgi_pass unix:/run/php-fpm/www.sock;
            fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
            fastcgi_index index.php;
            include fastcgi_params;
        }

        location ~* ^.+\.(log|sqlite)$ {
            return 404;
        }

        location ~ /\.ht {
            return 404;
        }

        location ~* ^.+\.(ico|jpg|gif|png|css|js|svg|eot|ttf|woff|woff2|otf)$ {
            log_not_found off;
            expires 7d;
            etag on;
        }

        gzip on;
        gzip_comp_level 3;
        gzip_disable "msie6";
        gzip_vary on;
        gzip_types
            text/javascript
            application/javascript
            application/json
            text/xml
            application/xml
            application/rss+xml
            text/css
            text/plain;
    }

Sauvegarde et ferme le fichier lorsque tu as terminé. Ensuite, vérifie que Nginx n’a pas d’erreur de syntaxe avec la commande suivante :

nginx -t

Tu devrais voir la sortie suivante :

nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

Enfin, redémarre le service Nginx pour appliquer les modifications :

systemctl restart nginx

À ce stade, Nginx est configuré pour servir kanban. Tu peux maintenant procéder à l’accès au tableau de bord kanban.

Configurer SELinux et le pare-feu

Par défaut, SELinux est activé dans CentOS 8. Tu devras donc configurer le contexte SELinux pour Kanban. Tu peux le configurer avec la commande suivante :

setsebool httpd_can_network_connect on -P
chcon -R -u system_u -t httpd_sys_rw_content_t -r object_r /var/www/html/kanban

Ensuite, autorise les ports 80 et 443 à travers le firewalld avec la commande suivante :

firewall-cmd --permanent --add-service=http
firewall-cmd --permanent --add-service=https
firewall-cmd --reload

Une fois que tu as terminé, tu peux passer à l’étape suivante.

Accède au tableau de bord de Kanban

Maintenant, ouvre ton navigateur Web et accède au tableau de bord kanban en utilisant l’URL http://kanban.example.com. Tu seras

redirigé vers la page de connexion de l’administrateur de Kanban :

Connexion à Kanboard

Indique le nom d’utilisateur et le mot de passe par défaut comme admin / admin et clique sur le boutonSe connecter. Tu devrais voir le tableau de bord Kanban sur la page suivante :

Tableau de bord Kanboard

Sécuriser Kanban avec Let’s Encrypt SSL

Ensuite, tu devras installer l’utilitaire Certbot dans ton système pour télécharger et installer Let’s Encrypt SSL pour le domaine Let’s Chat.

Tu peux installer le client Certbot avec la commande suivante :

wget https://dl.eff.org/certbot-auto
mv certbot-auto /usr/local/bin/certbot-auto
chown root /usr/local/bin/certbot-auto
chmod 0755 /usr/local/bin/certbot-auto

Ensuite, obtiens et installe un certificat SSL pour ton domaine Let’s avec la commande suivante :

certbot-auto --nginx -d kanban.example.com

La commande ci-dessus va d’abord installer toutes les dépendances requises sur ton serveur. Une fois installé, il te sera demandé de fournir une adresse e-mail et d’accepter les conditions de service comme indiqué ci-dessous :

Saving debug log to /var/log/letsencrypt/letsencrypt.log
Plugins selected: Authenticator nginx, Installer nginx
Enter email address (used for urgent renewal and security notices) (Enter 'c' to
cancel): [email protected]

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Please read the Terms of Service at
https://letsencrypt.org/documents/LE-SA-v1.2-November-15-2017.pdf. You must
agree in order to register with the ACME server at
https://acme-v02.api.letsencrypt.org/directory
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
(A)gree/(C)ancel: A

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Would you be willing to share your email address with the Electronic Frontier
Foundation, a founding partner of the Let's Encrypt project and the non-profit
organization that develops Certbot? We'd like to send you email about our work
encrypting the web, EFF news, campaigns, and ways to support digital freedom.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
(Y)es/(N)o: Y

Obtaining a new certificate
Performing the following challenges:
http-01 challenge for kanban.example.com
Waiting for verification...
Cleaning up challenges
Deploying Certificate to VirtualHost /etc/nginx/conf.d/kanban.conf

Ensuite, choisis de rediriger ou non le trafic HTTP vers HTTPS comme indiqué ci-dessous :

Please choose whether or not to redirect HTTP traffic to HTTPS, removing HTTP access.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
1: No redirect - Make no further changes to the webserver configuration.
2: Redirect - Make all requests redirect to secure HTTPS access. Choose this for
new sites, or if you're confident your site works on HTTPS. You can undo this
change by editing your web server's configuration.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Select the appropriate number [1-2] then [enter] (press 'c' to cancel): 2

Tape 2 et appuie sur Entrée pour continuer. Une fois l’installation terminée, tu devrais voir le résultat suivant :

Redirecting all traffic on port 80 to ssl in /etc/nginx/conf.d/kanban.conf

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Congratulations! You have successfully enabled https://kanban.example.com

You should test your configuration at:
https://www.ssllabs.com/ssltest/analyze.html?d=kanban.example.com
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

IMPORTANT NOTES:
 - Congratulations! Your certificate and chain have been saved at:
   /etc/letsencrypt/live/kanban.example.com/fullchain.pem
   Your key file has been saved at:
   /etc/letsencrypt/live/kanban.example.com/privkey.pem
   Your cert will expire on 2021-04-2. To obtain a new or tweaked
   version of this certificate in the future, simply run certbot-auto
   again with the "certonly" option. To non-interactively renew *all*
   of your certificates, run "certbot-auto renew"
 - If you like Certbot, please consider supporting our work by:

   Donating to ISRG / Let's Encrypt:   https://letsencrypt.org/donate
   Donating to EFF:                    https://eff.org/donate-le

Tu peux maintenant accéder à ton Kanban en toute sécurité en utilisant l’URL https://kanban.example.com.

Conclusion

Félicitations ! Tu as réussi à installer Kanban avec Nginx et Let’s Encrypt SSL sur CentOS 8. Tu peux maintenant mettre en œuvre Kanban dans l’environnement de développement et commencer à travailler ensemble. N’hésite pas à me demander si tu as des questions.

Vous aimerez aussi...