Image Image Image Image Image
Scroll to Top

To Top

Le Blog - Ruby on Rails, Javascript, Wordpress & more

Déplacer WordPress depuis un VPS vers un hébergement partagé

J’ai récemment eu à déplacer un WordPress depuis un serveur virtuel privé chez linode vers un hébergement partagé chez 1&1.

Comme pour toute migration classique, j’ai commencé par récupérer un export de ma base de données depuis mon linode.

Je versionne WordPress avec git selon les principes très bien décrits dans l’ article : Comment bien versionner son site WordPress avec git. Ainsi j’étais très heureux de découvrir que les offres d’hébergement dédié 1&1 basiques offrent un accès ssh et permettent l’utilisation de git. J’ai donc commencé par me connecter à mon espace et ai simplement récupéré le code WordPress + thème avec :

Le repository git versionnant WordPress ne comprend pas les dossiers uploads  et plugins , il faut donc récupérer le contenu de ces dossiers sur le linode et les copier sur le serveur 1&1 si on ne veut pas avoir à réinstaller les modules et à retransférer les divers fichiers médias.

Finalement, il ne nous reste plus qu’à impoter la base de données via le phpmyadmin de 1&1 et le tour est joué ! Le site WordPresss est en ligne. Si vous changez d’url, pensez à mettre à faire les modifications nécessaires dans la configuration de WordPress.

Prenez le contrôle de vos mesures de statistiques web avec Piwik

On 04, Oct 2015 | No Comments | In Uncategorized | By François Koessler

Piwik est un logiciel libre et open source de mesure de statistiques web, conçu pour être une alternative à Google Analytics. Avec Piwik, vous êtes l’unique propriétaire de vos données d’analytics. Celles-ci sont stockées sur votre propre serveur et ne sont accessibles que par vous. Cet article vous guide dans l’installation de piwik sur un sous-domaine Apache servi par un serveur Ubuntu 14.04.

Tout d’abord, téléchargez la dernière version de piwik à partir de la page de téléchargement officielle : https://piwik.org/download/

Envoyez le fichier zip sur votre serveur à l’aide d’un client ftp ou de l’utilitaire scp :

Décompressez le fichier et déplacez le dossier résultant dans votre répertoire Apache. Ajustez les permissions sur le dossier piwik :

Afin de servir piwik depuis le sous domaine piwik.mondomaine.fr, il faut créer un VirtualHost Apache. Créez le fichier /etc/apache2/sites-available/piwik.conf et renseignez la configuration suivante :

N’oubliez pas de créer un A record pointant vers votre sous-domaine piwik dans la configuration DNS de votre domaine.

Avant de vous connecter à votre sous-domaine piwik, créez la base de données utilisée par l’application ainsi que l’utilisateur MySQL associé :

Il ne reste maintenant plus qu’à vous connecter à l’aide de votre navigateur web à votre sous domaine piwik et de suivre les consignes de l’installateur : renseignez les informations sur la base de données nouvellement crée, créez un utilisateur administrateur pour l’application d’analytics et récupérez le code de suivi Javascript.

Finalement, il ne vous reste plus qu’à intégrer ce code de suivi au site web dont vous souhaitez mesurer le trafic. Il est recommandé d’inclure ce code dans le pied de page du site afin de ne pas bloquer le chargement de vos pages. Piwik est un outil très puissant, bon analytics !

 

Création d’un produit packagé dans Magento

On 01, Oct 2015 | No Comments | In Magento | By François Koessler

Il est fréquent que les propriétaires de boutique en ligne souhaitent automatiser la création de produits dans Magento à partir de sources externes telles qu’une solution d’encaissement ou un logiciel de gestion de stock. La création de produits packagés ou produits bundle peut s’avérer particulièrement ardue, c’est pourquoi je partage ici ce code dûment testé et fonctionnel sous Magento 1.8.1 CE.

 

Améliorer les performances de Magento en optimisant la table core_url_rewrite

On 01, Oct 2015 | No Comments | In Magento | By François Koessler

