décembre 25

Serveur Domoticz pour TD/TP en BTS SN

But: monter un serveur Domoticz avec des modules sonoff a base de esp8266 pour faire des TD / TP en BTS SN ( ancien BTS Electronique ).
le Raspberry communique avec les modules sonoff avec un réseau wifi séparé du réseau local.
Matériel nécessaire :
– Un Raspberry PI 3 ( ou un autre avec dongle wifi ) avec carte SD de 8Go ( actuellement ~3.5Go utilisé )
– Un écran 7″ officiel tactile pour le Raspberry pi ( optionnel )
– plusieurs modules “SonOff” pour la partie purement Domotique ( attention présence de tension secteur 220v )

le tuto est découpée en plusieurs parties a suivre dans l’ordre
-Installation du Raspberry PI
-Début du paramétrage
-Installation de Node-Red
-Installation de Webmin
-Hotspot Wifi et DHCP
-Serveur Web nginx
-Installation phpmyadmin depuis les sources
-Configuration de Samba
-Installation de eZServerMonitor
-l’ecran 7″ tactile officiel du Rapsberry pi
-Test divers
-Mise à jour de domoticz par tache cron ( Optionel )
-Sauvegarde des bases de données SQL

Partie 1 ) Installation du Raspberry PI
On récupère l’image “raspbian lite” sur https://www.raspberrypi.org/downloads/raspbian/
Une fois l’image récupérée on va la copier sur la carte SD , avec Win32diskimage ou autre logiciel
On accède a la partition FAT32 de la carte SD et on crée un fichier texte que l’on appelle ssh , cela activera le serveur ssh du Pi au démarrage
On met la carte SD dans le Raspberry et on démarre le système , si l’écran est branché on peux suivre le processus , sinon attendre environ 5mn
On Scanne son réseau avec un utilitaire ( dans mon cas Angry Ip Scanner => http://angryip.org/ ) pour trouver l’adresse du PI
on se connecte en SSH ( utilisateur: pi , mot de passe: raspberry )

Dans le reste du Tuto lorsqu’il y a des lignes de commandes, celles commençant par $ sont lancées avec l’utilisateur pi et celles commençant par # par l’utilisateur root ( ne pas taper $ ou # lors des commandes ). et lorsque dans les lignes de commandes si en fin de ligne il y a \ cela veux dire que la commande continue sur la ligne suivante il faut tous taper sur une seule ligne et de pas mettre le \ .
quand je dis on edite le fichier x , cela veux dire : sudo nano x

 

on vas changer locale , timezone , key, wifi

on vas changer le mot de passe du compte root => “Domotic”

Mise a jour kernel & firmware

Une fois a jour on reboot et on enlève l’ancien firmware (4.14.34 dans mon cas ) , faire ls -al /lib/modules pour voir les versions installées . on peux meme enlever celui qui ne se termine pas pas v7+

on met a jour les paquets

on commence a installer tous ce que l’on a besoin on paramétreras ça plus tard

un petit reboot et on vas commencer le paramétrage

 

Partie 2 ) Début du paramétrage

on vas autoriser tous les utilisateur a lancer le serveur graphique

on vas sécuriser les bases SQL ( Domotic en mdp , supprimer les bases test , autoriser le remote …)
Remove anonymous users? => Y
Disallow root login remotely? => N
Remove test database and access to it? => Y

maintenant on vas installer  Domoticz. Plus besoin d’installer les sources et de compiler

en réseau local pas besoin de IPV6 , on vas le desactiver  , editer /etc/sysctl.conf et ajouter a la fin :

on actualise

Partie 3 ) Installation de Node-Red 

Partie 4 ) Installation de Webmin

on editer /etc/webmin/miniserv.conf , et changer ssl=1 en ssl=0

se connecter sur la page de webmin http://ip_du_pi:1000 ( user: root , mdp : Domotic)
passer webmin en Francais : menu webmin , Configuration de Webmin , langue
télécharger le module de gestion de nginx sur https://www.justindhoffman.com/sites/justindhoffman.com/files/nginx-0.10.wbm_.gz
ajouter le module dans webmin : menu webmin , Configuration de Webmin , modules webmin ,

Partie 5 ) Hotspot Wifi et DHCP

ajouter a la fin: le PI chercheras un dhcp sur son interface filaire , mais pour la partie wifi c’est lui qui serat serveur DHCP

on attaque la partie hotspot en éditant  /etc/hostapd/hostapd.conf
si vous voulez changer le code wifi ou le ssid c’est le moment

le PI vas aussi servir de serveur DNS pour le reseau Wifi , on edite  /etc/hosts

config serveur dhcp sur wlan0 bloc adr de 192.168.254.10 -> 192.168.254.200 . On vas forcer l’ip de wlan0 ,  on édite  /etc/network/interfaces
et ajouter :

partie serveur dhcp

Editez /etc/default/hostapd , ajouter :

dans /etc/sysctl.conf ajouter

le Pi vas servir de serveur ntp (time) pour les modules domotiques sonoff , on édite /etc/ntp.conf et on ajoute

 

Partie 6 ) Serveur Web nginx

Au lieu d’utiliser Apache en serveur Web on vas utiliser nginx ( moins gourmand en mémoire) , ne gérant pas l’activation / désactivation des sites virtuels comme apache on vas creer un fichier nginx_modsite et le rendre executable

contenu de nginx_modsite

