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 ) 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
On choisit
puis on download l’image
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 »
et on sélectionne l’image
puis le stockage
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 !
En lançant dietpi-launcher on accède à l’ensemble des outils proposés dans la distrib
on commence par faire un update
On va dans Dietpi-Software
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
Confirmez les choix des softwares à installer
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 !
Pour modifier l’adresse de la carte réseau, il suffit de lancer dietpi-config
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 :
le dashboard de Dietpi Dashboard plutôt bien foutu !
La doc est là
Le Linux dash de Dietpi
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
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 )
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