Magento enregistre toutes les redirections d’url vers les pages catégories et les pages produits dans la table core_url_rewrite. Dans certains cas cette table peut devenir énorme, notamment si votre boutique contient plus de 10000 produits ou si vous avez effectué de nombreuses modifications sur les noms de vos catégories ou de vos produits. Dans le cas d’une boutique en particulier, je me suis rendu compte que cette table avait grossi jusqu’à peser 3GB, avec pour résultat un impact très négatif sur les performances du site. Entre autres, l’index de réécriture d’url du catalogue n’arrivait plus à s’exécuter jusqu’à complétion, certains produits étant alors inaccessibles aux acheteurs potentiels visitant le site, et le temps de réponse du serveur pour les pages catégorie et les pages produits était excessivement long, aux alentours de 2 secondes, ce qui de même a un impact très négatif sur le taux de conversion d’une boutique en ligne.

Si vous remarquez de tels soucis sur votre boutique Magento, voici les étapes qui m’ont permis de réduire la taille de la table core_url_rewrite de 3GB à 30MB, avec comme effet secondaire de réduire le temps de réponse moyen pour des pages catégorie et produits de 300% ! Votre catalogue sera beaucoup plus agréable à consulter et vos clients vous le rendront bien en achetant plus !

 

Étape 1 : Modifiez le modèle Mage_Catalog_Model_Url

Attention lors de toute modification sur les fonctionnalités de Magento, il ne s’agit pas d’effectuer les modifications directement dans les fichier core de Magento mais d’étendre les fichiers existants à l’aide d’un module, comme décrit dans la documentation Magento. Ainsi, il sera possible de mettre à jour Magento sans risquer de perdre toutes les fonctionnalités propres au magasin.

Dans la méthode getProductRequestPath , remplacez :

par :

 

Etape 2 : Videz la table core_url_rewrite

Attention, vous perdrez définitivement vos réécritures d’url personnalisées après avoir vidé la table core_url_rewrite, ce qui peut avoir un impact négatif sur votre SEO. Si vous n’êtes pas certain de la meilleure manière de gérer cette étape, je vous recommande de louer les services d’un expert SEO.

Sur votre serveur, exécutez les commandes SQL :

 

Etape 3 : Ré-indexez et videz le cache

 

 

Configurer Postfix pour envoyer vos emails via 1and1

Mes emails sont hébergés chez le fournisseur de nom de domaine 1and1, et je voulais être capable d’envoyer des emails depuis mon serveur web perso sans avoir à passer par les serveur de mail 1and1. Cela permet entre autre aux applications web installées sur mon serveur de pouvoir envoyer des emails depuis l’adresse de mon nom de domaine et réduit la probabilité de ces emails d’être considérés comme du spam. Cet article décrit comment configurer Postfix.

Installation des paquets

Configuration de Postfix

La configuration de Postfix se fait dans le fichier /etc/postfix/main.cf . Les paramètres commançant par smtp_ concernent l’envoi d’email, ceux commançant par smtpd_ concernent la réception d’emails. Notre serveur mail Postfix n’a pas vocation à réceptionner les emails, ce sont les serveurs mail de 1and1 qui se chargent de cela. Nous désactivons donc les fonctionnalités de réception d’email. Je vous présente la configuration de Postfix section par section, tout se fait dans le fichier de configuration /etc/postfix/main.cf.

 

Rapports d’erreur

Des rapports d’erreur seront envoyés à l’adresse postfix-errors@mondomaine.fr lorsque Postfix rencontre un problème.

 

Activer l’envoi d’emails et désactiver la réception

 

SSL

Activation de SSL :

 

Authentication

Nous voulons nous authentifier chez les serveurs de 1and1 pour l’envoi d’emails :

 

Création du fichier contenant le mot de passe

La ligne de configuration « smtp_sasl_password_maps » mentionne un fichier qui contient l’identifiant et le mot de passe utilisé pour vous authentifier chez 1and1. Afin de générer ce fichier, commencez par exécuter les commandes :

Renseignez l’utilisateur et le mot de passe :

L’adresse nom@mondomaine.fr doit être une adresse mail valide que vous avez crée chez 1and1 suivie du password associé à cette adresse email. Une fois authentifié, vous pouvez envoyer des emails à partir d’adresses différentes.

Enregistrez le fichier et cryptez le à l’aide de la commande :

Vérifiez votre configuration Postfix :

Redémarrez Postfix :

 

Tester l’envoi de mail

Vérifiez que l’envoi de mail fonctionne correctement à l’aide de la commande :

Et vérifiez dans le fichier de log /var/log/mail.log  que tout s’est bien passé.

