Mini-Tutorial: Installation und Einrichtung von DietPi auf Raspberry Pi... und Mini-PC und anschließende Installation von Gladys per Skript

Ein Mini-Tutorial zum Installieren von DietPi auf einem Raspberry Pi, weitere Infos finden Sie auf deren Website > https://dietpi.com

Warum diese Wahl? Es ist eine leichtere Version als das Raspberry Lite-Bild, aber viel funktionaler (Update und Tools :+1:) und es lässt sich auch auf einem Mini-PC installieren, der Vorgang ist etwas anders, aber gut genug erklärt, also kein Tutorial dazu
Ein weiterer Vorteil ist, dass man eine GUI-Schnittstelle installieren kann, wenn nötig, oder mit einem Server nur über die CLI weitermachen

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

(zu wissen ist, dass es möglich ist, DietPi auf jedem Debian-System zu installieren, indem man diesen Befehl in ssh ausführt
sudo bash -c "$(curl -sSfL 'https://raw.githubusercontent.com/MichaIng/DietPi/master/.build/images/dietpi-installer')" Achtung, man muss Backups der vorhandenen Daten oder der zu erhaltenden Daten machen, da es die Zielverteilung durch Entfernen vieler unnötiger Pakete aufräumt)

Zuerst laden wir das Image herunter, indem wir zum Abschnitt gehen

DietPi - Lightweight justice for your SBC!

Wir wählen

dann laden wir das Image herunter

wir entpacken das Archiv DietPi_RPi-ARMv8-Bookworm.img.xz zu DietPi_RPi-ARMv8-Bookworm.img

Wir starten Raspberry Pi Imager, für die Auswahl des Images wählen wir „use custom“

et wir wählen das Image

dann den Speicher

et wir starten die Installation

wir geben die Login-Daten root und das Passwort dietpi ein (> How to install DietPi - DietPi.com Docs)

et wir landen beim ersten Kontakt mit der Oberfläche… Sympathisch, oder?

Durch das Starten von dietpi-launcher erhält man Zugang zu allen in der Distribution angebotenen Tools

wir beginnen mit einem Update

Wir gehen zu Dietpi-Software

