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 :
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 :
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.