Surveiller un serveur distant en temps réel avec Nagios

Nagios est une solution open source permettant de surveiller des services tournant sur des serveurs distants. Il permet la création et l’envoi automatisé d’alertes lorsqu’un problème survient sur un service, par exemple lorsque votre serveur web n’est plus accessible en ligne ou lorsque le disque dur de votre serveur est rempli au dessus d’un certain seuil. Cet article vous guide dans l’installation et la configuration de Nagios 4 sur un serveur Ubuntu 14.04.

Installation de Nagios

Pour fonctionner, Nagios a besoin de l’utilisateur nagios et du groupe nagcmd qui éxecuteront les processus Nagios. Créez l’utilisateur et le groupe à l’aide des commandes :

Puisque nous installons Nagios à partir du code source et non à partir des paquets Ubuntu afin d’avoir la version la plus récente, nous devons installer manuellement les dépendances de Nagios :

Téléchargez le code source de Nagios. Pour ce faire, rendez vous sur la page de download de Nagios, cliquez le lien « Skip to download » et copiez le lien vers la dernière version stable de Nagios. A l’heure ou j’ecris cet article, il s’agit de Nagios version 4.1.1.

Puis téléchargez Nagios à l’aide de l’utilitaire curl :

Extrayez l’archive Nagios puis déplacez vous dans le répertoire contenant l’extraction :

Avant de compiler l’éxécutable Nagios, nous devons le configurer. Si vous souhaitez utiliser Nagios avec postfix pour l’envoi d’email, ajoutez l’option  -–with-mail=/usr/sbin/sendmail  à la commande suivante :

Compilez et installez Nagios ainsi que les scripts d’initialisation et les exemples de fichier de configuration :

Afin de permettre l’éxécution des commandes Nagios à partir de l’interface web, nous devons ajouter l’utilisateur Apache www-data au groupe nagcmd à l’aide de la commande :

 

Installation de Nagios Plugins

Trouvez la dernière version de Nagios Plugins depuis la page de téléchargement : http://nagios-plugins.org/download/. A l’heure ou j’écris cet article il s’agit de Nagios Plugins 2.1.1. Téléchargez Nagios Plugins à l’aide de l’utilitaire curl :

Extrayez l’archive puis déplacez vous dans le répertoire contenant l’extraction :

Configurez Nagios Plugins, compilez puis installez :

 

Installation de NRPE

A nouveau, déterminez quelle est la dernière version stable de NRPE depuis la page de download : http://sourceforge.net/projects/nagios/files/nrpe-2.x/. A l’heure ou j’écris cet article, il s’agit de NRPE version 2.15. Téléchargez à l’aide de l’utilitaire curl :

Extrayez l’archive puis déplacez vous dans le répertoire contenant l’extraction :

Configurez NRPE, compilez et installez à l’aide des commandes :

Ouvrez le script de démarrage de xinetd  /etc/xinetd.d/nrpe  et modifiez la ligne contenant l’instruction only-from  en ajoutant l’adresse IP de votre serveur Nagios :

Enregistrez et quittez.

Redémarrez le service xinetd afin de lancer NRPE:

 

Configuration de Nagios

Ouvrez le fichier de configuration /usr/local/nagios/etc/nagios.cfg . Trouvez et décommentez la ligne suivante en supprimant le caractère ‘#’ :

Sauvegardez puis quittez.

Créez le dossier qui contiendra la configuration de chaque serveur que vous souhaitez surveiller :

Ouvrez le fichier de configuration de Nagios contacts afin d’y renseigner l’adresse email qui recevra les alertes Nagios :

Trouvez la directive email et remplacez l’adresse email avec votre propre adresse :

Enregistrez et quittez.

Finalement, nous allons ajouter la commande check_nrpe à la configuration de Nagios afin de pouvoir l’utiliser. Ouvrez le fichier de configuration Nagios contenant les commandes disponibles :

Ajoutez les lignes suivantes a la fin du fichier de configuration :

 

Configuration d’Apache

Nous allons maintenant configurer Apache afin de servir l’interface web de Nagios sur un sous-domaine du type nagios.mondomaine.fr. Pour commencer, activez les modules rewrite et mod_cgi d’Apache :

Créez un utilisateur à l’aide de l’utilitaire htpasswd ayant accès a l’interface web de Nagios :

