Mini-tuto : Installation et paramétrage de l'OS DietPi sur Raspberry Pi...et mini-PC et installer par script Gladys ensuite

Un mini-tuto pour installer DietPi sur un Raspberry Pi dont vous trouverez plus d’infos sur leur site > https://dietpi.com

Pourquoi ce choix ? C’est une version plus allégée que l’image Raspberry Lite mais plus fonctionnelle surtout (update et outils :+1:) et qui s’installe aussi sur un mini-PC la procédure est un peu différente mais suffisamment bien expliquée donc pas de tuto sur ce point
Un autre avantage est de pouvoir nstaller une interface GUI si besoin ou continuer avec un serveur uniquement en CLI

https://dietpi.com/docs/install/#how-to-install-dietpi-native-pc

(à savoir il est possible d’installer DietPi sur n’importe quel système Debian en lançant cette commande en ssh
sudo bash -c "$(curl -sSfL 'https://raw.githubusercontent.com/MichaIng/DietPi/master/.build/images/dietpi-installer')" attention il faut faire des sauvegardes de l’existant ou des données à préserver car il allège la distribution cible en supprimant pas mal de paquets inutiles)

En premier lieu on va télécharger l’image en allant sur la section

DietPi - Lightweight justice for your SBC!

On choisit
bb2c71e832717c8925c9682773eaae803640b3a1

puis on download l’image

0f90bb04aa272cdb0201f71ff162974697076253

on dézippe l’archive DietPi_RPi-ARMv8-Bookworm.img.xz vers DietPi_RPi-ARMv8-Bookworm.img

On lance Raspberry Pi imager, pour le choix de l’image on sélectionne « use custom »

4482eb6ebe8d57b6b348cb9e2a3373d1b457eac2

et on sélectionne l’image

1cda0ae7258d47e994101f52ab2a0ac4a29755a8

puis le stockage

abde95ec92cf65f57a0512eac73cc2958adc71f4

et on lance l’installation

on rentre les login root et password dietpi (> How to install DietPi - DietPi.com Docs)

et on se retrouve au 1er contact de l’interface…Sympa il y a pas !

8164d3e61f425e752af0469375e80c4676b40188

En lançant dietpi-launcher on accède à l’ensemble des outils proposés dans la distrib

on commence par faire un update

8dd94d47fc01495dd2e507b3c5c4a0c503f4f163

On va dans Dietpi-Software
255f50ee583a684a82e6c88969e2526a9fb90ca2

549cb39ec01cb2201d210aa0f71eb2d8e2029afc

