Ceci est une ancienne révision du document !
Table des matières
Un microserveur basse consommation pour héberger un site web
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)
Est-il pour autant ecolowtech ?
1 - Matériel
- Un ordinateur sous Linux
- Un Raspberry Pi Zero W
- Une carte mémoire microSD d'au moins 8Go pour le système d'exploitation
- Un câble microUSB pour alimenter le Raspberry Pi
- Une batterie USB OU Un panneau solaire capable de délivrer au moins 100mA en 5V
2 - Installer et configurer le système d'exploitation
- Télécharger Raspberry Pi OS Lite. Ici on a choisi la version Lite (Headless), car nous voulons réduire la consommation et n'avons pas besoin d'une interface de bureau
- Écrire l'image téléchargée sur la carte microSD (via l'utilitaire GNOME Disques, Etcher, ou une autre méthode)
- Sur la carte mémoire, aller dans le répertoire /boot/
- Créer un fichier /boot/ssh vide pour activer le SSH sur le Raspberry (désactivé par défaut)
touch /boot/ssh
- Créer un utilisateur et son mot de passe AVANT LE PREMIER DÉMARRAGE DU PI :
USER='pi' PASSWORD='raspberry' SALT='lalabomedia' NAME=$(eval openssl passwd -6 -salt '$SALT' -stdin <<< '$PASSWORD') echo $USER':'$NAME | sudo tee /boot/userconf.txt
- Connecter le Raspberry à votre réseau :
- Soit en filaire
- Soit en wifi : sur la carte mémoire, créer un fichier /boot/wpa_supplicant.conf qui contiendra :
echo 'country=FR ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev network={ ssid="Nom du wifi" psk="Mot de passe du wifi" key_mgmt=WPA-PSK }' | sudo tee /boot/wpa_supplicant.conf
- Éjecter proprement la carte SD
- L'insérer dans 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)
sudo nmap -sn 192.168.0.0/24
Si nmap n'est pas installé, tapez la commande suivante :
sudo apt install nmap
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 :
ssh pi@IP_QUE_VOUS_AVEZ_TROUVE
- 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) :
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
- Partie IP fixe du serveur
echo 'interface wlan0 static ip_address=192.168.0.254/24' | sudo tee -a /etc/dhcpcd.conf
- Partie DHCP (permettre à ceux qui se connectent d'avoir une IP) et DNS (faire que toutes les adresses web utilisées sur ce wifi pointent sur le serveur web du Raspberry Pi)
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
6 - Installer un serveur web HTTP léger
sudo apt install lighttpd sudo mv /var/www/html/index.lighttpd.html /var/www/html/index.html
A vous de copier le contenu de votre site web dans /var/www/html
7 - Optimiser la consommation du Raspberry Pi
On obtient une consommation totale de 50mA à 5V, soit 0,25W
- Extinction du port HDMI(-20mA?) :
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
- Extinction de la LED(-5mA?) :
echo 'dtparam=act_led_trigger=none dtparam=act_led_activelow=on' | sudo tee -a /boot/config.txt