Je choisis de modifier le VirtualHost Apache afin de servir l’interface web Nagios au sous domaine : nagios.mondomaine.fr. Voici le contenu du fichier de configuration du VirtualHost Apache /etc/apache2/sites-available/nagios.conf :

Activez le VirtualHost à l’aide de la commande :

Démarrez Nagios et redémarrez Apache :

Vous avez désormais accès a l’interface web de Nagios ! Rendez-vous à l’url nagios.mondomaine.fr.
Dernier point, afin que Nagios se lance automatiquement au démarrage de votre serveur, exécutez la commande suivante :

 

Ajout d’un hôte distant à NRPE

Dans cette section, nous allons ajouter un serveur distant à Nagios afin de le surveiller. Répétez cette étape pour chaque nouveau serveur que vous souhaitez monitorer avec Nagios.

Sur ce serveur, commencez par mettre à jour les paquets puis installez Nagios Plugins ainsi que NRPE :

Mettez à jour la configuration de NRPE afin d’autoriser le serveur de monitoring a récupérer les informations nécessaires :

Trouvez la ligne contenant l’option allowed_hosts et ajoutez-y l’IP de votre serveur de monitoring :

Enregistrez et quittez.

Editez le fichier de configuration  /etc/nagios/nrpe.cfg  :

C’est aussi dans ce fichier de configuration que vous allez allez définir les commandes éxécutées à distance par Nagios, je m’explique à l’aide d’un exemple : je veux surveiller l’espace disque libre sur la partition /home de mon serveur distant. J’ajoute alors la configuration suivante dans le fichier nrpe.cfg :

Je peux alors définir le service suivant sur mon serveur de monitoring dans le fichier myhost.cfg que nous allons créer plus bas :

Je donne ici à titre d’exemple quelques commandes définies dans le fichier nrpe.cfg sur un serveur distant surveillé avec nagios :

N’oubliez pas de redémarrer NRPE après toute modification apportée à ce fichier de configuration :

 

Ajout du nouvel hôte distant dans Nagios

Connectez vous à nouveau sur votre serveur de monitoring et créez un nouveau fichier de configuration dans le dossier /usr/local/nagios/etc/servers/  . Remplacez yourhost par le nom du serveur que vous voulez monitorer :

Définissez l’hôte ainsi que les services que vous désirez surveiller sur cet hôte distant.

 

 

 

 

 

Monitorer des serveurs distants avec Munin

Munin est un outil open source de surveillance permettant l’analyse des variations d’utilisation des ressources serveurs et permettant de répondre aux problematiques de type « qu’est ce qui vient de se passer sur mon serveur, pourquoi cette chute des performances de mon serveur ? ». Il est conçu pour être plug and play. Une installation par défaut fournit un grand nombre de graphiques intéressants. Cet article vous guide dans l’installation de Munin version 2.0.19-3 sur un serveur Ubuntu 14.04.

Munin s’installe sur le serveur de monitoring qui servira les graphiques permettant l’analyse de l’utilisation des ressources au travers d’une interface web. L’utilitaire munin-node s’installe sur les serveurs à surveiller et permet la connexion à l’outil de monitoring munin.

Les graphiques générés par Munin seront servi par le serveur web Apache, soyez donc certains d’avoir Apache installé. Vous pouvez vérifier avec la commande : apache2 -v

Si Apache n’est pas installé, vous pouvez l’installer à l’aide de la commande :

 

Installation de Munin

Munin peut être installé à l’aide du gestionnaire de paquet Ubuntu apt-get. Commencez par installer Munin sur le serveur de monitoring :

 

Configuration de Munin

Ouvrez le fichier de configuration de munin /etc/munin/munin.conf  et payez une attention particulière aux lignes de configuration suivantes :

Pour ma part, je choisis de modifier l’emplacement des fichiers html afin d’avoir munin au même endroit que les autres applications web de mon serveur :

Je modifie aussi le « simple host tree » un peu plus bas dans le fichier de configuration et remplace « localhost.localdomain » par « mondomain.fr ». Enregistrez le fichier et fermez le.

Par default, munin est servi a l’url www.mondomaine.fr/munin. Si vous souhaitez fonctionner de cette manière, il vous suffit de garder la configuration Apache telle quelle dans /etc/munin/apache.conf. Pour ma part, je souhaite servir les pages de graphique munin à partir du sous-domaine munin.mondomaine.fr. Je désactive donc la configuration Apache par défaut de munin a l’aide de la commande sudo a2disconf munin.