A ce stade on peut se contenter de DietPi-Dashboard car on y retrouvera l’installation des softs de manière plus conviviale mais on peut installer le minimum des logiciels (pour le 63 LinuxDash j’ai choisi Lighttpd) dont Node-red, I2C et Python (pour piloter les IO du Raspberry Pi

85f8b70ca82a7d1dad2ffd69eb9630343f355d43

a6bb84f5498b15d1b349acedf3bd30e36d5d5e05

Confirmez les choix des softwares à installer
47935b75e8b6628c3d232d960bfc3c0b036b49b5

Les softs à installer
[*] 72 I2C: enables support for I2C based hardware

[] 200 DietPi-Dashboard: Official lightweight DietPi web interface (Rust)
ou/et
[
] 63 LinuxDash: web interface system stats

[] 81 LLSP: Lighttpd + SQLite + PHP

[] 122 Node-RED: tool for wiring devices, APIs and online services

[] 122 Docker

Je préfères utiliser celui-ci plutôt que l’intégration de Gladys car les flows sont sauvegardable dans un point de montage commun aux softs installés backupable facilement

[*] 73 Fail2Ban: prevents brute-force attacks with ip ban

  • Fail2Ban permet de limiter les tentatives d’intrusion, vous pouvez modifier les paramètres en ssh en éditant le fichier avec la comnande suivante :

sudo nano /etc/fail2ban/jail.conf

Si vous voulez en SSH utiliser un gestionnaire de fichier
[*] 3 MC: Midnight Commander - a powerful file manager

Et les installer !
f8addbdc1a9f2d9c3c3b2cbff9a557dffeafad43

Pour modifier l’adresse de la carte réseau, il suffit de lancer dietpi-config

0924236a6179fae56a65808dd1bbfa8611ff047b
1b3e7ef5de7c56521765e00fd742154feaed3ec7
bccec992d24d217349af3dbf779c2e4c3063a636

Pour modifier le serveur SSH (dropbear par défaut) pour OpenSSH (il intègre un serveur SFTP ce qui permet la connexion sécurisée via Filezilla au contenu du lecteur emmc du NRX800 !) il suffit d’éffectuer les actions suivantes :

75a6a565e4c7a1ffd4749dbbceba4e19471c01cd

ce01a19356fe4485282fa7079d1b61180ce66f4d

29b301210817aa0d6c72356b3ca36ca5e3cddbf8

8c189421e04e72190ce96c965ea14bfa46ef47be

3d32c6fd569053973819a1ab033a66484de9d1cc

le dashboard de Dietpi Dashboard plutôt bien foutu !

6e792cb4114e7cf642a0d50289390b000cdd5b3c_2_517x313

8ab97c96e7f411f885a27fcf1876d143fbb0d904_2_517x315

La doc est là

Features of the new DietPi-Dashboard – DietPi Blog

Le Linux dash de Dietpi

2b00e728409b626dc84697de388f91f543a91a7f_2_517x332

un dashboard html entièrement réalisé sous Node-red avec le node dashboard pour piloter mes systèmes domotiques et avoir en un seul point tout mes liens, ici Gladys

un dashboard html entièrement réalisé sous Node-red avec le node ui_builder

db5fcf570eb290ae37ce08a479910fae94152c21_2_517x373

Piloter les relais de mon IPX800V5 via les API avec une maj de l’état des relais en temps réel (enfin toutes les 500ms ici mais cela pourrait être moins :wink:)

Bref une super distribution pour avoir un même système sur Raspberry Pi et mini-PC et même en VM (vmware proxmox etc)

Pour l’install de Gladys il suffit de suivre les tutos habituels

@pierre-gilles A toi de voir si cela ne serait pas le système idéal car multi-plateforme avec des maj mensuelles pour héberger Gladys sur cette offre de mini-pc que tu propose en kit maintenant (belle initiative)…Peut-être les contacter pour y intégrer Gladys dans la partie domotique (il propose OpenHab, Domoticz, HA)

Ajout du 17/09/2024

Pour installer Gladys ensuite sur la distribution DietPi (qui est une debian bookworm actuellement) il suffit de copier le contenu en ssh dans un fichier
édité avec nano appelé « create_and_run_gladys_watchtower.bat » puis de l’éxecuter, il est possible d’ajouter l’installation de fail2ban et node-red mais pas utile puisqu’ils sont installables avec dietpi-software

create_and_run_gladys_watchtower.bat

@echo off
echo Création du script install_gladys_watchtower.sh…

(
echo # Debut du code de la partie bash

echo #!/bin/bash
echo.
echo # Vérifier si Docker est installé
echo if ! [ -x « $(command -v docker) » ]; then
echo ^ echo « Docker n’est pas installé. Installation de Docker… »
echo ^ curl -fsSL https://get.docker.com -o get-docker.sh
echo ^ sh get-docker.sh
echo ^ rm get-docker.sh
echo fi
echo.

echo # Création du groupe docker s’il n’existe pas
echo if ! grep -q « ^docker: » /etc/group; then
echo ^ sudo groupadd docker
echo fi
echo.

echo # Ajout de l’utilisateur ‹ user › au groupe docker
echo sudo usermod -aG docker user
echo.

echo # Lancer le container Docker pour Gladys Assistant
echo docker run -d ^
–log-driver json-file ^
–log-opt max-size=10m ^
–cgroupns=host ^
–restart=always ^
–privileged ^
–network=host ^
–name gladys ^
-e NODE_ENV=production ^
-e SERVER_PORT=80 ^
-e TZ=Europe/Paris ^
-e SQLITE_FILE_PATH=/var/lib/gladysassistant/gladys-production.db ^
-v /var/run/docker.sock:/var/run/docker.sock ^
-v /var/lib/gladysassistant:/var/lib/gladysassistant ^
-v /dev:/dev ^
-v /run/udev:/run/udev:ro ^
gladysassistant/gladys:v4
echo.

echo # Lancer le container Docker pour Watchtower
echo docker run -d ^
–name watchtower ^
–restart=always ^
-v /var/run/docker.sock:/var/run/docker.sock ^
containrrr/watchtower ^
–cleanup --include-restarting

echo # Fin du code de la partie bash

) > install_gladys_watchtower.sh

echo Attribution des droits d’exécution au script…

bash -c « chmod +x install_gladys_watchtower.sh »

echo Lancement du script install_gladys_watchtower.sh…

bash -c « ./install_gladys_watchtower.sh »

pause

Pour installer fail2ban, il suffit d’ajouter le code suivant dans le script précédent avant la ligne echo # Fin du code de la partie bash

installation fail2ban

Vérifier si Fail2ban est déjà installé

if ! [ -x « $(command -v fail2ban-server) » ]; then
echo « Fail2ban n’est pas installé. Installation de Fail2ban… »

# Mettre à jour les paquets
sudo apt update

# Installer Fail2ban
sudo apt install -y fail2ban

echo "Installation de Fail2ban terminée."

else
echo « Fail2ban est déjà installé. »
fi

Créer le fichier de configuration local si nécessaire

if [ ! -f /etc/fail2ban/jail.local ]; then
echo « Création du fichier de configuration /etc/fail2ban/jail.local… »

sudo tee /etc/fail2ban/jail.local > /dev/null <<EOL

[DEFAULT]

Ban de 10 minutes (600 secondes)

bantime = 600

Temps avant d’autoriser une nouvelle tentative après un échec de connexion

findtime = 600

Nombre de tentatives avant de bannir

maxretry = 5

[sshd]
enabled = true
EOL

echo "Configuration par défaut créée."

fi

Redémarrer Fail2ban pour prendre en compte les modifications

echo « Redémarrage du service Fail2ban… »
sudo systemctl restart fail2ban

Activer Fail2ban pour qu’il se lance au démarrage

echo « Activation du service Fail2ban au démarrage… »
sudo systemctl enable fail2ban

echo « Fail2ban a été installé et configuré avec succès. »

Pour installer node-red, il suffit d’ajouter le code suivant dans le script précédent avant la ligne echo # Fin du code de la partie bash

Installation node-red

echo # Lancer le container node-red

docker run -d
–log-opt max-size=10m
–restart=always
–privileged
-u root
–network=host
–name node_red
-v /var/lib/node-red:/data
nodered/node-red

1 Like

Quand on est un petit projet comme nous je pense qu’il faut s’appuyer sur des géants et non pas sur d’autres petits projets qui peuvent aussi échouer :sweat_smile:

Côté Gladys, j’essaie un peu de me désolidariser du monde Pi car ces machines ne sont plus compétitives, et ce projet s’appelle quand même « dietPI »

Pour moi autant rester sur de l’ultra-robuste pour l’OS qui fait tourner Gladys: Ubuntu Server ou Debian.

3 Likes