====== 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 !