on vas supprimer les config par defaut de nginx

on vas créer tous les fichiers de config nginx

contenu de 0000-default

contenu de domo.home

contenu de node.home

contenu de nofuss.home

contenu de sql.home

contenu de status.home

contenu de system.home

contenu de webmin.home

maintenant on active les sites

on vérifie les sites avec : $sudo nginx_modsite -l
On ne redémarre pas encore nginx car pas encore installés les différents sites

 Partie 7 ) Installation phpmyadmin depuis les sources (version 4.8.1 au 2018/05/27)

pour accéder a phpmyadmin en root , on édite /etc/mysql/mariadb.conf.d/50-server.cnf et ajouter apres bind-address = 127.0.0.1

on édite /etc/mysql/debian.cnf et on met le mot de passe sql  (Domotic) puis on lance :

on édite /usr/share/phpmyadmin/config.inc.php

on relance le service sql

 

 Partie 8 ) Configuration de Samba

on vas créer 3 partages : [Web] => /var/www/ , [Home] => /home/pi/ , [Logs] => /var/log/
contenu de smb.conf

 

Partie 9 ) Installation de eZServerMonitor

On edite /var/www/eZServerMonitor-2.5/conf/esm.config.json , enlever la section ping dans services enlever email server , ftp et ajouter apres la section Web Server :

 

Partie 10 ) l’ecran 7″ tactile officiel du Rapsberry PI ( optionnel  )

On vas lancer Firefox en plein écran au démarrage du PI

on Édite /boot/config.txt et on ajoute , a adapter en fonction de la position du PI

on vas forcer le paramétrage de Firefox

contenu de profiles.ini

on vas éditer .bashrc pour forcer le lancement de firefox au démarrage du PI , a rajouter a la fin du .bashrc

contenu de kiosk

puis un chmod +x ./kiosk et on reboot le pi , normalement vas lancer firefox en plein ecran .
toujours en ssh faire : pkill firefox

relancer le PI , maintenant le PI lance firefox au démarrage avec la page www.domo.home

 

Partie 11 ) Test divers 
se connecter sur le wifi du PI depuis une tablette ou un smartphone et tester les sites suivants :
domo.home,www.domo.home,  => Serveur Web Domoticz
sql.domo.home,www.sql.domo.home, => Admnistration des bases SQL
webmin.domo.home,www.webmin.domo.home, => Webmin pour configuration serveur
nofuss.domo.home,www.nofuss.domo.home, ** => Pour maj des firmware des modules SonOff en cours de Dev
node.domo.home,www.node.domo.home, => pour faire des Scripts en NodeRed
status.domo.loca,www.status.domo.home, => affichage status du PI , cpu , memoire , espace disque
system.domo.home,www.system.domo.home** => interface générale pour lancer les sites

** devrait sortir un message d’erreur pas pas encore de fichiers/dossiers crées

sur un PC windows en connexion filaire éditer le fichier C:\Windows\System32\drivers\etc et ajouter , en remplaçant 192.168.xxx.xxx par l’IP ‘filaire’ du PI

 

Partie 12 ) Mise à jour de domoticz par tache cron ( Optionel )
mise a jour de domoticz automatique

rendre le script exécutable et ajouter tache cron a 0h30 , 6h30 , 12h30 , 18h30,21h30

et saisir :

 

Partie 13 ) Sauvegarde des bases de données SQL

script de sauvegarde des bases dans /opt/SAVE/sql ( daily latest monthly weekly )

planification taches cron sauvegarde tous les soir a 22h30

pour eviter le message “– Warning: Skipping the data of table mysql.event. Specify the –events option explicitly.”

ensuite insérer le code suivant :

 

Partie 14 ) xxxxx

En cours d’éciture

Partie 15 ) xxxxx

En cours d’éciture

Conclusion ( provisoire )
Reste a faire les dossier /var/www/nofuss.domo.home et /var/www/system et pour ceux qui sont perdu  , un fichier .gz avec tous les fichiers conf modifiés pour injection directe dans le PI ( il faudras faire juste les parties 1,2,3 et 4 ) sera disponible très bientôt

 

Liens divers utilisée pour faire ce Tuto :

http://www.instructables.com/id/Raspberry-Pi-Web-Server-Nginx-PHP-MySql/
https://frillip.com/using-your-raspberry-pi-3-as-a-wifi-access-point-with-hostapd/
http://linuxfr.org/wiki/raspberrypi-remplacer-son-systeme-de-fichier-par-f2fs-formatage
https://www.howtoforge.com/tutorial/installing-nginx-with-php7-fpm-and-mysql-on-ubuntu-16.04-lts-lemp
https://www.digitalocean.com/community/questions/phpmyadmin-or-alternative-for-php7-nginx-mysql-5-7-ubuntu-16-04
https://www.citizenz.info/mariadb-mysql-connexion-root-avec-phpmyadmin-sous-ubuntu-16-04
https://publications.jbfavre.org/web/nginx-vhosts-automatiques-avec-SSL-et-authentification.fr
https://www1.zonewebmaster.eu/serveur-debian-mysql:automysqlbackup
https://serverfault.com/questions/424452/nginx-enable-site-command
https://anderson69s.com/2017/03/18/domoticz-domotique-diy/6/
http://hallard.me/pitinfov12/
http://hallard.me/pitinfo/



Ecrit décembre 25, 2017 par Rami Thierry dans la catégorie "Uncategorized