Auteur/autrice : Ruben FARIA

  • Mapper un lecteur réseau par GPO sous Windows server

    Mapper un lecteur réseau par GPO sous Windows server

    Dans cet article nous verrons comment mapper un lecteur réseau par GPO sous Windows server.

    Nous commencerons par créer un lecteur avec différents droits utilisateurs, puis nous verrons comment monter automatiquement ce lecteur.

    Sommaire

    Pourquoi automatiser le montage des lecteurs ?

    L’automatisation du montage des lecteurs élimine le risque d’erreurs humaines. Lorsqu’un processus est manuel, il est facile d’oublier une étape, de se tromper dans un chemin de fichier ou d’utiliser la mauvaise lettre de lecteur.

    Un script ou une politique de groupe (GPO) bien configuré garantit que chaque utilisateur ou chaque système se connecte au bon lecteur, à chaque fois.

    Cela rend les déploiements plus fiables et reproductibles, ce qui est crucial dans un environnement d’entreprise.

    Création des OU à appliquer

    Monsieur Louis LAVANDE arrivant dans le service marketing, a besoin d’un espace réseau.

    Il aimerait que ce dossier soit partagé avec son assistante Madame Lisa LIVRE. Il aimerait pouvoir modifier ce dossier mais que celui-ci soit en lecture seule pour Madame LIVRE

    Nous allons donc créer deux OU qui nous permettrons d’appliquer ses droits, PART_MARKETING_RW (partage marketing read/write) et PART_MARKETING_R.

    Pour l’exercice, les utilisateurs sont déja structurés par pôle de service.

    AD structure par pole

    Nous nous déplaçons donc dans notre OU Marketing et nous créons nos deux groupes.

    nouveau groupe AD

    Les options par défaut peuvant laissées, et nous les nommons comme indiqué ci-dessus ou ci-contre.

    groupe AD créé

    Nous ajoutons Monsieur LAVANDE dans l’OU PART_MARKETING_RW. Puis, nous créons le nouvel utilisateur Lisa LIVRE et nous l’ajoutons dans l’OU PART_MARKETING_R.

    droit sur le lecteur Assistante

    Nos deux utilisateurs sont maintenant configurés, nous allons pouvoir créer le partage.

    Création de l’espace partagé

    A partir du gestionnaire de serveur, nous nous rendons sur service de fichiers et de stockage.

    Puis nous allons sur Partages et nous cliquons sur Tâches > nouveau partage.

    nouveau partage

    Partage SMB rapide > suivant

    On choisit son emplacement, on le nomme.

    nommage lecteur

    On coche activer l’enumeration basée sur l’accès.

    enumeration basee sur acces

    Dans la partie Autorisation, on clique personnaliser les autorisations.

    On va ensuite sur l’onglet partage.

    partage droits marketing

    Ici on modifiera le rôle principal tout le monde, on mettra Monsieur LAVANDE par exemple.

    Puis on rajoutera nos deux groupes l’un avec les droits en modifier et l’autre en lecture.

    partage avec droits

    Suivant puis créer.

    Configuration de la GPO « auto-montage »

    Une fois l’espace partagé créé, nous nous rendons dans outils et gestion des stratégies de groupe depuis le gestionnaire de serveur.

    Nous developons notre arborescence jusqu’a notre pôle MARKETING, puis clic droit et créer un objet GPO dans ce domaine.

    nouvel gpo

    On nomme la nouvelle GPO, par exemple MAP_DRIVE_MARKETING.

    Clic droit sur cette nouvelle GPO et modifier.

    On déroule l’arborescence, Configuration utilisateur > Préférences > Paramètres Windows >Mappage de lecteur.

    mappage de lecteur

    Clic droit sur Mappage de lecteur et nouveau > lecteur mappé.

    On indique l’emplacement, on coche reconnecter. Après l’avoir nommer, on définit une lettre de lecteur.

    configuration de lecteur

    Finalement, on valide.

    Monsieur LAVANDE, à sa prochaine reconnexion, découvrira son nouveau lecteur qu’il pourra modifier et que sa secrétaire pourra consulter.

    Conclusion

    Nous avons vu comment mapper un lecteur réseau par GPO sur windows server.

    Nous avons créé un partage réseau, administré les droits et diffusé le lecteur réseau pour GPO.

    Et finalement, nous avons rendu un utilisateur heureux 🙂

    Source :

  • Windows serveur 2025 sous VirtualBox

    Windows serveur 2025 sous VirtualBox

    Pour changer des containers de Docker, nous allons cette fois-ci, installer un Windows serveur 2025 sous VirtualBox.

    Nous verrons comment configurer virtualbox pour accueillir deux VMs, notre serveur et un client.

    Puis, nous mettrons en place l’annuaire Active Directory, le serveur DNS et le serveur DHCP.

    Finalement, nous verrons comment créer notre première GPO, pour activer un compte admin local sur notre poste client, depuis notre serveur.

    Sommaire :

    VirtualBox

    Windows serveur 2025

    Conclusion

    VirtualBox

    VirtualBox est un logiciel de virtualisation polyvalent à usage général, destiné aux ordinateurs portables, aux ordinateurs de bureau, aux serveurs et à l’utilisation intégrée.

    Il nous permet donc de faire tourner plusieurs OS sur une même machine hôte.

    Installation de VirtualBox

    Vous pouvez télécharger et installer VirtualBox depuis ce lien.

    Une fois ceci fait, nous pouvons créer notre première VM.

    Création et configuration d’une VM

    On commence par cliquer sur le bouton « Nouvelle »

    Nommez votre VM, par exemple Winserveur_2025, puis définissez son emplacement.

    configuration de la VM Windows serveur 2025

    On se déplace ensuite dans la partie Specify virtual hardware, puis on personnalise notre hardware.

    De mon coté, j’ai choisit 4Go de RAM et 2 CPU.

    personnalisation de l'hardware virtuel

    On se déplace ensuite dans la section Specify virtual hard disk, et on renseigne le chemin de sauvegarde de notre disque dur.

    On termine en cliquant sur Terminer.

    Monter l’image d’installation au boot

    On sélectionne notre VM, puis on va dans le menu configuration.

    configuration de la VM

    On descend jusqu’à la partie stockage, on clique sur le lecteur CD, et on choisit l’ISO souhaité.

    selection de l'ISO à boot

    Configuration du réseau des VMs

    Lors de l’installation de virtualBox, une carte réseau virtuelle a été créée sur notre hôte.

    Nous allons utilisé cette passerelle pour que nos vm puissent communiquer avec internet.

    La configuration de cette passerelle peut être effectuée dans le menu latéral réseau et dans l’onglet host-only Networks.

    configuration de la passerelle des VM

    On désactive également le serveur dhcp, on n’en aura pas besoin.

    Une fois cette configuration effectuée, on se déplace dans l’onglet NAT Networks. On va créer un réseau NAT pour nos vm sur la même plage ip que notre passerelle. Puis on désactive le dhcp de ce réseau car c’est notre serveur qui se chargera d’attribuer les IP à nos clients.

    configuration du reseau NAT pour nos VM

    Une fois tout ceci réalisé, on n’oublie pas d’attribuer notre réseau NAT à notre VM.

    attribution du reseau aux VM

    Notre Vm est prête.

    Windows serveur 2025

    Windows Server est une famille de systèmes d’exploitation (OS) développée par Microsoft, spécifiquement conçue pour les serveurs.

    Contrairement aux versions « grand public » de Windows (comme Windows 11), qui sont optimisées pour l’utilisation personnelle et de bureau, Windows Server est bâti pour gérer des infrastructures informatiques d’entreprise.

    Vous pouvez télécharger l’ISO de Windows serveur 2025 : ici. Remplissez le formulaire et cliquez sur Télécharger.

    Installation de Windows serveur 2025

    On n’oublie pas de monter notre ISO au boot de la VM et on lance l’install.

    Ici, rien d’exceptionnel, on suit le process. On choisit l’installation avec l’interface graphique et on définit un mot de passe Administrateur.

    Paramétrage réseau

    Pour commencer, on va configurer le paramétrage réseau. Celà, nous permettra par la suite de faire les mises à jour du système.

    On configure une IP fixe (par exemple sur 192.168.56.2, le subnet : 255.255.255.0), la passerelle c’est la carte réseau virtuelle de notre hôte (par ex: 192.168.56.1).

    Pour le DNS, vous pouvez choisir un DNS externe, ou le votre si vous en hébergez déjà un. On modifiera par la suite ce DNS, lorsque nous aurons activé le rôle DNS de notre serveur.

    configuration ip fixe sous Windows SE 2025 avec dns ext

    On valide et on met à jour le système.

    Fonction DHCP et DNS serveur

    Avant toute chose, nous allons nommer notre serveur.

    Cliquez sur Configurer ce serveur local depuis le tableau de bord du gestionnaire de serveur. Renommez votre serveur. Dans mon exemple, j’ai choisis SRV-AD-GASC-0001 (le type de machine – le rôle – la localité – et le n° du serveur).

    Nous allons maintenant activer la fonction DHCP et DNS serveur.

    Pour celà, cliquez sur Ajouter des rôles et des fonctionalités.

    ajouter_des_roles

    Cliquez sur suivant jusqu’à arriver à Rôles de serveurs, puis cochez serveur DNS et serveur DHCP. Allez jusqu’au bout de l’assistant d’installation.

    Dans la partie latérale, sélectionnez DHCP puis faites un clic droit sur votre serveur. Sélectionnez Gestionnaire DHCP.

    gestionnaire_dhcp

    Développez votre serveur et faites un clique droit sur IPv4, puis sélectionnez nouvelle étendue.

    Donnez lui un doux nom, et indiquez la plage IP.

    plage_ip_lan

    On exclue l’ip de notre passerelle et de notre serveur.

    Et on indique l’ip de notre passerelle lorsque cela nous est demandé.

    Il ne nous reste plus qu’à changer l’adresse du DNS dans les paramétrages réseau du serveur (l’IP fixe) et à redemarrer.

    Préparation de la VM client

    Maintenant que notre réseau est en place, nous pouvons créer la VM client. Procédez de la même façon que le serveur. Bootez sur windows 11, choisissez la version professionnelle, installez le système, si vous arrivez au nom de machine sans broncher, c’est que votre réseau NAT et le DHCP de Windows Serveur fonctionnent merveilleusement bien 🙂

    Nommez votre client, par exemple win11-01.

    Sélectionnez compte entreprise ou éducatif.

    Option de connexion, joindre le domaine à la place.

    Créez un compte local.

    Lancez les mises à jour de l’OS et vérifiez la configuration réseau.

    ipconfig poste client

    On est pas mal !

    On retourne sur Ajouter des rôles et des fonctionnalités.

    On suit l’installation jusqu’à sélectionner des roles de serveurs, et coche Service de domaine active directory.

    NB: lors de mes tests, le niveau fonctionel de la forêt et du domaine configuré sous windows serveur 2025, faisait planté le serveur DHCP. Pour le bon fonctionnement de ce TP, j’ai donc rétrogradé le niveau de fonctionnalité en windows serveur 2016….

    Une fois installé, on clique sur le drapeau jaune en haut, et on clique sur promouvoir.

    promouvoir_controleur_domaine

    Cliquez sur ajouter une nouvelle forêt, et donnez-lui un nom.

    configuration de deploiement, nouvelle foret

    On laisse les options du controleur par défaut et on renseigne un mot de passe du mode de restauration de l’annuaire.

    On suit le process d’install, on valide l’opération, et on redémarre.

    NB : A partir de ce moment, vous pouvez ajoutez votre client au domaine.

    Création d’utilisateurs dans l’AD

    On va dans Utilisateurs et Ordinateurs active directory.

    Cliquez droit sur votre forêt > nouveau > Unit d’organisation.

    On le nommera Utilisateurs.

    unite_organisation

    Puis sur la partie blanche à droite, clique droit et nouveau > Utilisateur.

    Une fois notre utilisateur créé, on va créer un groupe Admin_local.

    Clic droit > nouveau > groupe, on lui met un nom, on selectionne Domaine local dans étendue du groupe et on valide.

    On rajoute notre utilisateur dans ce groupe.

    Création d’une stratégie de groupe

    Depuis le gestionnaire de serveur, on va sur outils et Gestion des stratégies de groupe.

    On developpe notre forêt, puis clique droit sur notre domaine et on sélectionne Créer un objet GPO dans ce domaine.

    gpo_dans_domaine

    Une fois ce nouvel objet créé, on fait clique droit dessus et modifier.

    Développez l’arborescence de cette façon : Configuration ordinateur > stratégieParamètres Windows Paramètres de sécurité Groupes restreints.

    Faites un clic droit sur la partie blanche, puis ajouter un groupe. Sélectionnez le compte Administrateurs, enfin, ajoutez le groupe Admin_local en tant que membres.

    La GPO est prête et vous pouvez tester sur votre client, en effectuant un gpupdate/force, puis en faisant une déconnexion/reconnexion du compte en question.

    Conclusion

    Nous avons vu comment installer Windows serveur 2025 sous Virtualbox. Nous avons créé un client, nous avons mis en place un serveur DHCP, DNS, un annuaire Active Directory, et nous avons mis en place une GPO pour appliquer une stratégie de groupe sur notre poste client.

    Source :

  • PhotoRec : L’ange gardien de vos photos perdues

    PhotoRec : L’ange gardien de vos photos perdues

    Dans cet article, je vais vous présenter PhotoRec : L’ange gardien de vos photos perdues.

    Il y a quelques temps un ami avait branché le disque externe de ses photos sur Télé.

    « Oui, de cette manière ma femme peut regarder les photos de la naissance du petit Léo sur la TV. »

    L’idée était géniale, mais c’était sans compté sur le petit Léo, alors agé d’un an et demi, futur ingénieur, avide d’apprentissage de nos appareils du quotidien.

    Cette petite canaille fort d’une combinaison harzardeuse sur la télécommande, avait trouvé la combinaison parfaite. Il avait formaté le disque.

    Et voilà, toutes les photos de la naissance du petit Léo perdu à tout jamais.

    utilisateur en panique

    Le mythe de la sauvegarde parfaite

    Le danger insoupçonné

    Souvent perçus comme le refuge ultime de nos précieuses données, les disques durs externes cachent pourtant un danger insoupçonné.

    Bien que leur portabilité et leur grande capacité de stockage en fassent des outils de sauvegarde très populaires, ils ne sont en aucun cas des solutions infaillibles.

    La principale vulnérabilité réside dans leur nature physique. Un disque dur externe reste une machine, soumise à des risques de défaillance mécanique. Un choc, même minime, peut endommager la tête de lecture ou les plateaux internes, rendant les données irrécupérables.

    De plus, les erreurs de lecture/écriture peuvent corrompre les fichiers. Tandis que les problèmes liés à l’alimentation électrique (surtensions, coupures) peuvent endommager l’électronique du boîtier et du disque.

    Sans parler des risques externes, comme le vol ou la perte, qui peuvent anéantir en un instant des années de souvenirs et de travail.

    Ainsi, se fier à un seul disque dur externe pour ses sauvegardes, c’est mettre tous ses œufs dans le même panier. Un pari risqué à l’ère du tout numérique.

    L’erreur humaine

    Souvent, la perte de données n’est pas le fruit d’une panne matérielle, mais bien d’une simple erreur humaine.

    Qui n’a jamais cliqué trop vite sur « supprimer » en pensant que le fichier était en double, ou pire, formaté par mégarde le mauvais disque dur en voulant réinstaller un système d’exploitation ?

    Ces erreurs de manipulation, aussi banales soient-elles, peuvent avoir des conséquences désastreuses. Un fichier jeté à la corbeille peut être vidé sans que l’on s’en rende compte, et un formatage rapide efface les informations de la table d’allocation, rendant l’accès aux données quasi impossible sans un outil spécialisé.

    Ces moments de panique, où l’on réalise la gravité de notre geste, soulignent l’importance de disposer d’une solution de secours capable de fouiller au-delà des structures de fichiers traditionnelles pour récupérer ce qui a été perdu.

    PhotoRec, le sauveur inattendu

    Qu’est-ce que c’est ?

    PhotoRec se distingue comme un outil de récupération de données gratuit, open source et incroyablement puissant. Il est capable de sauver vos fichiers même dans les situations les plus désespérées.

    Contrairement aux logiciels traditionnels qui s’appuient sur la table d’allocation du disque pour localiser les fichiers, PhotoRec utilise une approche plus radicale et efficace : la récupération par signature de fichier (ou file carving).

    Le pouvoir de la récupération par signature

    Cette méthode ingénieuse permet à PhotoRec d’ignorer la structure du système de fichiers, qui est souvent la première à être endommagée lors d’un formatage accidentel ou d’une corruption.

    Au lieu de cela, l’outil analyse le disque dur bloc par bloc, recherchant des en-têtes et des pieds de page de fichiers connus.

    Ces « signatures » sont comme des empreintes digitales numériques qui signalent le début et la fin de différents types de fichiers (JPEG, PNG, MP4, PDF, etc.).

    En se concentrant sur ces signatures, PhotoRec peut reconstruire des fichiers entiers à partir de fragments dispersés sur le disque, même si le système de fichiers est complètement illisible.

    C’est ce qui en fait un véritable « dernier recours » pour vos données, capable de sauver des souvenirs précieux là où les autres logiciels de récupération ont échoué.

    Le tutoriel pratique

    Son utilisation est très accessible et il est doté d’une interface très intuitive.

    • Selectionnez le disque à récupérer.
    • Sélectionnez la partition, ou sélectionnez Whole disk pour l’intégralité du disque.
    • Sélectionnez le chemin de sauvegarde de la récupération.
    • Cliquez sur Rechercher

    Il n’y a plus qu’à patienter.

    Pour environ 1,5 To de données récupérées, il a fallu presque 24 heures de travail.

    Les points cruciaux

    Son utilisation est très simple mais pour une efficacité maximum, il faudra respecter ses trois points.

    • Ne pas installer PhotoRec sur le disque d’où vous voulez récupérer les données.
    • Ne pas sauvegarder les fichiers récupérés sur le même disque.
    • Choisir un emplacement de sauvegarde distinct.

    Conclusion

    La leçon à retenir est que la seule véritable sécurité des données réside dans la multiplication des sauvegardes.

    L’anticipation est la clé. En cas de problème, avoir plusieurs sauvegardes vous permet de retrouver rapidement vos données.

    Mais si la catastrophe arrive, n’oubliez pas que tout n’est pas perdu.

    PhotoRec : L’ange gardien de vos photos perdues, est un outil puissant qui, grâce à son approche par signature, peut être le dernier recours pour sauver vos photos et fichiers les plus précieux.

  • Clonezilla – dupliquez vos disques windows

    Clonezilla – dupliquez vos disques windows

    Dans cet article je vous parlerais de Clonezilla – dupliquez vos disques windows.

    Nous parlerons de l’utilité de ce logiciel, nous verrons également son fonctionnement. Finalement, nous ferons un exemple d’utilisation pas à pas.

    C’est quoi Clonezilla ?

    Clonezilla est un logiciel libre, fonctionnant sous linux. Ce logiciel permet de faire des sauvegardes sous tout format de stockage, d’effectuer des restaurations, mais également de faire de copie de disque à disque.

    En quoi Clonezilla peut-il me rendre service ?

    Clonezilla permet d’effectuer des sauvegardes de disques de vos appareils puis de les restaurer. Ainsi en cas de crash disques, vous avez une base pour effectuer une restauration de votre système.

    Il peut également être utilisé en tant que Master. Cela veut dire que vous pouvez effectuer une image standard d’un poste que vous pourrez utiliser pour configurer tous les postes de votre parc.

    Vous pouvez effectuer ce master via clé usb, mais également depuis un serveur PXE, pour faire vos installations d’OS depuis le réseau.

    Le clonage disque à disque est également une fonction must have.

    Vous pouvez en quelques cliques cloner votre disque sur un disque de plus grande capacité. Ou également lorsque vous changez de configuration.

    Inutile de reinstaller tout votre système avec tous vos logiciels. Il suffit maintenant de cloner votre ancien PC sur votre nouvelle configuration. Pratique lorsque vous avez plus de 30 logiciels à reinstaller 😉

    Pré-requis

    Pour commencer nous allons récupérer l’image disque de clonezilla au format ISO depuis le site officiel.

    Ca se passe par ici

    Une fois l’ISO téléchargé, il faudra également récupérer le logiciel rufus qui nous permettra de créer une clef bootable de l’iso que nous avons téléchargé.

    Creation de la clef bootable

    On insère notre clef usb, on lance rufus et on insere notre image de clonezilla.

    On laisse les options par défaut puis on lance la création de notre clef bootable.

    Une fois la clef prête, on démarre dessus.

    Clonage sur une plus grande capacité

    Clonezilla live se lance.

    On choisit Live to RAM

    On sélectionne la langue

    Et on démarre Clonezilla

    Comme nous allons cloner un disque sur un disque de plus grande capacité, on sélectionne device to device

    Puis mode expert

    Nous choisirons sur la fenêtre suivante disk to local disk.

    A partir de ce moment, clonezilla scannera les disques disponibles.

    Il vous demandera de choisir le disque source. Dans notre cas, il s’agit du disque de 256Go.

    Sur l’interface suivante, il nous faudra sélectionner le disque target (cible). Attention ce disque sera formatté de tous contenus !

    On laisse les extra parameters par défaut

    On skip le sfck.

    On choisit ensuite l’option K1, qui permettra d’adapter automatiquement la taille de notre disque target lors du clone.

    Il nous restera plus qu’à confirmer le formatage du disque target et laisser la magie opérer.

    A la fin de l’opération, nous récupérerons l’intégralité de notre disque 256Go, cloné sur un disque de 512Go avec l’ajustement automatique de l’espace disque disponible.

  • Configuration optimisée et sécurisée de Nginx

    Configuration optimisée et sécurisée de Nginx

    Dans le dernier article, nous avions vu comment mettre en place le chiffrement TLS.

    C’était le premier pas d’une longue série de paramètre pour sécuriser notre application web. Dans cet article, nous allons voir comment mettre en place une configuration optimisée et sécurisée de Nginx.

    Un outil pour les configurer tous

    Nginx est un outil très puissant. Et qui dit très puissant, dit également beaucoup de paramètre à prendre en compte.

    Heureusement nous pouvons trouver des générateurs de configuration pour Nginx.

    Par exemple vous en trouverez un sur le site de DigitalOcean : https://www.digitalocean.com/community/tools/nginx?global.app.lang=fr

    Vous pouvez le configurer comme ci-après, qui devrait s’adapter à presque toutes les configurations.

    Configuration de Nginx

    Dans la partie Pré-configurations, cliquez sur WordPress. Remplissez l’onglet Serveur.

    La partie Chemin est très importante car c’est le chemin que Nginx empruntera pour accéder au site. Si vous hébergez un seul site, la configuration par défaut devrait suffire. Par contre si vous en hébergez plusieurs, chaque application devra avoir un chemin unique.

    démonstration pour un chemin unique pour nginx

    On laisse l’onglet HTTPS par défaut.

    Dans la partie PHP, on vérifie que activer PHP et activer les règles spécifiques à Wordress sont bien cochés. Dans serveur PHP, on définira les noms d’hôtes comme dans l’article précédent.

    pré-configuration php, on personnalise le serveur php et on active les règles WordPress

    On laisse les autres onglets par défaut. On active ou non le logging.

    Dans la partie Configuration globale, il faudra cocher limit_req et bien vérifier que server_tokens est décoché. Le premier agira comme une protection contre les attaques de type flood et le deuxième, cachera l’identité de notre serveur Nginx.

    On en profitera également pour modifier le Referrer-Policy en same-origin, pour protéger la vie privée de nos utilisateurs.

    modification du referrer-policy et activation du limit_req

    Vérifiez dans l’onglet Logs qu’ils sont bien activés en warn ou error.

    Dans l’onglet Docker on cliquera sur Configurer pour Docker et on décochera les deux cases. Le but étant de passer le user en nginx et le pid en /var/run/nginx.pid dans l’onglet NGINX.

    De plus, nous avons déjà nos propres fichiers dockerfile.

    En descendant la page nous trouvons nos fichiers de configuration.

    Harmonisation des fichiers Nginx

    Nous remarquons que les fichiers ont été configurés avec un chemin d’accès.

    Nous allons donc modifier notre fichier docker-compose.yml, pour y introduire ces nouvelles données.

    Dans la partie Nginx dans la sous-partie volumes, nous allons modifier comme ci-dessous :

        volumes:
          - ${WORDPRESS_LOCAL_HOME}:/var/www/html/nginx.laclefdigitale.fr
    #      - ${NGINX_CONF_DEFAULT}:/etc/nginx/conf.d/default.conf 
    
    # generale conf
    
          - ${NGINX_CONF}:/etc/nginx/nginx.conf
          - ${NGINX_MIME}:/etc/nginx/mime.types
          - ${NGINX_SITES_ENABLED}:/etc/nginx/sites-enabled/:ro
          - ${NGINX_CONFIG_IO}:/etc/nginx/nginxconfig.io/:ro

    Vous remarquerez que nous utilisons sites-enabled et non site-available. Nginx permet de faire un lien entre les deux. Nous grâce à Docker, nous lions directement le chemin vers sites-enabled.

    Il faudra également modifier la partie SSL du fichier /etc/nginx/sites-enabled/exemple.conf, avec les répertoires que nous avons déterminé précédemment.

    # SSL
    /etc/nginx/ssl/live/example.conf/fullchain.pem; 
    /etc/nginx/ssl/live/example.conf/privkey.pem; 
    /etc/nginx/ssl/live/example.conf/chain.pem;

    Voici le contenu du fichier mime.types

    
    types {
        text/html                                        html htm shtml;
        text/css                                         css;
        text/xml                                         xml;
        image/gif                                        gif;
        image/jpeg                                       jpeg jpg;
        application/javascript                           js;
        application/atom+xml                             atom;
        application/rss+xml                              rss;
    
        text/mathml                                      mml;
        text/plain                                       txt;
        text/vnd.sun.j2me.app-descriptor                 jad;
        text/vnd.wap.wml                                 wml;
        text/x-component                                 htc;
    
        image/avif                                       avif;
        image/png                                        png;
        image/svg+xml                                    svg svgz;
        image/tiff                                       tif tiff;
        image/vnd.wap.wbmp                               wbmp;
        image/webp                                       webp;
        image/x-icon                                     ico;
        image/x-jng                                      jng;
        image/x-ms-bmp                                   bmp;
    
        font/woff                                        woff;
        font/woff2                                       woff2;
    
        application/java-archive                         jar war ear;
        application/json                                 json;
        application/mac-binhex40                         hqx;
        application/msword                               doc;
        application/pdf                                  pdf;
        application/postscript                           ps eps ai;
        application/rtf                                  rtf;
        application/vnd.apple.mpegurl                    m3u8;
        application/vnd.google-earth.kml+xml             kml;
        application/vnd.google-earth.kmz                 kmz;
        application/vnd.ms-excel                         xls;
        application/vnd.ms-fontobject                    eot;
        application/vnd.ms-powerpoint                    ppt;
        application/vnd.oasis.opendocument.graphics      odg;
        application/vnd.oasis.opendocument.presentation  odp;
        application/vnd.oasis.opendocument.spreadsheet   ods;
        application/vnd.oasis.opendocument.text          odt;
        application/vnd.openxmlformats-officedocument.presentationml.presentation
                                                         pptx;
        application/vnd.openxmlformats-officedocument.spreadsheetml.sheet
                                                         xlsx;
        application/vnd.openxmlformats-officedocument.wordprocessingml.document
                                                         docx;
        application/vnd.wap.wmlc                         wmlc;
        application/wasm                                 wasm;
        application/x-7z-compressed                      7z;
        application/x-cocoa                              cco;
        application/x-java-archive-diff                  jardiff;
        application/x-java-jnlp-file                     jnlp;
        application/x-makeself                           run;
        application/x-perl                               pl pm;
        application/x-pilot                              prc pdb;
        application/x-rar-compressed                     rar;
        application/x-redhat-package-manager             rpm;
        application/x-sea                                sea;
        application/x-shockwave-flash                    swf;
        application/x-stuffit                            sit;
        application/x-tcl                                tcl tk;
        application/x-x509-ca-cert                       der pem crt;
        application/x-xpinstall                          xpi;
        application/xhtml+xml                            xhtml;
        application/xspf+xml                             xspf;
        application/zip                                  zip;
    
        application/octet-stream                         bin exe dll;
        application/octet-stream                         deb;
        application/octet-stream                         dmg;
        application/octet-stream                         iso img;
        application/octet-stream                         msi msp msm;
    
        audio/midi                                       mid midi kar;
        audio/mpeg                                       mp3;
        audio/ogg                                        ogg;
        audio/x-m4a                                      m4a;
        audio/x-realaudio                                ra;
    
        video/3gpp                                       3gpp 3gp;
        video/mp2t                                       ts;
        video/mp4                                        mp4;
        video/mpeg                                       mpeg mpg;
        video/quicktime                                  mov;
        video/webm                                       webm;
        video/x-flv                                      flv;
        video/x-m4v                                      m4v;
        video/x-mng                                      mng;
        video/x-ms-asf                                   asx asf;
        video/x-ms-wmv                                   wmv;
        video/x-msvideo                                  avi;
    }
    

    Une fois nos répertoires et nos fichiers créés, il ne reste qu’à redémarrer notre projet docker.

    Maintenant en scannant votre site sur Moz observatory, nous obtenons un rang B+. Plutôt pas mal, pour une config générée par défaut 🙂

    rang B+ sur moz obs.

    Pour conclure

    Nous avons harmonisé notre arborescence de répertoire de travail sur Nginx. L’outil Nginx config, nous a facilité la mise en place d’une configuration optimisée et sécurisée de Nginx. Notre site web affiche désormais un B+ sur l’outil de protection de moz Observatory.

    D’ailleurs nous nous apercevons que seule la partie CSP fait baisser le rang de notre application. Nous verrons lors d’un prochain article comment rajouter le CSP pour atteindre le rang A+ en sécurité.

  • Mise en place d’un serveur HTTPS

    Mise en place d’un serveur HTTPS

    Dans le dernier article, nous avions vu comment installer Nginx.

    Même si la configuration initiale était fonctionnelle, elle n’est pas des plus sécurisées. Néanmoins elle est essentielle pour l’obtention du certificat let’s encrypt et la mise en place du protocole https.

    Je vous propose ainsi dans cet article, de faire la mise en place d’un serveur HTTPS.

    Mise en place du certificat let’s encrypt

    Le certificat let’s encrypt, nous permet de sécuriser la connexion à notre site web. Cela se traduit par une URL en https et le petit cadenas sur votre navigateur.

    En cliquant sur le cadenas, on y apprend que le certificat permet un chiffrement de la connexion ce qui rend très difficile la visualisation de cette page pendant son transit.

    Ainsi même si un attaquant détournait la connexion, les informations reçues seraient chiffrées et inutilisables.

    Pour générer ce certificat, nous utiliserons certbot.

    Si vous avez suivi mon premier article : Installation de WordPress sous Docker, il vous suffira de le compléter.

    Nous allons rajouter ces quelques lignes dans notre fichier docker-compose.yml

      certbot:
        image: certbot/certbot:latest
        container_name: certbot
        depends_on:
          - nginx
        command: >-
          certonly --webroot --webroot-path=/var/www/certbot/ --email [votre_email] --agree-tos --no-eff-email -d mamourhome.duckdns.org
    
        volumes:
          - ${CERTBOT_WWW}:/var/www/certbot/:rw
          - ${CERTBOT_CONF}:/etc/letsencrypt/:rw
          - ${CERTBOT_LOGS}:/var/log/letsencrypt/
    

    Pensez à rajouter les volumes commun dans votre service nginx dans le fichier docker-compose.yml.

    Soit :

    - ${CERTBOT_WWW}:/var/www/certbot/:ro
    - ${CERTBOT_CONF}:/etc/nginx/ssl/:ro

    Puis déclarer les variables dans le fichier .env

    #certbot setting
    export CERTBOT_WWW=./certbot/www
    export CERTBOT_CONF=./certbot/letsencrypt
    export CERTBOT_LOGS=./logs/certbot
    

    Il faudra également indiquer le chemin d’accès au certificat dans le fichier default.conf.

    Ajouter dans le fichier default.conf :

    include nginxconfig.io/letsencrypt.conf

    Puis créer le fichier letsencrypt.conf dans le répertoire nginxconfig.io

    Puis ajouter à ce fichier :

    location ~ /.well-known/acme-challenge {
         allow all;
         root /var/www/certbot;
    }
    

    Modifier votre fichier docker-compose.yml, et rajouter toujours dans le service Nginx le volume qui gérera le repertoire nginxconfig.io.

    - ${NGINX_CONFIG_IO}:/etc/nginx/nginxconfig.io/:ro

    Puis mettre à jour le fichier .env avec les dernieres instructions :

    export NGINX_CONFIG_IO=./nginx/nginxconfig.io

    Une fois toutes ces mises à jour effectuées, vous pourrez lancer l’obtention du certificat en lançant cette commande.

    sudo docker compose run certbot

    Et si tout se passe bien, vous verrez dans votre terminal ce petit message :

    Do you want to expand and replace this existing certificate with the new
    certificate?
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    (E)xpand/(C)ancel: E
    Renewing an existing certificate for www.laclefdigitale.fr and 5 more domains
    
    Successfully received certificate.
    

    Maintenant que nous avons le certificat, nous allons indiquer à notre serveur web, qu’il faudra toujours emprunter le protocole https

    Nous allons donc modifier le fichier default.conf comme ceci :

    
    server {
        listen                  443 ssl;
        http2                   on;
        listen                  [::]:443 ssl;
        server_name             mamourhome.duckdns.org;
        set                     $base /var/www/html/mamour;
        root                    $base;
    
        index index.php;
        # SSL
        ssl_certificate         /etc/nginx/ssl/live/mamourhome.duckdns.org/fullchain.pem;
        ssl_certificate_key     /etc/nginx/ssl/live/mamourhome.duckdns.org/privkey.pem;
        ssl_trusted_certificate /etc/nginx/ssl/live/mamourhome.duckdns.org/chain.pem;
    
            location / {
               proxy_pass http://backnginx;
               proxy_set_header Host $host;
               proxy_set_header X-Real-IP $remote_addr;
               proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
               proxy_set_header X-Forwarded-Proto $scheme;
               proxy_next_upstream error timeout http_500;
            }
    
    }
    
    server{
            listen 80;
            listen [::]:80;
    
            server_name mamourhome.duckdns.org;
    
            include nginxconfig.io/letsencrypt.conf;
    
       location / {
            return 301 https://mamourhome.duckdns.org$request_uri;
        }
    }

    Et maintenant en tapant : https://mamourhome.duckdns.org, nous avons bien notre connexion chiffrée et notre petit cadenas.

    Conclusion

    Ainsi grâce aux certificats TLS de let’s encrypt et à Certbot, nous avons pu faire la mise en place d’un serveur HTTPS. C’est le premier pas pour sécuriser nos applications sur internet.

    Dans le prochain article, nous modifierons la structure de notre Nginx pour y rajouter la possibilité d’héberger plusieurs site web.

  • Installation de Nginx sous Docker

    Installation de Nginx sous Docker

    Nous avions vu lors d’un précédent article, comment installer WordPress sous Docker. C’est toujours sympa d’avoir un site web à la maison. Mais çà serait tout de même bien plus génial si nous pouvions l’ouvrir au reste du monde.

    Nous allons donc voir comment cela est possible grâce à l’installation de Nginx sous Docker.

    Mise en place d’un nom de domaine gratuitement

    Sans trop développer le sujet, le web tel que nous le connaissons est accessible grâce à des adresses ip. En faisant un ping vers Google ou un autre site, le serveur nous répondra avec son adresse IP.

    Naturellement, pour des humains retenir une suite de nombre pour accéder à nos site préférés est un peu compliqué.

    C’est à ce moment où le nom de domaine intervient. Il va translater les adresses IP en une translation plus simple et compréhensible pour nous tous.

    Pour cet article nous utiliserons le service de Duckdns qui nous permet de bénéficier d’un nom de domaine gratuitement de la forme : XXXXXXX.duckdns.org

    Nous pouvons donc commencer par créer un compte sur https://www.duckdns.org/

    Une fois celui-ci créé, il nous suffira de choisir un sub domain et d’y attacher les adresses IP de notre serveur.

    Dans mon cas, j’ai choisi mamourhome qui pointe sur L’IP de mon serveur.

    Installation de Nginx sous Docker

    Bien, maintenant que nous avons un nom de domaine, nous allons pouvoir installer Nginx sous docker.

    On se crée un répertoire de travail. Et on y crée notre fichier docker compose.

    service:
      
      nginx:
      image: nginx
        container_name: nginx
        env_file:
          - .env
        restart: unless-stopped
        networks:
    - nt_nginx
    
    depends on:
    - wordpress
    
    ports:
    - 80:80
    - 443:443
    
    volumes:
    - ${WORDPRESS_LOCAL_HOME}:/var/www/html/:ro
    - ${NGINX_CONF_DEFAULT}:/etc/nginx/conf.d/default.conf 
    - ${NGINX_LOGS}:/var/log/nginx

    Vous pouvez rajouter à la suite le contenu du docker compose sur l’article traitant de l’installation de WordPress docker. N’oubliez néanmoins de rajouter le bon nom de réseau entre Nginx et WordPress.

    Nous allons ensuite créer le fichier .env

    ${WORDPRESS_LOCAL_HOME}: ./wordpress
    ${NGINX_CONF_DEFAULT}: ./nginx/conf.d/default.conf
    ${NGINX_LOGS}: ./logs

    La configuration de notre serveur Web est actuellement en version minimum.

    Une fois que nous aurons récupérer les certificats let’s encrypt, nous rajouterons les modules manquants pour Nginx (la sécurité, le CSP, un peu d’optimisation, etc).

    Création du fichier de configuration default.conf

    Pour que notre Nginx puisse fonctionner correctement avec notre nom de domaine nous allons créer un fichier default.conf dans le répertoire ./nginx/conf.d/

    Ce fichier indiquera ainsi l’emplacement du répertoire de travail du nom de domaine demandé.

    Notre fichier default.conf ressemblera donc à ceci :

    server{
            listen 80;
            listen [::]:80;
    
            server_name mamourhome.duckdns.org;
    
            set     $base /var/www/html/mamour;
            root    $base;
            index index.php;
    
    
    
            location / {
    
               proxy_pass http://backnginx;
               proxy_set_header Host $host;
               proxy_set_header X-Real-IP $remote_addr;
               proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
               proxy_set_header X-Forwarded-Proto $scheme;
               proxy_next_upstream error timeout http_500;
            }
    
    
    }
    

    Une fois le fichier default.conf créé, vous devrez redémarrer votre service Nginx pour qu’il soit pris en compte.

    sudo docker compose restart nginx

    Puis en tapant l’URL : http://mamourhome.duckdns.org, vous devriez arriver sur votre instance WordPress 🙂

    Conclusion

    Nous avons vu comment faire l’installation de Nginx sous docker. Celle-ci nous permet mettre en place un serveur pour appeler nos applications, tout en les rendant public grâce à un nom de domaine.

    Le prochain article traitera de la mise en place des cetificats let’s encrypt grâce à Certbot, puis nous commencerons à optimiser et à sécuriser nos applications web.

  • Régler définitivement les problèmes de lenteurs sous Windows

    Régler définitivement les problèmes de lenteurs sous Windows

    Comment régler définitivement les problèmes de lenteurs sous Windows ?

    Avec le temps et leur utilisation, les ordinateurs ont tendance à devenir plus lent. Et au bout de quelques années, on commencera à dire, « il est obsolète », « c’est un vieux modèle ».

    Il faut dire que la technologie avance vite. Mais ne pouvons nous rien faire pour prolonger la vie de notre bon vieil ordinateur ?

    Maintenance, la solution aux lenteurs

    Pour garder un ordinateur réactif et performant, une petite maintenance mensuelle peut vous aider à régler définitivement les problèmes de lenteurs sous Windows. Vous trouverez ci-dessous quelques points à vérifier pour effectuer une maintenance efficace.

    Faire les mises à jour Windows

    Effectuer les mises à jour Windows sont obligatoires pour maintenir un système sécurisé et performant. Elles protégeront votre ordinateur, tout en optimisant ses performances.

    panneau de mise à jour Windows qui aide à maintenir un ordinateur performant et sécurisé
    Panneau de mise à jour Windows qui aide à maintenir un ordinateur performant et sécurisé

    Nettoyer le disque système

    Nettoyer le disque système, vous permettra de supprimer les fichiers temporaires systèmes, d’installation de mises à jour, les fichiers logs ce qui permettra de libérer de la place sur le disque et conserver les performances systèmes.

    Fenêtre de nettoyage disque Windows

    Désinstaller les logiciels au démarrage non utilisés

    Chaque logiciels installés et démarrant automatiquement ralentiront le chargement de Windows. Veillez à ne garder que les logiciels nécessaires au démarrage.

    Empêcher l’ouverture de certains programmes peut vous aider à maintenir un pc performant

    Vérifier les logiciels malveillant

    Des logiciels malveillant peuvent utiliser les ressources de votre ordinateur et les détourner à votre insu.

    Pensez à faire un audit de temps en temps grâce à un anti malware gratuit comme par exemple Spybot – Search & Destroy ou Malwarebytes.

    Analyse spybot-search and destroy

    Améliorer les composants de l’ordinateur

    Le composant essentiel dans une utilisation standard d’un ordinateur est le disque dur. Un HDD 5400tm a une vitesse de lecture et écriture de 50 MBps alors qu’un SSD aura une vitesse de 600 MBps. Autant dire qu’on passera d’un temps d’allumage de 5mn depuis un HDD, à 30s sur un SSD.

    Pour vérifier, il suffira d’ouvrir le gestionnaire de tâches et de vérifier dans l’onglet performance.

    L’onglet performance du gestionnaire de tâche permet de vérifier le bon fonctionnement d’un SDD

    La quantité de RAM a également son importance. Elle facilite l’ouverture et le bon fonctionnement du système d’exploitation, et de vos applications. Pour une utilisation standard, un minimum de 8Go RAM sera nécessaire. Pour un confort optimal il est préconisé 16Go.

    Conclusion

    Nous avons vu qu’avec une petite maintenance occasionnel et qu’avec une bonne configuration matérielle, nous pouvions régler définitivement les problèmes de lenteurs sous Windows.

    La Clef Digitale, votre expert informatique à Franconville et dans le Val d’Oise, est spécialisée dans les maintenances et l’optimisation matérielle pour garder un ordinateur sécurisé et performant.

    N’hésitez pas à me contacter et bénéficiez de la remise d’avance immédiate du crédit d’impôt de 50% sur chaque prestation à domicile.

  • Installation de Hacs Ewelink et Zwave-js-ui

    Installation de Hacs Ewelink et Zwave-js-ui

    Dans cet article nous verrons comment effectuer l’installation de Hacs, Ewelink et Zwave-js-ui pour Home-Assistant.

    Hacs rajoutera la boutique communautaire permettant d’installer des intégrations développées par la communauté.

    Ewelink est une application parfois demandée pour contrôler certains modules Zigbee.

    Et Zwave-js-ui vous permettra de coupler votre dongle Zwave à Home-Assistant.

    HACS

    De l’acronyme, Home Assistant Community Store, est la boutique d’intégration de la communauté de HA.

    Celle-ci permet de télécharger des nouveaux éléments personnalisés et de les gérer de manière simplifier. C’est un peu comme le Playstore ou l’Apple Store.

    Vous y trouverez de nombreuses intégrations très utiles qui vous simplifierons l’automatisation de vos périphériques. Nous pouvons noter Versatile Thermostat, qui vous permettra de configurer vos radiateurs avec précision et aisance.

    Si vous avez suivi mes articles précédant, vous avez installé Home Assistant sous docker grâce à docker compose.

    Cette fois-ci nous ferons quelques commandes pour configurer Hacs.

    Entrer dans le container Home Assistant.

    sudo docker exec -it homeassistant bash

    Puis nous téléchargerons et exécuterons le plugin Hacs.

    wget -O https://get.hacs.xyz | bash

    Une fois ces commandes passées, vous pouvez redémarrer Home Assistant, puis vous y connecter, et allez dans le manu d’ajout des intégrations.

    Paramètre > Appareil et service > Ajouter une intégration.

    Vous devriez retrouver Hacs depuis la recherche.

    Cocher toutes les cases. Il faudra ensuite créer un compte sur GitHub.

    Puis cliquer sur le lien d’activation et coller le code indiqué.

    Il suffira pour finaliser d’autoriser Hacs.

    Vous pouvez désormais installer Versatile Thermostat et commencer à configurer vos radiateurs avec vos modules NodOn.

    Ewelink

    Ewelink smart home est une application qui permet de contrôler certains périphériques. Cela est très intéressant mais nos périphériques dépendent d’un cloud, et donc d’une connexion internet.

    Nativement, Home Assistant ne permet pas de rajouter son intégration. Nous allons donc créer un container Ewelink qui nous permettra de contrôler nos périphériques en local.

    Comme à notre habitude, nous allons créer un répertoire pour l’application.

    Et compte tenu, que nous voulons garder un serveur propre, nous allons créer un répertoire qui référencera toutes nos plugins Home Assistant.

    On se positionne donc dans notre répertoire HA, puis nous créerons un répertoire Add-on, puis dedans un répertoire ewelink.

    cd home-assistant
    mkdir add-on && cd add-on
    mkdir ewelink && cd ewelink

    Nous allons maintenant créer notre docker-compose.yml

    sudo nano docker-compose.yml

    On y indiquer le nom du service, l’image à utiliser, le nom du container, et le mode réseau host.

    services:
      ewelink_smart_home:
        image: ewelink_smart_home
        container_name: ewelink
        restart: unless-stopped
        network_mode: host

    Nous allons par la suite indiquer un fichier de variable d’environnement.

    Ce qui nous permettra d’y stocker les variables demandées par l’environnement de l’application, l’url de HA, le token pour la communication entre eux deux, et le répertoire de données.

        env_file:
          - .env
        environment:
          - HA_URL=${HA_URL}
          - SUPERVISOR_TOKEN=${TOKEN}
        volumes:
          - ${DATA}:/data

    Une fois ceci fait, nous fermons le docker-compose et nous créons le fichier .env.

    sudo nano .env

    Puis nous y déclarons nos variables.

    TOKEN=votre_token_généré_depuis HA
    HA_URL=http://IP_de_votre_instance_HA:port
    DATA=./data

    Pour générer le token, il faudra ouvrir Home Assistant, cliquer sur votre nom en bas dans le menu de gauche.

    Puis en haut à droite sur sécurité. En bas de cette nouvelle page, vous pourrez y générer un token de longue durée. Il faudra copier ce token dans la variable TOKEN de notre fichier .env.

    Pour la variable HA_URL, il ne faudra pas oublier de préciser le port de connexion. Par exemple HA_URL=http://127.0.0.1:8123

    Une fois tout ceci configuré vous pouvez lancer votre container avec la commande :

    sudo docker compose up -d

    Vous pourrez vous connecter sur l’URL de Ewelink sur le port 3000 : http://IP_du_serveur:3000

    Zwave

    Si vous êtes l’heureux possesseur d’une clef Zwave comme la Combee II, vous serez forcement intéresser pour installer Zwave-js-ui sur docker.

    Nous l’installerons par docker compose. Vous trouverez le GitHub à cet adresse : https://github.com/zwave-js/zwave-js-ui/blob/master/docker/docker-compose.yml

    Mais rassurerez-vous, nous allons expliquer comment le mettre en place.

    Pour commencer, nous allons nous déplacer dans le répertoire add-on de Home assistant que nous avons créé précédemment. Puis nous allons créer un répertoire Zwave.

    cd home-assistant/add-on
    mkdir zwave && cd zwave

    Puis on crée notre fichier docker compose

    sudo nano docker-compose.yml

    Dans ce fichier, on y indiquera le service, l’image, l’environnement et le réseau.

    services:
        zwave-js-ui:
            container_name: zwave-js-ui
            image: zwavejs/zwave-js-ui:latest
            restart: always
            tty: true
            stop_signal: SIGINT
            environment:
                - SESSION_SECRET=mysupersecretkey
                - ZWAVEJS_EXTERNAL_CONFIG=/usr/src/app/store/.config-db
                # Uncomment if you want log times and dates to match your timezone instead of UTC
                # Available at https://en.wikipedia.org/wiki/List_of_tz_database_time_zones
                - TZ=Europe/Paris
            networks:
                - zwave

    Pour la SESSION_SECRET, vous pouvez générer un code aléatoire de vous même ou en utilisant pwgen.

    Par la suite il faudra définir votre clef Zwave.

    Pour cela, dans votre terminal, il faudra entrer cette commande :

    ls /dev/serial/by-id/

    Ce qui donne dans mon cas :

    On construira ensuite les volumes et nous ouvrirons les ports du container.

            devices:
                # Do not use /dev/ttyUSBX serial devices, as those mappings can change over time.
                # Instead, use the /dev/serial/by-id/X serial device for your Z-Wave stick.
                - '/dev/serial/by-id/usb-0658_0200-if00:/dev/zwave'
            volumes:
                - zwave-config:/usr/src/app/store
            # Or by using local folder
            # - ./store:/usr/src/app/store
            ports:
                - '8091:8091' # port for web interface
                - '3001:3001' # port for Z-Wave JS websocket server
    networks:
        zwave:
    volumes:
        zwave-config:
            name: zwave-config

    N’hésitez pas à changer les ports, s’ils entrent en conflit avec d’autres appli.

    Il ne reste plus qu’à lancer notre container, puis d’ajouter l’intégration Z-wave dans Home Assistant.

    Il faudra indiquer pour le serveur websocket : ws://localhost:3001

    Conclusion

    Nous avons vu comment effectuer l’installation de Hacs, Ewelink et Zwave-js-ui pour Home Assistant sur Docker.

    Nous avons maintenant tous les outils nécessaires pour commencer la configuration de notre maison intelligente.

    Dans un prochain article, je vous montrerai comment mettre en place un thermostat avec le module NodON chauffage.

    Il commence à faire froid, et çà sera très utile pour améliorer notre confort sans pour autant nous ruiner.

  • Installation de WordPress sous Docker

    Installation de WordPress sous Docker

    Cet article concernant l’installation de WordPress sous docker est le premier d’une longue série. L’objectif sera de concevoir un site avec toutes les fonctionnalités de performance et sécurité.

    C’est quoi WordPress ?

    WordPress est un CMS (content manager system), soit un logiciel en ligne grâce auquel il est possible de créer, de gérer et de modifier facilement un site web sans pour autant connaitre tous les langages de programmation associés.

    Il s’agit d’un logiciel gratuit, libre et open source, distribué par WordPress.org.

    Il est écrit en PHP et permet de facilement mettre en place un site vitrine, blog, portfolio …

    Les pré-requis

    WordPress a besoin d’une base de donnée pour fonctionner.

    Nous utiliserons Mariadb pour notre projet, qui est également un logiciel gratuit, libre et open source.

    MariaDB Server est l’une des bases de données relationnelles open source les plus populaires.

    Il repose sur les valeurs de performance, de stabilité et d’ouverture.;

    Création du réseau MacVlan

    Avant toute chose nous allons créer un réseau MacVlan sous docker.

    Ce réseau permettra d’identifier les containers en leur donnant une mac adresse, ce qui nous permettra de les faire entrer dans une plage du type 192.168.x.x.

    sudo docker network create -d macvlan --subnet=192.168.1.0/24 --gateway=192.168.1.254 --ip-range=192.168.1.0/24 -o parent=eth0 mcvlan_nw

    Création du docker compose

    Comme à notre habitude nous allons créer notre répertoire de travail et nous y déplacer dedans.

    mkdir wordpress && cd wordpress

    Puis nous allons créer notre fichier docker-compose.

    sudo nano docker-compose.yml

    Nous commencerons par indiquer nos services et les images à utiliser :

    services:
      wordpress:
          build:
          image: wordpress
        container_name: wordpress
        hostname: wordpress

    Pour plus de sécurité, nous allons utiliser un fichier de variable d’environnement qui stockera toutes les informations des chemins de répertoire, nom d’utilisateur, mot de passe, nom de serveur …

        env_file:
          - .env
        restart: unless-stopped

    Nous déclarons notre container WordPress dans deux réseaux, le premier dans le réseau mcvlan précédemment créé et nous lui définissons une adresse IP. Puis nous indiquons à docker d’utiliser le réseau bridge pour communiquer avec la base de donnée.

        networks:
          mcvlan_nw:
            ipv4_address: "192.168.1.1"
          net_wordpress:

    WordPress a besoin de Mariadb pour fonctionner. Nous allons l’indiquer :

          depends_on:
            - bdd   #bdd est le nom du container qui hébergera Mariadb

    Puis nous allons indiquer tous les volumes et les environnements nécessaires en variable.

        volumes:
          - ${WORDPRESS_LOCAL_HOME}:/var/www/html
          - ${WORDPRESS_UPLOADS_CONFIG}:/usr/local/etc/php/conf.d/uploads.ini
          - ${WORDPRESS_MUPLUGINS}:/var/www/html/test/wp-content/mu-plugins
    
        environment:
          - WORDPRESS_DB_HOST=${WORDPRESS_DB_HOST}
          - WORDPRESS_DB_NAME=${MYSQL_DATABASE}
          - WORDPRESS_DB_USER=${MYSQL_USER}
          - WORDPRESS_DB_PASSWORD=${MYSQL_PASSWORD}
          - WORDPRESS_TABLE_PREFIX=${DB_PREFIX}

    Nous procéderons de la même manière pour créer notre container MariaDB.

      bdd:
        # default port 3306
        image: 'mariadb'
        hostname: bdd
        container_name: bdd
        env_file:
          - .env
        restart: unless-stopped
        networks:
          - nt_wordpress
        environment:
          - MYSQL_DATABASE=${MYSQL_DATABASE}
          - MYSQL_USER=${MYSQL_USER}
          - MYSQL_PASSWORD=${MYSQL_PASSWORD}
          - MYSQL_ROOT_PASSWORD=${MYSQL_ROOT_PASSWORD}
        volumes:
          - ${MYSQL_LOCAL_HOME}:/var/lib/mysql

    Puis nous finirons par déclarer les réseaux. nt_wordpress sera créé en mode bridge, et nous indiquons que le réseau mcvlan_nw est déjà créé et que le container doit s’y connecter.

    networks:
      nt_wordpress:
        name: nt_wordpress
        driver: bridge
    
      mcvlan_nw:
        external: true

    Ce qui donne à la fin :

    services:
    
      wordpress:
        image: 'wordpress'
        container_name: wordpress
        hostname: wordpress
        env_file:
          - .env
        restart: unless-stopped
    
        networks:
          mcvlan_nw:
            ipv4_address: "192.168.1.1"
          nt_wordpress:
    
        depends_on:
          - bdd
        volumes:
          - ${WORDPRESS_LOCAL_HOME}:/var/www/html
          - ${WORDPRESS_UPLOADS_CONFIG}:/usr/local/etc/php/conf.d/uploads.ini
          - ${WORDPRESS_MUPLUGINS}:/var/www/html/test/wp-content/mu-plugins
    
        environment:
          - WORDPRESS_DB_HOST=${WORDPRESS_DB_HOST}
          - WORDPRESS_DB_NAME=${MYSQL_DATABASE}
          - WORDPRESS_DB_USER=${MYSQL_USER}
          - WORDPRESS_DB_PASSWORD=${MYSQL_PASSWORD}
          - WORDPRESS_TABLE_PREFIX=${DB_PREFIX}
    
      bdd:
        # default port 3306
        image: 'mariadb'
        hostname: bdd
        container_name: bdd
        env_file:
          - .env
        restart: unless-stopped
        networks:
          - nt_wordpress
        environment:
          - MYSQL_DATABASE=${MYSQL_DATABASE}
          - MYSQL_USER=${MYSQL_USER}
          - MYSQL_PASSWORD=${MYSQL_PASSWORD}
          - MYSQL_ROOT_PASSWORD=${MYSQL_ROOT_PASSWORD}
        volumes:
          - ${MYSQL_LOCAL_HOME}:/var/lib/mysql
    
    networks:
      nt_wordpress:
        name: nt_wordpress
        driver: bridge
    
      mcvlan_nw:
        external: true

    Il nous manque maintenant le fichier des variables. On va créer le fichier .env

    sudo nano .env

    Puis nous indiquons les variables et les valeurs.

    #variable wordpress
    
    export WORDPRESS_LOCAL_HOME=./wordpress
    export WORDPRESS_UPLOADS_CONFIG=./config/uploads.ini
    export WORDPRESS_MUPLUGINS=./mu-plugins
    
    #variable mariadb
    
    export WORDPRESS_DB_HOST=bdd   
    export MYSQL_LOCAL_HOME=./mariadb
    export MYSQL_DATABASE=wordpress 
    export MYSQL_USER=NOM_USER  
    export MYSQL_PASSWORD=mot_de_passe_fort
    export MYSQL_ROOT_PASSWORD=mot_de_passe_encore_plus_fort
    
    export DB_PREFIX=mywp_

    Une fois toutes ces étapes réalisées, il suffira de lancer notre programme.

    sudo docker compose up -d

    Finalement il n’y aura plus qu’à renseigner l’IP du réseau macvlan pour s’y connecter.

    Dans notre exemple, il s’agira de http://192.168.1.1

    Conclusion

    Nous avons vu comment effectuer l’installation de WordPress sous docker.

    Encore une fois, Docker nous permet d’installer facilement un ensemble d’application très facilement.

    Lors d’un prochain article nous verrons comment rajouter Nginx, créer un nom de domaine gratuitement, et la mise en place du certificat https.