micro-serveur-web
Différences
Ci-dessous, les différences entre deux révisions de la page.
Prochaine révision | Révision précédenteProchaine révisionLes deux révisions suivantes | ||
micro-serveur-web [2022/07/04 13:09] – créée manumerique | micro-serveur-web [2022/07/05 10:33] – manumerique | ||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
====== Un microserveur basse consommation pour héberger un site web ====== | ====== Un microserveur basse consommation pour héberger un site web ====== | ||
+ | |||
+ | ===== 0 - But ===== | ||
+ | L' | ||
+ | |||
+ | Est-il pour autant [[https:// | ||
+ | |||
+ | ===== 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' | ||
+ | * 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' | ||
+ | |||
+ | * Télécharger [[https:// | ||
+ | * Écrire l' | ||
+ | * 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=' | ||
+ | PASSWORD=' | ||
+ | SALT=' | ||
+ | NAME=$(eval openssl passwd -6 -salt ' | ||
+ | echo $USER':' | ||
+ | </ | ||
+ | * Connecter le Raspberry à votre réseau : | ||
+ | * Soit en filaire | ||
+ | * Soit en wifi : sur la carte mémoire, créer un fichier / | ||
+ | |||
+ | < | ||
+ | echo ' | ||
+ | ctrl_interface=DIR=/ | ||
+ | network={ | ||
+ | ssid=" | ||
+ | psk=" | ||
+ | key_mgmt=WPA-PSK | ||
+ | }' | sudo tee / | ||
+ | </ | ||
+ | * Éjecter proprement la carte SD | ||
+ | * L' | ||
+ | * 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' | ||
+ | OU | ||
+ | * Regarder l'IP de l' | ||
+ | * 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/ | ||
+ | </ | ||
+ | Si nmap n'est pas installé, tapez la commande suivante : | ||
+ | < | ||
+ | sudo apt install nmap | ||
+ | </ | ||
+ | Vous devriez avoir un appareil intitulé " | ||
+ | |||
+ | ===== 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 " | ||
+ | * Le terminal vous demandera le mot de passe. On a réglé plus haut ce mot de passe à " | ||
+ | Vous êtes désormais connecté au Raspberry ! | ||
+ | |||
+ | ===== 5 - Générer un wifi depuis le Raspberry Pi ===== | ||
+ | * Partie point d' | ||
+ | < | ||
+ | WIFINAME=' | ||
+ | sudo apt install hostapd | ||
+ | echo ' | ||
+ | driver=nl80211 | ||
+ | hw_mode=g | ||
+ | channel=6 | ||
+ | ieee80211n=1 | ||
+ | wmm_enabled=0 | ||
+ | macaddr_acl=0 | ||
+ | ignore_broadcast_ssid=0 | ||
+ | auth_algs=1 | ||
+ | ssid=' | ||
+ | sudo systemctl unmask hostapd | ||
+ | sudo systemctl enable hostapd | ||
+ | sudo systemctl restart hostapd | ||
+ | </ | ||
+ | * Partie IP fixe du serveur | ||
+ | < | ||
+ | echo ' | ||
+ | static ip_address=192.168.0.254/ | ||
+ | </ | ||
+ | |||
+ | ===== 6 - Réorienter n' | ||
+ | * Le DHCP-range indique les adresses IP que le wifi peut distribuer à ceux qui se connectent | ||
+ | * Les lignes de type " | ||
+ | < | ||
+ | sudo apt install dnsmasq | ||
+ | echo ' | ||
+ | dhcp-range=192.168.0.1, | ||
+ | cache-size=0 | ||
+ | address=/#/ | ||
+ | sudo systemctl unmask dnsmasq | ||
+ | sudo systemctl enable dnsmasq | ||
+ | sudo systemctl restart dnsmasq | ||
+ | </ | ||
+ | |||
+ | ===== 7 - Installer un serveur web HTTP léger ===== | ||
+ | < | ||
+ | sudo apt install lighttpd | ||
+ | sudo mv / | ||
+ | </ | ||
+ | **A vous de copier le contenu de votre site web dans / | ||
+ | |||
+ | ===== 8 - 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 ' | ||
+ | echo ' | ||
+ | </ | ||
+ | * Extinction de la LED(-5mA?) : | ||
+ | < | ||
+ | echo ' | ||
+ | dtparam=act_led_activelow=on' | ||
+ | </ | ||
+ | |||
+ | ===== 9 - Et voualà ! ===== | ||
+ | {{: | ||
+ | |||
+ | Il suffit de se connecter au wifi généré, et d' | ||
+ | |||
+ | ===== 1000 - One shot script - Avant branchement ===== | ||
+ | Aller sur la carte SD dans /boot/ | ||
+ | < | ||
+ | #!/bin/bash | ||
+ | # SSH activation BEFORE FIRST BOOT !!!!!!!!! | ||
+ | touch ssh | ||
+ | # SSH credentials | ||
+ | USER=' | ||
+ | PASSWORD=' | ||
+ | SALT=' | ||
+ | NAME=$(eval openssl passwd -6 -salt ' | ||
+ | echo $USER':' | ||
+ | # Wifi connection | ||
+ | WIFISSID=' | ||
+ | WIFIPASSWORD=' | ||
+ | echo ' | ||
+ | ctrl_interface=DIR=/ | ||
+ | network={ | ||
+ | ssid="' | ||
+ | psk="' | ||
+ | key_mgmt=WPA-PSK | ||
+ | }' | sudo tee wpa_supplicant.conf | ||
+ | </ | ||
+ | |||
+ | ===== 2000 - One shot script - Une fois connecté en SSH ===== | ||
+ | < | ||
+ | #!/bin/bash | ||
+ | WIFINAME=' | ||
+ | sudo apt install hostapd dnsmasq lighttpd | ||
+ | echo ' | ||
+ | driver=nl80211 | ||
+ | hw_mode=g | ||
+ | channel=6 | ||
+ | ieee80211n=1 | ||
+ | wmm_enabled=0 | ||
+ | macaddr_acl=0 | ||
+ | ignore_broadcast_ssid=0 | ||
+ | auth_algs=1 | ||
+ | ssid=' | ||
+ | echo ' | ||
+ | static ip_address=192.168.0.254/ | ||
+ | echo ' | ||
+ | dhcp-range=192.168.0.1, | ||
+ | # pas de cache | ||
+ | cache-size=0 | ||
+ | # on indique via dnsmasq que toutes les requêtes vont vers l'ip locale | ||
+ | address=/#/ | ||
+ | sudo mv / | ||
+ | sudo systemctl unmask hostapd dnsmasq | ||
+ | sudo systemctl enable hostapd dnsmasq | ||
+ | sudo systemctl restart hostapd dnsmasq | ||
+ | sudo sed -i ' | ||
+ | echo ' | ||
+ | echo ' | ||
+ | dtparam=act_led_activelow=on' | ||
+ | # Put content in / | ||
+ | </ |
micro-serveur-web.txt · Dernière modification : 2023/08/31 18:09 de manumerique