Outils pour utilisateurs

Outils du site


micro-serveur-web

Ceci est une ancienne révision du document !


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
micro-serveur-web.1656944786.txt.gz · Dernière modification : 2022/07/04 14:26 de manumerique