Je crée ensuite le VirtualHost Apache afin de servir les graphiques munin à l’url munin.mondomaine.fr : sudo vim /etc/apache/sites-available/munin.conf . Je choisis de protéger l’accès à cette page a l’aide du module Apache mod_auth_basic, libre à vous de choisir une autre solution d’authentification si vous le souhaitez. Afin de vous aider dans votre choix, vous pouvez vous référer à cette page : http://www.yolinux.com/TUTORIALS/LinuxTutorialApacheAddingLoginSiteProtection.html

Ne pas oublier de créer le fichier contenant les login et mots de passe permettant d’accéder à la page à l’aide de l’utilitaire htpasswd. Vous pouvez installer cet utilitaire à l’aide de la commande :

Puis générez le fichier contenant les identifiants de connexion :

Vous pouvez desormais déjà visionner les graphiques d’utilisation des ressources de votre serveur de monitoring à partir de l’adresse munin.mondomaine.fr

Installation et configuration de munin-node

Nous allons maintenant installer et configurer l’utilitaire munin-node sur le serveur distant que nous souhaitons surveiller. munin-node est l’utilitaire qui enverra les informations d’utilisation des ressources vers Munin installé sur notre serveur de monitoring.

Editez le fichier de configuration /etc/munin/munin-node.conf  et recherchez la section contenant l’instruction « allow ^127\.0\.0\.1$ ». Remplacez cette adresse IP par celle de votre serveur de monitoring. Sauvegardez et fermez le fichier puis redémarrez l’utilitaire munin-node à l’aide de la commande :

Finalement, il nous reste à ajouter ce serveur dans la liste des serveurs à monitorer. Retournez sur votre serveur de monitoring ayant Munin d’installé et éditez le fichier /etc/munin/munin.conf. Recherchez la section contenant les lignes suivantes :

Copiez collez ces lignes puis remplacez avec les informations concernant le serveur à surveiller :

Enregistrez et refermez le fichier, puis redemarrez Apache afin de recharger la configuration : sudo service apache2 reload .

Vous pouvez maintenant visualiser les graphiques d’utilisation des ressources de votre serveur distant. Libre à vous d’ajouter plus de serveurs à surveiller.

 

Déploiement automatisé avec Capistrano, Git et RVM

Cet article décrit la procédure de mise en place de Capistrano afin d’automatiser le déploiement d’une application Ruby on Rails 4.2.3 versionnée avec git sur un serveur utilisant RVM. Ainsi le projet Rails est développé en local sur une ou plusieurs machine, est versionné avec git et est déployé de manière automatisée sur le serveur de test / production sans avoir besoin de se connecter au serveur.

Avant de commencer, mettez à jour RVM, ruby ainsi que Rails sur votre machine locale :

A l’heure où j’écris cet article, il s’agit de ruby-2.2.1 et Rails 4.2.3

Création du projet en local

Créez un nouveau projet sur votre machine locale ou alternativement clonez un projet existant depuis github :

Créez les fichiers .ruby-version et .ruby-gemset à la racine du projet Rails qui indiquent à RVM avec quelle version de ruby et avec quel gemset vous travaillez :

Création des repository git en local et sur le serveur

Créez le repository sur le serveur :

Faites de même sur votre machine locale :

 

Mise en place de Capistrano

Capistrano s’installe sur votre machine locale à l’aide de bundler. Ajoutez les gems suivantes dans votre Gemfile :

Installez les gems :

Afin de configurer Capistrano, exécutez la commande cap install  qui va générer les fichiers de configuration Capistrano config/deploy.rb et  config/deploy/production.rb . Ceux-ci contiennent les valeurs de configuration de base. Parcourez ces fichiers et faites les modifications nécessaires, par exemple renseignez l’url du repository git utilisé pour versionner votre application. A titre d’exemple, je partage le contenu de ces fichiers tel qu’utilisés dans un de mes projets :

Avant de pouvoir déployer votre application, pensez à créer le répertoire qui contiendra les fichiers ainsi que sa base de données telle que définie dans le fichier config/database.yml sur le serveur de production.

