======== Installer un serveur MQTT sur un raspberryPI ========

==== Materiels ====

   -- 1 RaspberryPI ( ZeroW, PI3, PI4, PI5 )
   -- 1 alimentattion pour le raspberry
   -- 1 boitier raspberry
   -- 1 carte SD 16 ou 32 Go
   -- 1 Box avec le wifi activé et joignable par le raspberry

==== Logiciels ====

   -- Dernière version de [[https://www.raspberrypi.com/software/|Raspberry PI OS]] ( ex Raspbian) en mode serveur ( sans interface graphique)
   -- [[start:raspberry:installation|Installation RaspberryOS]]
   -- Sous windows [[https://mosquitto.org/files/binary/win64/mosquitto-2.0.18-install-windows-x64.exe|MQTT windows11 64b]] 
<note> Sous windows 11 , je ne détaille pas l'installation [[https://learn.microsoft.com/fr-fr/azure/iot-develop/tutorial-use-mqtt|voir ICI]]     [[https://cedalo.com/blog/how-to-install-mosquitto-mqtt-broker-on-windows/|ou ICI]]</note>
   
   
==== Prérequis à savoir ====

   -- Vouloir installer MQTT
   -- Utiliser la  ligne de commande en mode terminal sous Linux ou sous windows ( avec [[https://www.chiark.greenend.org.uk/~sgtatham/putty/latest.html|Putty]]  )
   -- [[start:raspberry:accesexterne|acceder à votre raspberry depuis internet ]]


==== Installation MQTT ====

Une fois le matériel sous la main, il vous faudra procéder à [[start:raspberry:installation|l’installation de RaspberryPIOS (Raspbian)]]  sur la carte SD du Raspberry Pi. 

Maintenant, notre Rasperry Pi est prêt à accueillir son broker MQTT Mosquitto. Pour ce faire, connectez vous à ce dernier en SSH et taper la commande d’installation de Mosquitto en mode terminal ou avec Putty.

  sudo apt-get install mosquitto
  
Puis vérifiez que tout est opérationnel avec la commande suivante.

  systemctl status mosquitto
  
  
le forcer à se lancer à chaque démarrage de notre Raspberry Pi.

  sudo systemctl enable mosquitto.service

  
  
== Config Reseau pour connection anonyme ==

 sudo nano /etc/moquitto/mosquito.conf
   #listerner 1883
   port 1883
   allow_anonymous true
   
<note>Noubliez pas faire ctrl +o pour sauver, de valider avec Entrée, et de quitter avec ctrl + x </note>   
Installer le pare-feux ufw
   sudo apt-get install ufw


Activer le pare feux ufw 
   ufw enable  
et ouvrir les ports sur le raspberry
   sudo ufw allow 1883
   sudo ufw allow 1880
   sudo ufw allow 22

afficher l'etat des regles du pare feux
   sudo ufw status verbose
   
Pour activer la journalisation du pare feux
   sudo ufw logging on   
  
  
C’est terminé, votre serveur MQTT local est en place et prêt à collecter les messages ! 


 __Pour sécuriser son broker Mosquitto MQTT ( remplacer  ID par votre identifiant et ensuite entrer 2 fois votre mot de passe__

  sudo mosquitto_passwd -c /etc/mosquitto/passwd ID
ajouter deux lignes au fichier de configuration de Mosquitto via l’éditeur de texte :

   sudo nano /etc/mosquitto/mosquitto.conf
   
   allow_anonymous false 
   password_file /etc/mosquitto/passwd
   

<note>Noubliez pas faire ctrl +o pour sauver, de valider avec Entrée, et de quitter avec ctrl + x </note>  