In diesem Stadium kann man sich mit DietPi-Dashboard begnügen, da man dort die Installation der Software auf eine benutzerfreundlichere Weise findet, aber man kann die Mindestanzahl an Software installieren (für 63 LinuxDash habe ich Lighttpd gewählt) wie Node-red, I2C und Python (um die IO des Raspberry Pi zu steuern

Bestätigen Sie die Auswahl der zu installierenden Software

Die zu installierende Software
[*] 72 I2C: ermöglicht die Unterstützung für I2C-basierte Hardware

[] 200 DietPi-Dashboard: Offizielle leichte DietPi-Weboberfläche (Rust)
ou/et
[
] 63 LinuxDash: Weboberfläche Systemstatistiken

[] 81 LLSP: Lighttpd + SQLite + PHP

[] 122 Nodee-RED: Tool zum Verdrahten von Geräten, APIs und Online-Diensten

[] 122 Docker

Ich bevorzuge die Verwendung dieses Tools anstelle der Gladys-Integration, da die Flows in einem gemeinsamen Mount-Point für die installierten Software gesichert werden können und leicht gesichert werden können

[*] 73 Fail2Ban: verhindert Brute-Force-Angriffe mit IP-Bann

  • Fail2Ban begrenzt die Anzahl der Einbruchsversuche. Sie können die Parameter in SSH ändern, indem Sie die folgende Datei mit dem Befehl bearbeiten:

sudo nano /etc/fail2ban/jail.conf

Wenn Sie in SSH einen Dateimanager verwenden möchten
[*] 3 MC: Midnight Commander - ein leistungsfähiger Dateimanager

Und installieren Sie sie!

Um die Netzwerkkartenadresse zu ändern, starten Sie einfach dietpi-config



Um den SSH-Server (standardmäßig Dropbear) zu OpenSSH zu ändern (er integriert einen SFTP-Server, was die sichere Verbindung über Filezilla zum Inhalt des NRX800 ermöglicht!), führen Sie die folgenden Aktionen aus:

Das Dietpi-Dashboard ist wirklich gut gemacht!

Die Dokumentation finden Sie hier

Features of the new DietPi-Dashboard – DietPi Blog

Das Linux-Dash von Dietpi

Ein vollständiges HTML-Dashboard, das unter Node-red mit dem Dashboard-Node erstellt wurde, um meine Smart-Home-Systeme zu steuern und alle meine Links an einem Ort zu haben, hier Gladys

Ein vollständiges HTML-Dashboard, das unter Node-red mit dem Node ui_builder erstellt wurde

Steuerung der Relais meines IPX800V5 über die API mit einer Echtzeit-Aktualisierung des Relaisstatus (hier alle 500 ms, aber es könnte weniger sein :wink:)

Zusammenfassend eine super Distribution, um ein einheitliches System auf Raspberry Pi und Mini-PC und sogar in einer VM (vmware, proxmox usw.) zu haben

Für die Installation von Gladys reicht es, die üblichen Tutorials zu befolgen

@pierre-gilles Du entscheidest, ob dies nicht das ideale System ist, da es plattformübergreifend ist und monatliche Updates für die Bereitstellung von Gladys auf diesem Mini-PC-Angebot bietet, das du jetzt als Kit anbietest (schöne Initiative). Vielleicht sollten sie kontaktiert werden, um Gladys in den Smart-Home-Bereich zu integrieren (sie bieten OpenHab, Domoticz, HA an)

Hinzufügen vom 17/09/2024

Um Gladys anschließend auf der DietPi-Distribution (derzeit eine Debian Bookworm) zu installieren, reicht es aus, den Inhalt per SSH in eine Datei zu kopieren, die mit nano bearbeitet und « create_and_run_gladys_watchtower.bat » genannt wird, und sie dann auszuführen. Es ist möglich, die Installation von fail2ban und node-red hinzuzufügen, aber das ist nicht notwendig, da sie mit dietpi-software installierbar sind

create_and_run_gladys_watchtower.bat

@echo off
echo Erstellung des Skripts install_gladys_watchtower.sh…

(
echo # Anfang des Bash-Code-Teils

echo #!/bin/bash
echo.
echo # Überprüfen, ob Docker installiert ist
echo if ! [ -x « $(command -v docker) » ]; then
echo ^ echo « Docker ist nicht installiert. Installation von 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 # Erstellen der Docker-Gruppe, falls sie nicht existiert
echo if ! grep -q « ^docker: » /etc/group; then
echo ^ sudo groupadd docker
echo fi
echo.

echo # Hinzufügen des Benutzers ‹ user › zur Docker-Gruppe
echo sudo usermod -aG docker user
echo.

echo # Starten des Docker-Containers für 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 # Starten des Docker-Containers für Watchtower
echo docker run -d ^
–name watchtower ^
–restart=always ^
-v /var/run/docker.sock:/var/run/docker.sock ^
containrrr/watchtower ^
–cleanup --include-restarting

echo # Ende des Bash-Code-Teils

) > install_gladys_watchtower.sh

echo Berechtigungen zum Ausführen des Skripts erteilen…

bash -c « chmod +x install_gladys_watchtower.sh »

echo Ausführen des Skripts install_gladys_watchtower.sh…

bash -c « ./install_gladys_watchtower.sh »

pause

Um fail2ban zu installieren, reicht es aus, den folgenden Code in das vorherige Skript vor der Zeile echo # Ende des Bash-Code-Teils hinzuzufügen

Installation fail2ban

Überprüfen, ob Fail2ban bereits installiert ist

if ! [ -x « $(command -v fail2ban-server) » ]; then
echo « Fail2ban ist nicht installiert. Installation von Fail2ban… »

# Pakete aktualisieren
sudo apt update

# Fail2ban installieren
sudo apt install -y fail2ban

echo "Installation von Fail2ban abgeschlossen."

else
echo « Fail2ban ist bereits installiert. »
fi

Erstellen der lokalen Konfigurationsdatei, falls erforderlich

if [ ! -f /etc/fail2ban/jail.local ]; then
echo « Erstellung der Konfigurationsdatei /etc/fail2ban/jail.local… »

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

[DEFAULT]

Ban für 10 Minuten (600 Sekunden)

bantime = 600

Zeit, bevor eine neue Anmeldeversuch nach einem fehlgeschlagenen Anmeldeversuch erlaubt wird

findtime = 600

Anzahl der Versuche, bevor ein Ban verhängt wird

maxretry = 5

[sshd]
enabled = true
EOL

echo "Standardkonfiguration erstellt."

fi

Fail2ban neu starten, um die Änderungen zu übernehmen

echo « Neustart des Fail2ban-Dienstes… »
sudo systemctl restart fail2ban

Fail2ban aktivieren, damit es beim Startup gestartet wird

echo « Aktivierung des Fail2ban-Dienstes beim Startup… »
sudo systemctl enable fail2ban

echo « Fail2ban wurde erfolgreich installiert und konfiguriert. »

Um Node-RED zu installieren, reicht es aus, den folgenden Code in das vorherige Skript vor der Zeile echo # Ende des Bash-Code-Teils hinzuzufügen

Installation node-red

echo # Starten des Node-RED-Containers

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

Wenn man ein kleines Projekt wie wir ist, denke ich, dass man sich auf Riesen stützen sollte und nicht auf andere kleine Projekte, die auch scheitern können :sweat_smile:

Was Gladys betrifft, versuche ich mich ein wenig vom Pi-Universum zu distanzieren, denn diese Maschinen sind nicht mehr wettbewerbsfähig, und dieses Projekt heißt schließlich « dietPI »

Für mich ist es besser, bei einem ultra-robusten OS für Gladys zu bleiben: Ubuntu Server oder Debian.