Vous pouvez alors déployer l’application à l’aide de la commande :

Il ne vous reste plus qu’a configurer votre serveur web (Apache, Nginx) afin de servir l’application.

Installation de Gitlab sous Ubuntu avec Apache

On 27, Août 2015 | 2 Comments | In Apache, Gitlab, Ubuntu | By François Koessler

Avant toutes choses, mettre à jour les paquets Ubuntu et installer les dépendences de Gitlab :

 

Installation de Gitlab

D’après la documentation officielle, téléchargez et installez le package Gitlab Omnibus. Rendez-vous sur la page de documentation afin d’avoir le lien vers la version la plus récente de Gitlab.

Une fois le logiciel installé, éditez le fichier de configuration /etc/gitlab/gitlab.rb  et renseignez la valeur du champs external_url  avec : http://mydomain.fr:8080

Exécutez le script

D’ores et déjà, Gitlab doit fonctionner à l’url mydomain.fr avec le port 8080. Nous allons maintenant configurer Apache pour qu’il serve de proxy entre Gitlab et une url de type gitlab.mydomain.fr. Pour ce faire, nous devons activer le module proxy d’Apache :

Finalement, il nous reste à créer le VirtualHost d’Apache qui servira Gitlab. Créez un nouveau fichier /etc/apache2/sites-available/gitlab.conf et renseigner les valeurs suivantes :

Activez le VirtualHost, redémarrez Apache.

Attention, afin que Gitlab soit accessible à l’url http://gitlab.mondomaine.fr , n’oubliez pas d’activer le sous-domaine gitlab dans votre gestionnaire DNS.

Vous pouvez maintenant vous connecter avec les identifiants : root / 5iveL!fe

Javascript et les API Google Maps et Bing Maps

Dans ce premier article du blog, je vous présente un exemple de travail avec Javascript et les API de Google Maps et Bing Maps. L’idée étant de vous familiariser avec les méthodes basiques de ces API respectives, bien pratiques dès qu’on a besoin de travailler avec des cartes dynamiques sur le web.

Pour la petite histoire, l’opération en question a été réalisée sur le site WordPress MyChinaRoots visité par de nombreux chinois et fonctionnant avec le thème Navigator dont la carte Google est un élément central. Problématique étant donné que les services Google sont bloqués en Chine, les internautes chinois attendant vainement le chargement de la page.

Passons maintenant à l’aspect technique : En inspectant le fichier index.php à la racine du thème, nous remarquons qu’il charge le template part-map_index.php. Celui-ci instancie la carte Google, crée les marqueurs, etc à l’aide de l’excellente librairie GMap3 pour l’interface avec l’API de Google Maps. Nous allons modifier le fichier index.php et charger un template alternatif part-bing_maps_index.php qui utilisera Bing Maps au lieu de Google Maps pour les internautes en provenance de Chine. Notez la dépendance au plugin PepakIpToCountry pour déterminer le pays en fonction de l’adresse IP mais vous êtes libres d’utiliser la librairie de votre choix.

Vous l’avez compris, il vous reste maintenant à implémenter le template part-bing_maps_index.php. Le but n’étant pas de divulguer le code du thème commercial Navigator, je ne présenterai ici que les bouts de code spécifiques utilisant les API Google et Bing Maps.

 

Création de la carte

Google Maps

Bing Maps

Résultat

Initialisation de la carte

Initialisation de la carte

Initialisation de la carte

Initialisation de la carte

 

Tracer les contours de la Chine

 

Google Maps

Bing Maps

 

Résultat

Tracé du contour de la China

Tracé du contour de la China

Tracé du contour de la China

Tracé du contour de la China

 

Ajouter des marqueurs

 

Google Maps

Bing Maps

 

Résultat

Ajout des marqueurs

Ajout des marqueurs

Ajout des marqueurs

Ajout des marqueurs

 

Tracer les polylines

 

Les polylines à dessiner sont enregistrées dans le tableau path_array.

Google Maps

Bing Maps

Résultat

Tracé des polylines

Tracé des polylines

Tracé des polylines

Tracé des polylines

 

Contrôler le zoom

 

Google Maps

Bing Maps

 

Changer le type de terrain de la carte

 

Google Maps

Bing Maps

 


 

En espérant que ces petits bouts de codes pourront vous êtes utiles, je vous souhaite un bon développement !