====== UTILISER UN RASPBERRY PI 4 ======
{{ :kerhost:install:rpi4.jpg?nolink&400 |}}
----
Il est possible d'installer **KerHost** sur un serveur lowtech de type **[[https://www.raspberrypi-france.fr/raspberry-pi-4/|Raspberry Pi 4]] 2Go** (en dessous ce n'est pas la peine et un **4Go** est fortement recommandé). Dans le cas d'un [[kerhost:autohebergement|auto-hébergement]] familial (petite structure), c'est tout simplement l'idéal :
* il consomme très peu d'**énergie** (3A)
* il est **fiable**
* il ne **prend pas de place**
* il ne fait pas de **bruit** (pas de ventilateur)
* il peut être couplé à un **disque dur externe** (fortement conseillé !)
* vous avez un total contrôle de ce dernier\\
Transformer un **Raspberry Pi** en serveur, c'est générer beaucoup d'**accès disque**. Par défaut, il n'y a pas de disque dur sur un Raspberry Pi, mais une carte **MicroSD** qui n'est absolument pas faite pour ce genre d’utilisation, même si vous y mettez le prix. Donc oubliez rapidement cette option pour une utilisation de type production, il va falloir ajouter un** disque dur externe** à votre RPI. Vu le prix d'un disque dur externe de 1To, cela serait vraiment dommage de s'en priver. Il vous faudra donc pour l'installation une **carte MicroSD** de 16Go minimum (oui oui, juste pour l'installation !) sur laquelle il faudra dans un premier temps installer **Raspi OS Lite**, et dans un deuxième temps transférer son contenu sur le disque dur externe avant de procéder à l'[[kerhost:installation|installation]].
Pour le moment, il n'y a pas d'image ISO de **KerHost** prête à être flashée sur la carte **MicroSD**, mais j'y pense sérieusement (c'est le prochain gros chantier !). Voici la **procédure rapide** pour préparer votre **Raspberry Pi** à recevoir **KerHost** (niveau avancé, savoir manier la ligne de commande !) :
**Préparation du Raspberry pi :**
- **Télécharger Raspi OS Lite 32bit** à cette [[https://www.raspberrypi.org/downloads/raspbian/|adresse]] ou **Raspi OS Lite 64bit** à cette [[https://downloads.raspberrypi.org/raspios_lite_arm64/images/|adresse]]. Si vous souhaitez tirer le meilleur de la puissance de votre **Raspberry Pi**, il est alors fortement conseillé de choisir la version **64bit** (qui est hélas, pour ne moment, très peut mise en avant par la fondation **raspbian** mais qui existe belle est bien !).
- **Dézipper** l'archive.
- **Déployez** l'**image ISO** (avec [[https://www.balena.io/etcher/|Etcher]] par exemple ou avec une autre méthode) sur votre carte **MicroSD**.
- **Démarrez** votre RPI.
- Assurez-vous que le RPI dispose d'une **adresse IP fixe** ou d'un **bail DHCP permanent** (à régler sur votre routeur/box). De préférence utilisez la connexion **filaire** et non wifi, cela sera bien plus performant.
- **Modifier** les paramètres du **PI** avec l'outil **[[kerhost:raspi-config|raspi-config]]** (nom du serveur, type de clavier, support **français**, et surtout très important le **nom** de votre raspberry !)
- Ajouter un autre compte **administrateur** et supprimer le compte **pi** (pour des raisons de sécurité) de la façon suivante :
- ''ssh pi@adresse_ip_du_rpi'' <- On se connecte au RPI en SSH
- ''sudo su'' <- On se met root
- ''useradd -m -d /home/nouveau_compte/ -s /bin/bash nouveau_compte'' <- On créé un nouveau compte
- ''passwd nouveau_compte'' <- On créé le mot de passe de ce nouveau compte. **Attention !!!** Il faut un mot de passe robuste de 12 caractères minimum, comprenant une majuscule et un chiffre minimum.
- ''usermod -G sudo nouveau_compte'' <- On définit le compte comme administrateur
- ''exit'' <- On quitte la session root du compte pi.
- ''su nouveau_compte'' <- On teste en se connectant avec le nouveau compte
- ''sudo su'' <- On teste si le nouveau compte est bien admin
- ''reboot'' <- On redémarre le RPI
- ''ssh nouveau_compte@adresse_ip_du_rpi'' <- On se connecte au RPI en SSH avec le nouveau compte
- ''sudo su'' <- On se met root
- ''userdel -r pi'' <- On suprime le compte pi qui ne sert plus à rien
- **Branchez** le **disque dur externe** afin de le préparer :
- ''fdisk /dev/sda'' et tapez ''d'' puis ''w'' <- On supprime la partition existante (qui est en général du FAT32)
- ''fdisk /dev/sda'' et tapez ''n'' puis 3 fois ''enter'' puis ''y'' puis ''w'' <- On créé une nouvelle partition
- ''mke2fs -t ext4 -L rootfs /dev/sda1'' <- On formate en ext4 la nouvelle partition
- ''mount /dev/sda1 /mnt'' <- On monte la nouvelle partition dans /mnt
- ''rsync -avx / /mnt'' <- On copie l'intégralité de root (/) de la carte MicroSD sur la nouvelle partition sda1 qui est montée dans /mnt
- ''nano /boot/cmdline.txt'' <- On modifie le fichier cmdline.txt pour qu'au prochain redémarrage on démarre bien sur le disque dur externe. Il faut modifier la partie qui ressemble a root=PARTUUID=f1a73901-02 en root=/dev/sda1 (**notez** quelque part ce bout de code que vous allez changer en cas de problème !)
- ''nano /boot/config.txt'' <- On modifie le fichier config.txt pour ajouter à la fin du fichier program_usb_timeout=1, cela permet au système quand il démarre d'attendre que le disque dur externe soit bien disponible.
- **Redémarrez** et voila, votre **RPI** est prêt à recevoir **[[kerhost:installation|KerHost]]**.
**Il ne faut surtout pas retirer la carte MicroSD !** C'est elle qui contient la partition de **boot**. En cas de **problème**, il est possible de **redémarrer** sur la carte **MicroSD** en modifiant le fichier /boot/cmdline.txt et en remplaçant la valeur initiale (qui ressemble à root=PARTUUID=f1a73901-02) que vous avez dû noter !
Les performances du **RPI** vont dépendre de l'utilisation que vous allez en faire. Beaucoup de services sont installés et la capacité mémoire du PI dépend de votre version (**2/4/8Go**). Une fois démarré après installation de **KerHost**, il ne lui restera plus beaucoup de mémoire disponible pour une version **2Go**. Il peut-être alors judicieux de désactiver des [[kerhost:services|services]] que vous n'utiliserez pas (proxy, vpn...). **NextCloud** est très gourmand (surtout si l'on active beaucoup d’applications) et peut facilement faire **ralentir** le serveur !