Outils pour utilisateurs

Outils du site


micro-serveur-web

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentesRévision précédente
Prochaine révision
Révision précédente
micro-serveur-web [2022/07/04 14:04] manumeriquemicro-serveur-web [2023/08/31 18:09] (Version actuelle) manumerique
Ligne 3: Ligne 3:
 ===== 0 - But ===== ===== 0 - But =====
 L'idée est de démontrer qu'il est possible d'héberger un site web à bas coût et basse consommation énergétique (directe), éventuellement hors grille énergétique (solaire ou batterie) et hors réseau Internet (accès wifi) L'idée est de démontrer qu'il est possible d'héberger un site web à bas coût et basse consommation énergétique (directe), éventuellement hors grille énergétique (solaire ou batterie) et hors réseau Internet (accès wifi)
 +
 +Est-il pour autant [[https://ressources.labomedia.org/atelier_serveur_web_ecolowtech?s[]=micro&s[]=serveur|ecolowtech ?]]
  
 ===== 1 - Matériel ===== ===== 1 - Matériel =====
Ligne 23: Ligne 25:
   * Créer un utilisateur et son mot de passe **AVANT LE PREMIER DÉMARRAGE DU PI** :   * Créer un utilisateur et son mot de passe **AVANT LE PREMIER DÉMARRAGE DU PI** :
 <code> <code>
-USER='pi' +USER=pi 
-PASSWORD='raspberry' +PASSWORD=raspberry 
-SALT='lalabomedia' +SALT=lalabomedia 
-NAME=$(eval openssl passwd -6 -salt '$SALT-stdin <<< '$PASSWORD'+NAME=$(eval openssl passwd -6 -salt $SALT -stdin <<< $PASSWORD) 
-echo $USER':'$NAME | sudo tee /boot/userconf.txt+echo $USER':'$NAME | tee /boot/userconf.txt
 </code> </code>
   * Connecter le Raspberry à votre réseau :   * Connecter le Raspberry à votre réseau :
Ligne 40: Ligne 42:
  psk="Mot de passe du wifi"  psk="Mot de passe du wifi"
  key_mgmt=WPA-PSK  key_mgmt=WPA-PSK
-}' | sudo tee /boot/wpa_supplicant.conf+}' | tee /boot/wpa_supplicant.conf
 </code> </code>
   * Éjecter proprement la carte SD   * Éjecter proprement la carte SD
   * L'insérer dans le Raspberry   * L'insérer dans le Raspberry
   * Allumer le Raspberry   * Allumer le Raspberry
 +
 +===== 3 - Trouver son Raspberry =====
 +Il s'agit de retrouver l'IP de son Raspberry sur le réseau auquel on l'a connecté. Pour cela, soit :
 +  * Se connecter à l'interface du routeur si on y a accès, et retrouver son appareil dans les options
 +OU
 +  * Regarder l'IP de l'ordinateur avec lequel on se connecte, par exemple 192.168.0.13, et ne conserver que les 3 premiers octets (192.168.0)
 +  * Lancer un terminal et exécuter la commande suivante, avec les 3 premiers octets et en terminant par 0 (via sudo, sinon on ne verra pas le nom des machines)
 +<code>
 +sudo nmap -sn 192.168.0.0/24
 +</code>
 +Si nmap n'est pas installé, tapez la commande suivante :
 +<code>
 +sudo apt install nmap
 +</code>
 +Vous devriez avoir un appareil intitulé "Raspberry Pi Foundation", retenez son IP. Parfois le nom n'apparait pas. Cherchez alors un autre appareil probablement intitulé "Unknown"
 +
 +===== 4 - Se connecter à son Raspberry =====
 +Nous allons nous connecter en SSH au Raspberry, avec dans un terminal la commande suivante :
 +<code>
 +ssh pi@IP_QUE_VOUS_AVEZ_TROUVE
 +</code>
 +  * Le terminal vous demandera si vous faites confiance à cette machine. Tapez "yes" puis Entrée
 +  * Le terminal vous demandera le mot de passe. On a réglé plus haut ce mot de passe à "raspberry"
 +Vous êtes désormais connecté au Raspberry !
 +
 +===== 5 - Générer un wifi depuis le Raspberry Pi =====
 +  * Partie point d'accès wifi (créer un réseau wifi) :
 +<code>
 +WIFINAME='CourtCircuit'
 +sudo apt install hostapd
 +echo 'interface=wlan0
 +driver=nl80211
 +hw_mode=g
 +channel=6
 +ieee80211n=1
 +wmm_enabled=0
 +macaddr_acl=0
 +ignore_broadcast_ssid=0
 +auth_algs=1
 +ssid='$WIFINAME | sudo tee -a /etc/hostapd/hostapd.conf
 +sudo systemctl unmask hostapd
 +sudo systemctl enable hostapd
 +sudo systemctl restart hostapd
 +</code>
 +  * Partie IP fixe du serveur
 +<code>
 +echo 'interface wlan0
 +static ip_address=192.168.0.254/24' | sudo tee -a /etc/dhcpcd.conf
 +</code>
 +
 +===== 6 - Réorienter n'importe quelle URL vers le Raspberry Pi =====
 +  * Le DHCP-range indique les adresses IP que le wifi peut distribuer à ceux qui se connectent
 +  * Les lignes de type "address" spécifient une règle de DNS (résolution de nom de domaine). Ici on indique que quelque soit l'URL utilisée, on renvoie sur l'IP fixe du Raspberry Pi.
 +<code>
 +sudo apt install dnsmasq
 +echo 'interface=wlan0
 +dhcp-range=192.168.0.1,192.168.0.253,255.255.255.0,24h
 +cache-size=0
 +address=/#/192.168.0.254' | sudo tee -a /etc/dnsmasq.conf
 +sudo systemctl unmask dnsmasq
 +sudo systemctl enable dnsmasq
 +sudo systemctl restart dnsmasq
 +</code>
 +
 +===== 7 - Installer un serveur web HTTP léger =====
 +<code>
 +sudo apt install lighttpd
 +sudo mv /var/www/html/index.lighttpd.html /var/www/html/index.html
 +</code>
 +**A vous de copier le contenu de votre site web dans /var/www/html**
 +
 +===== 8 - Optimiser la consommation du Raspberry Pi =====
 +On obtient une consommation totale de 50mA à 5V, soit 0,25W
 +  * Extinction du port HDMI(-20mA?) :
 +<code>
 +sudo sed -i 's/vc4-kms-v3d/vc4-fkms-v3d driver/' /boot/config.txt
 +echo '@reboot /usr/bin/tvservice -o' | sudo tee -a /etc/crontab
 +</code>
 +  * Extinction de la LED(-5mA?) :
 +<code>
 +echo 'dtparam=act_led_trigger=none
 +dtparam=act_led_activelow=on' | sudo tee -a /boot/config.txt
 +</code>
 +
 +===== 9 - Et voualà ! =====
 +{{:microserveur.jpg?400|}}
 +
 +Il suffit de se connecter au wifi généré, et d'aller sur n'importe quelle URL qui redirigera sur le site hébergé par le Raspberry Pi.
 +
 +===== 1000 - One shot script - Avant branchement =====
 +Aller sur la carte SD dans /boot/
 +<code>
 +#!/bin/bash
 +# SSH activation BEFORE FIRST BOOT !!!!!!!!!
 +touch ssh
 +# SSH credentials
 +USER=pi
 +PASSWORD=raspberry
 +SALT=lalabomedia
 +NAME=$(eval openssl passwd -6 -salt $SALT -stdin <<< $PASSWORD)
 +echo $USER':'$NAME | tee userconf.txt
 +# Wifi connection
 +WIFISSID='MonWifi'
 +WIFIPASSWORD='MonMotDePasseWifi'
 +echo 'country=FR # Your 2-digit country code
 +ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev # Include this line for Stretch
 +network={
 +    ssid="'$WIFISSID'"
 +    psk="'$WIFIPASSWORD'"
 +    key_mgmt=WPA-PSK
 +}' | tee wpa_supplicant.conf
 +</code>
 +
 +===== 2000 - One shot script - Une fois connecté en SSH =====
 +<code>
 +#!/bin/bash
 +WIFINAME='CourtCircuit'
 +sudo apt install hostapd dnsmasq lighttpd
 +echo 'interface=wlan0
 +driver=nl80211
 +hw_mode=g
 +channel=6
 +ieee80211n=1
 +wmm_enabled=0
 +macaddr_acl=0
 +ignore_broadcast_ssid=0
 +auth_algs=1
 +ssid='$WIFINAME | sudo tee -a /etc/hostapd/hostapd.conf
 +echo 'interface wlan0
 +static ip_address=192.168.0.254/24' | sudo tee -a /etc/dhcpcd.conf
 +echo 'interface=wlan0
 +dhcp-range=192.168.0.1,192.168.0.253,255.255.255.0,24h
 +# pas de cache
 +cache-size=0 
 +# on indique via dnsmasq que toutes les requêtes vont vers l'ip locale
 +address=/#/192.168.0.254' | sudo tee -a /etc/dnsmasq.conf
 +sudo mv /var/www/html/index.lighttpd.html /var/www/html/index.html
 +sudo systemctl unmask hostapd dnsmasq
 +sudo systemctl enable hostapd dnsmasq
 +sudo systemctl restart hostapd dnsmasq
 +sudo sed -i 's/vc4-kms-v3d/vc4-fkms-v3d driver/' /boot/config.txt
 +echo '@reboot /usr/bin/tvservice -o' | sudo tee -a /etc/crontab
 +echo 'dtparam=act_led_trigger=none
 +dtparam=act_led_activelow=on' | sudo tee -a /boot/config.txt
 +# Put content in /var/www/html/
 +</code>
micro-serveur-web.1656943442.txt.gz · Dernière modification : 2022/07/04 14:04 de manumerique