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:07] 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
Ligne 69: Ligne 71:
   * Le terminal vous demandera le mot de passe. On a réglé plus haut ce mot de passe à "raspberry"   * 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 ! 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.1656943668.txt.gz · Dernière modification : 2022/07/04 14:07 de manumerique