Kategorie: Projekt

Ein Upgrade für den Homeserver Teil 5 – Docker und Portainer

Seit gut drei Jahren betreibe ich einen RaspberryPi als Homeserver. Zunächst reichte dieser noch gut aus. Mit der Zeit wurde aber nicht nur die Zahl der Anwendungen, die auf dem Raspberry laufen, mehr, sondern auch die Leistungsanforderungen der Anwendungen selbst. Besonders meine ich damit die Influx Datenbank, die seit über drei Jahren jede Minuten um einen Datensatz der PV-Anlage größer wird. Die Datenbank braucht mittlerweile über 10 Minuten zum Starten. Auch diese Webseite braucht zum Laden deutlich länger, als sie sollte. Wenn ich den Raspberry komplett neu starte, braucht es ca. eine Stunde, bis alle Anwendungen wieder laufen. Das ist definitiv zu viel. Es sollte also ein neuer Rechner her. In dieser Artikelserie möchte ich davon berichten.


Übersicht aller Artikel dieser Serie


Installation von Docker

Auf meinem zuvor eingerichteten Ubuntu Server installiere ich nun Docker. Die Installation ist in der Dokumentation von Docker sehr gut erklärt. Die dort aufgeführten Befehle kann man so eins zu eins ins Terminal kopieren und ausführen, also:

und

Jetzt ist Docker schon fertig installiert.

Installation von Portainer

Jetzt installiere ich Portainer nach dieser Dokumentation.

Zuerst erstellen wir ein Volume:

Dann kann Portainer schon installiert und gleichzeitig gestartet werden:

Konfiguration von Portainer

Die Admin-Seite von ist jetzt unter https://IP_ADRESSE:9443 erreichbar. Dort lässt sich ein Admin-Konto mit Passwort anlegen.

Portainer anlegen eines Adminaccounts

Im nächsten Screen klicke ich auf „Get startet“, da ich Portainer nur für meine lokale Docker Instanz verwenden möchte.

Unter „local“→“Containers“ sieht man alle Dockercontainer. Bisher eben nur einen einzigen – nämlich Portainer selbst.

Portainer

Leitet man Ports von einem Container an den Host weiter, so werden diese Ports in der Übersicht (Bild oben) klickbar dargestellt. Standardmäßig zeigen diese Links aber auf die IP-Adresse „0.0.0.0“. Das kann man ändern unter „Settings“→“Environments“→“local“. Dort kann man seine IP-Adresse angeben. Dann funktionieren die Links in der Übersicht auch.

Portainer und Docker sind jetzt fertig. Wir können jetzt unsere Container bequem in der grafischen Oberfläche erstellen und konfigurieren. Als ersten Container installiere ich homarr, eine Dashboard-Software, damit ich alle meine Programme im Überblick habe.

Ein Upgrade für den Homeserver Teil 4 – Ubuntu Server

Seit gut drei Jahren betreibe ich einen RaspberryPi als Homeserver. Zunächst reichte dieser noch gut aus. Mit der Zeit wurde aber nicht nur die Zahl der Anwendungen, die auf dem Raspberry laufen, mehr, sondern auch die Leistungsanforderungen der Anwendungen selbst. Besonders meine ich damit die Influx Datenbank, die seit über drei Jahren jede Minuten um einen Datensatz der PV-Anlage größer wird. Die Datenbank braucht mittlerweile über 10 Minuten zum Starten. Auch diese Webseite braucht zum Laden deutlich länger, als sie sollte. Wenn ich den Raspberry komplett neu starte, braucht es ca. eine Stunde, bis alle Anwendungen wieder laufen. Das ist definitiv zu viel. Es sollte also ein neuer Rechner her. In dieser Artikelserie möchte ich davon berichten.


Übersicht aller Artikel dieser Serie


Erstellen der VM

Das Erstellen der VM läuft praktisch gleich wie bei Openmediavault, nur, dass ich dieses Mal ein Ubuntu Server 22.04 nehme und diesem 4 Kerne, 256 GB Speicher und 16 GB RAM gebe.

Installation von Ubuntu Server

Im Ubuntu-Installer angekommen, wählt man zunächst die Sprache

Danach werde ich gefragt, ob ich den Installer updaten möchte. Das mache ich.

Anschließend lässt sich das Tastaturlayout wählen:

Als Installationsart wähle ich das normale Ubuntu Server

Jetzt gibt es die Möglichkeit, die Netzwerkverbindung zu konfigurieren. Hier lege ich gleich eine feste IP-Adresse fest. Unter meiner Netzwerkkarte unter „Edit IPv4“ konfiguriere ich diese.

Der eingestellte Paketspiegelserver passt für mich. Nachdem der Test erfolgreich war, klicke ich auf „Done“.

Bei der Partitionierung sollte es wieder nur ein Gerät zur Auswahl geben. Hier nehme ich den Haken bei „LVM Group“ raus.

Als Nächstes wird nochmal eine Zusammenfassung der Partitionierung gezeigt, sodass man überprüfen kann, welche Geräte evtl. gelöscht werden.

Während im Hintergrund das System schon installiert wird, wird man nach Benutzername, Passwort und Hostname des Servers gefragt.

Ubuntu Pro möchte ich vorerst nicht benutzen. Auch weitere Software brauche ich zunächst nicht.

Sobald die Installation fertig ist, erscheint oben ganz unscheinbar „Install complete!“. Bevor ich neu starte, entferne ich im Menü „Hardware“ wieder die ISO.

Sobald Ubuntu wieder gestartet ist, kann ich mich von meinem PC aus über SSH mit ssh benutzername@IP_Adresse anmelden.

Updates installieren

Per SSH im Terminal angekommen, installiere ich nun Updates mit

VM automatisch beim Booten starten

Startet man jetzt den Server neu, so startet die VM nicht automatisch neu. Das kann man ändern, indem man unter „Optionen“ den Punkt „Beim Booten starten“ auf ja setzt.

VM in Openmediavault automatisch starten

Ubuntu ist jetzt fertig installiert. Im nächsten Schritt werde ich Docker auf Ubuntu installieren.

Ein Upgrade für den Homeserver Teil 3 – Openmediavault

Seit gut drei Jahren betreibe ich einen RaspberryPi als Homeserver. Zunächst reichte dieser noch gut aus. Mit der Zeit wurde aber nicht nur die Zahl der Anwendungen, die auf dem Raspberry laufen, mehr, sondern auch die Leistungsanforderungen der Anwendungen selbst. Besonders meine ich damit die Influx Datenbank, die seit über drei Jahren jede Minuten um einen Datensatz der PV-Anlage größer wird. Die Datenbank braucht mittlerweile über 10 Minuten zum Starten. Auch diese Webseite braucht zum Laden deutlich länger, als sie sollte. Wenn ich den Raspberry komplett neu starte, braucht es ca. eine Stunde, bis alle Anwendungen wieder laufen. Das ist definitiv zu viel. Es sollte also ein neuer Rechner her. In dieser Artikelserie möchte ich davon berichten.


Übersicht aller Artikel dieser Serie


Erstellen der VM

Die ISO von OMV kann hier heruntergeladen werden. Von dort kopiere ich den Link zur ISO. Man braucht nämlich nicht die ISO zuerst herunterladen, um sie dann wieder auf den Server hochzuladen, sondern kann sie direkt auf den Server herunterladen.

Dazu geht man im Proxmox-Interface auf den Speicher „local“ und wählt „ISO-Images“. Dort klickt man auf „Von URL herunterladen.

ISO-Image auf Proxmox Server herunterladen

Dort kann man dann die URL zum ISO-Image angeben. Nach einem Klick auf „URL abfragen“ kann man es mit „Herunterladen“ herunterladen.

ISO-Image von Openmediavault auf Proxmox Server herunterladen

Sobald im Ausgabefenster „TASK OK“ erscheint, kann man dieses schließen

ISO-Image von Openmediavault auf Proxmox Server herunterladen

Um die virtuelle Maschine zu erstellen, wählt man ganz oben rechts den Punkt „Erstelle VM“.

VM in Proxmox starten

Im ersten Fenster gebe ich der VM einen Namen und eine ID.

VM in Proxmox konfigurieren: Allgemein

Anschließend wähle ich aus dem Storage „local“ die eben heruntergeladene ISO.

VM in Proxmox konfigurieren: OS

Unter „System“ belasse ich alles auf Standardeinstellungen.

VM in Proxmox konfigurieren: System

Unter „Disks“ ebenso

VM in Proxmox konfigurieren: Disks

Unter „CPU“ könnte ich der VM mehr Kerne geben. Ein Kern reicht mir in diesem Fall aber aus.

VM in Proxmox konfigurieren: CPU

Unter „Speicher“ sind standardmäßig 2 GB eingestellt. Ich erweitere auf 4 GB.

VM in Proxmox konfigurieren: Speicher

Auch „Netzwerk“ belasse ich auf Standardeinstellungen.

VM in Proxmox konfigurieren: Netzwerk

Nun bekommt man noch eine Zusammenfassung und kann dann die VM erstellen. Unter unserem Server erscheint jetzt die VM mit ihrer ID. Mit einem Klick auf „Start“ kann man diese starten.

Starten von Openmediavault in Proxmox

Unter Konsole kann man dann die Installation von OMV durchführen.

Installation von Openmediavault

Der Punkt „Install“ wird automatisch ausgewählt.

Installation von Openmediavault: Startscreen

Nach der Angabe von Sprache, Land und Tastaturlayout lässt sich der Hostname und das Root-Passwort wählen.

Installation von Openmediavault: Sprache
Installation von Openmediavault: Land
Installation von Openmediavault: Tastaturlayout
Installation von Openmediavault: Hostname
Installation von Openmediavault: Domain-name
Installation von Openmediavault: Passwort

Als Nächstes wählt man das Land für den Paket-Spiegelserver und den Spiegelserver selbst. Als Spiegelserver verwende ich „ftp.de.debian.org“. Einen Proxy verwende ich nicht.

Installation von Openmediavault: Ort des Speigelservers
Installation von Openmediavault: Spiegelserver
Installation von Openmediavault: Proxy

Als Medium für die Installation hat man im besten Fall nur eine einzige Auswahl. Hat man dieses gewählt, kann die Installation gestartet werden.

Installation von Openmediavault: Installationsmedium

Wenn die Installation abgeschlossen ist, erscheint dieses Fenster:

Installation von Openmediavault: Fertige Installation

Bevor man auf „weiter“ klickt, sollte man das Installationsmedium entfernen. Dies funktioniert in Proxmox, indem man unter dem Punkt „Hardware“ das CD-Laufwerk mit dem OMV-ISO wählt und dieses dort entfernt.

ISO-Image aus Proxmox VM entfernen

Anschließend wechselt man wieder zurück in die Konsole und bestätigt den Neustart. Wenn OMV wieder gestartet ist, erscheint folgendes Anmeldefenster:

Terminal von Openmediavault

Die dort angegebene IP-Adresse öffnen wir im Browser und loggen uns mit den Standardanmeldedaten ein. (Username: „admin“; Passwort: „openmediavault“)

Anmeldefenster von Openmediavault

Festlegen einer statischen IP-Adresse

Der erste Schritt, den ich gemacht habe, ist es, Openmediavault eine statische IP-Adresse zu geben. Dazu wählt man im Punkt „Netzwerk“ den Unterpunkt „Schnittstellen“, dort das einzige vorhandene Gerät und klickt auf den Stift zum Bearbeiten.

Netzwerkkonfiguration Openmediavault

Unter IPv4 wählt man nun die Methode „statisch“ und trägt IP-Adresse, Netzmaske und Gateway ein.

Netzwerkkonfiguration Openmediavault

Wichtig ist auch, dass man etwas weiter unten unter „Erweiterte Einstellungen“ den DNS-Server angibt. Sonst kann man keine Aktualisierungen oder Erweiterungen mehr installieren.

Netzwerkkonfiguration Openmediavault: DNS-Server

Nach einem Klick auf Speichern muss man die Änderung noch bestätigen.

Bestätigen der Änderungen

Openmediavault ist anschließend mit der neuen IP-Adresse zu erreichen.

Updates von Openmediavault

Updates können unter „System“→ „Aktualisierungsverwaltung“→“Aktualisierungen“ installiert werden.

Updates in Openmediavault

Sobald das Update fertig ist, wird dies mit einem „END OF LINE“ im Terminal bestätigt. Dieses kann man jetzt schließen und OMV neustarten.

fertiges Update

Ändern des Standardpassworts

Spätestens jetzt sollte man mal auf die Idee kommen, das (unsichere) Passwort zu ändern. Das kann man in den Benutzereinstellungen tun.

Benutzereinstellungen in Openmediavault

Durchreichen der Festplatte

Theoretisch könnte ich mit virtuellen Festplatten arbeiten. Da ich aber das Management der Festplatten komplett Openmediavault überlassen möchte, reiche ich die gesamte Festplatte als USB-Gerät durch. Das kann man unter „Hardware“→“Hinzufügen“→“USB-Gerät“ machen. Hier wähle ich unter „Geräte ID“ meine Festplatte aus.

USB-Gerät durchreichen in Openmediavault
USB-Gerät durchreichen in Openmediavault

Unter „Datenspeicher“→“Laufwerke“ in OMV erscheint dann meine Festplatte.

Festplatte in Openmediavault konfigurieren

Diese lösche ich zuerst mit dem Radiergummi und anschließend stelle ich die Spindown-Zeit auf 10min. Ob das so richtig ist, wie ich das mache, weiß ich nicht. Mal ausprobieren…

Festplatte in Openmediavault konfigurieren

Anschließend erstelle ich unter „Datenspeicher“→ „Dateisysteme“ ein neues ext4 Dateisystem auf der Festplatte.

Dateisystem in Openmediavault konfigurieren

Soweit der Plan. Beim Erstellen der „inode tables“ pendelte sich aber mit der Zeit eine Geschwindigkeit von ca. 1 Inode pro Sekunde ein. Das macht bei noch 23000 fehlenden Inodes…. 6 Stunden! So lange wollte ich dann auch wieder nicht warten. Also habe ich die VM heruntergefahren und die Festplatte an meinen PC angeschlossen. Dort konnte ich innerhalb von wenigen Sekunden ein ext4 Dateisystem auf der Festplatte erstellen.

Erstellen des Dateisystems mit Ubuntu

Erstellen eines Dateisystems mit Ubuntu
Erstellen eines Dateisystems mit Ubuntu

Einbinden eines vorhandenen Dateisystems in Openmediavault

Die Festplatte wieder am Server angesteckt, habe ich Openmediavault wieder gestartet.

Dort lässt sich unter „Datenspeicher“→ „Dateisysteme“ auch ein vorhandenes Dateisystem mit dem „Play“ Button einbinden.

Einbinden eines existierenden Dateisystems in Openmediavault

Aktivieren der Freigabedienste

Unter „Dienste“ lassen sich die einzelnen Freigabedienste wie NFS, SSH oder SMB sehr einfach aktivieren. Ich benötige außerdem noch ftp. Dieses ist als Add-on unter „System“→“Erweiterungen“ verfügbar und kann dort installiert werden.

Herunterladen des ftp-Addons für Openmediavault

Jetzt lässt sich auch der FTP-Server aktivieren.

Erstellen eines Benutzers

Damit man auf die Freigaben zugreifen kann, braucht man einen Benutzer. Dieser kann unter „Benutzer“→“Benutzer“ angelegt werden.

Erstellen eines Benutzers in Openmediavault

Erstellen einer Freigabe

Eine Freigabe lässt sich jetzt unter „Datenspeicher“→“Freigegebene Ordner“ erstellen. Dort lässt sich ein Name und Zugriffsrechte festelgen.

Erstellen eines freigegebenen Ordners in Openmediavault

Um den freigegebenen Ordner über die Dienste jetzt auch zu erreichen, muss die Freigabe für jeden Dienst nochmal separat angelegt werden:

Erstellen einer Freigabe am Beispiel SMB in Openmediavault
Erstellen einer Freigabe am Beispiel SMB
Erstellen einer Freigabe am Beispiel FTP in Openmediavault
Erstellen einer Freigabe am Beispiel FTP

Einstellung der Zugriffsrechte für einen Benutzer

Unter dem Punkt „Zugriffsrechte“ lassen sich jetzt noch die Zugriffsrechte für einen freigegebenen Ordner festlegen.

Einstellen der Zugriffsrechte in Openmediavault
Einstellen der Zugriffsrechte in Openmediavault

VM automatisch beim Booten starten

Startet man jetzt den Server neu, so startet die VM mit Openmediavault nicht automatisch neu. Das kann man ändern, indem man unter „Optionen“ den Punkt „Beim Booten starten“ auf ja setzt.

VM in Openmediavault automatisch starten

Openmediavault ist jetzt fertig konfiguriert. So habe ich, oder je nachdem wie ich es brauche, auch die VMs und andere Geräte, Zugriff auf die Festplatten.

Ein Upgrade für den Homeserver Teil 2 – Installation von Proxmox

Seit gut drei Jahren betreibe ich einen RaspberryPi als Homeserver. Zunächst reichte dieser noch gut aus. Mit der Zeit wurde aber nicht nur die Zahl der Anwendungen, die auf dem Raspberry laufen, mehr, sondern auch die Leistungsanforderungen der Anwendungen selbst. Besonders meine ich damit die Influx Datenbank, die seit über drei Jahren jede Minuten um einen Datensatz der PV-Anlage größer wird. Die Datenbank braucht mittlerweile über 10 Minuten zum Starten. Auch diese Webseite braucht zum Laden deutlich länger, als sie sollte. Wenn ich den Raspberry komplett neu starte, braucht es ca. eine Stunde, bis alle Anwendungen wieder laufen. Das ist definitiv zu viel. Es sollte also ein neuer Rechner her. In dieser Artikelserie möchte ich davon berichten.


Übersicht aller Artikel dieser Serie


Installation von Proxmox

Proxmox kann man sich hier herunterladen. Anschließend habe ich die ISO auf einen Ventoy-Stick kopiert und das Proxmox ISO auf dem Mini-PC mit angeschlossener Maus, Tastatur und Monitor gestartet. Bei dem Versuch, die Installation zu starten, bekam ich allerdings eine Fehlermeldung.

Fehlermeldung von Proxmox 8.1 in Kombination mit Ventoy
Fehlermeldung von Proxmox 8.1 in Kombination mit Ventoy

Dies scheint in der Kombination mit Ventoy und Proxmox in Version 8.1 ein bekanntes Problem zu sein. Also musste ich das ISO direkt mit Etcher auf einen USB-Stick schreiben.

Dann konnte ich die Proxmox Installation auch starten. Nach einem Klick auf „Install Proxmox VE“ musste ich zuerst die Nutzungsbedingungen akzeptieren.

Start der Proxmox Installation
Start der Proxmox Installation
Akzeptieren der Nutzungsbedingungen
Akzeptieren der Nutzungsbedingungen

Anschließend konnte ich die Festplatte, auf die Proxmox installiert werden soll, das Land, die Zeitzone und das Tastaturlayout festlegen.

Auswahl der Installationsfestplatte
Auswahl der Installationsfestplatte
Auswahl von Land, Zeitzone und Tastaturlayout
Auswahl von Land, Zeitzone und Tastaturlayout

Jetzt muss noch ein Passwort und eine E-Mail-Adresse, die zum Zurücksetzen des Passworts verwendet werden kann, angegeben werden.

Als Letztes muss man noch das Netzwerk konfigurieren. Hier legt man auch eine feste IP-Adresse fest. Das heißt, dass diese so gewählt werden sollte, dass sie außerhalb des DHCP-Bereichs des Routers liegt. In meinem Fall ist das alles ab 192.168.178.201.

Netzwerkkonfiguration
Netzwerkkonfiguration

Als Allerletztes erhält man nun noch eine Zusammenfassung von dem, was man eingegeben hat. Nachdem man das überprüft hat, kann man die Installation starten.

Zusammenfassung der Installation
Zusammenfassung der Installation

Nach der Installation startet der Server automatisch neu. Man gelangt in dieses Anmeldefenster:

Anmeldefenster nach erfolgreicher Proxmox-Installation
Anmeldefenster nach erfolgreicher Proxmox-Installation

Jetzt können Maus, Tastatur und Monitor vom Server getrennt werden. Alles Weitere folgt nun im Browser unter der URL, die im Anmeldefenster angegeben ist, also: https://IP_DES_SERVERS:8006

Konfiguration der Paketquellen in Proxmox

Unter der angegebenen URL kommt man auf die Oberfläche von Proxmox. Sehr wahrscheinlich muss man vorher noch eine Sicherheitswarnung wegklicken (unter „erweitert“).

Sicherheitswarnung im Browser
Sicherheitswarnung im Browser

Dann kann man sich mit dem Benutzernamen „root“ und dem bei der Installation gewählten Passwort anmelden. Dabei kann man auch gleich die Sprache auf Deutsch einstellen.

Anmeldung in Proxmox
Anmeldung in Proxmox

Anschließend kommt eine Meldung, die mir sagt, ich hätte keine gültige Subscription. Diese Meldung kann ich ebenfalls ignorieren, da ich Proxmox nur privat und nicht kommerziell nutze.

Keine gültige Subscription
Keine gültige Subscription

Links findet man jetzt sein Rechenzentrum in einer Baumstruktur. Darin befindet sich – wie überraschend – ein Server. Klickt man auf diesen Server und dann auf „Übersicht“ erhält man Informationen wie CPU Auslastung, RAM Auslastung, usw.

Übersicht des Servers in Proxmox
Übersicht des Servers in Proxmox

Um die Paketquellen für unseren Server ohne Subscription einzurichten, wechseln wir in die Shell und öffnen mit dem Editor nano die Datei /etc/apt/sources.list.

sources.list bearbeiten mit nano
sources.list bearbeiten mit nano

Darin fügen wir die Zeile

ein. Die Datei kann man mit Strg+O speichern und mit Strg+x kann man den Editor wieder schließen.

In den Dateien /etc/apt/sources.list.d/ceph.list und /etc/apt/sources.list.d/pve-enterprise.list muss noch die (einzige) Zeile auskommentiert werden.

/etc/apt/sources.list.d/pve-enterprise.list
/etc/apt/sources.list.d/pve-enterprise.list
/etc/apt/sources.list.d/ceph.list
/etc/apt/sources.list.d/ceph.list

Die genauen Namen der einzufügenden Zeilen können sich mit der Zeit ändern. Es gibt von Proxmox einen Dokumentationseintrag, der die Paketquellen beschreibt und immer aktuell sein sollte.

Proxmox aktualisieren

Um Proxmox zu aktualisieren, drückt man zuerst unter „Updates“ auf den Button „Aktualisieren“. Das entspricht einem apt-get update im Terminal.

Update unter Proxmox
Update

Ist das Update fertig, wählt man „Upgrade“. Das entspricht einem – wer hätte es gedacht – apt-get upgrade im Terminal. In einem neuen Fenster öffnet sich das Terminal und evtl. muss man das Upgrade noch mit einem „Y“ bestätigen.

Upgrade unter Proxmox
Upgrade
Bestätigung des Upgrades
Bestätigung des Upgrades

Nach einem Update ist ein Neustart sinnvoll. Diesen kann man einfach über den Button „Reboot“ machen:

Neustart von Proxmox
Neustart

Jetzt ist Proxmox auf dem neusten Stand und wir sind bereit für die Installation der ersten VM!

Ein Upgrade für den Homeserver Teil 1 – Die Hardware

Seit gut drei Jahren betreibe ich einen RaspberryPi als Homeserver. Zunächst reichte dieser noch gut aus. Mit der Zeit wurde aber nicht nur die Zahl der Anwendungen, die auf dem Raspberry laufen, mehr, sondern auch die Leistungsanforderungen der Anwendungen selbst. Besonders meine ich damit die Influx Datenbank, die seit über drei Jahren jede Minuten um einen Datensatz der PV-Anlage größer wird. Die Datenbank braucht mittlerweile über 10 Minuten zum Starten. Auch diese Webseite braucht zum Laden deutlich länger, als sie sollte. Wenn ich den Raspberry komplett neu starte, braucht es ca. eine Stunde, bis alle Anwendungen wieder laufen. Das ist definitiv zu viel. Es sollte also ein neuer Rechner her. In dieser Artikelserie möchte ich davon berichten.


Übersicht aller Artikel dieser Serie


Auswahl der Hardware

Es sollte ein Mini-PC sein, der möglichst wenig Strom braucht, aber trotzdem gut Leistung hat. Dabei fiel meine Wahl auf einen „ECS Elitegroup LIVA Z3 Plus„. Dieser hat einen i5 aus dem Jahr 2019 mit nur 15W TDP und ist für ~200 € zu haben.

Dazu brauchte ich noch eine SSD. SSD-Speicher ist ja in den letzten Jahren sehr billig geworden. Deshalb durften es 500 GB schon sein. Ich entschied mich für eine „Crucial P3

Arbeitsspeicher braucht der PC auch noch. Maximal sind 64 GB möglich. Ich brauche zwar viel, da ich vermutlich mehrere VMs laufen lassen möchte, 64 GB wären aber schon sehr viel. 32 GB RAM sollten reichen. (Vorher hatte ich 8 GB)

Als Letztes brauchte ich noch eine große Festplatte. Ich habe zwar bereits eine, die reicht mit ihrem einen Terabyte aber kaum mehr aus, da sie mittlerweile Speicher für Nextcloud, Überwachungskameraaufnahmen (inkl. Aufnahmen der Nistkastenkamera), Medien für meinen Jellyfin-Server und Backups meines PCs und des Servers ist. Außerdem möchte ich häufige Aufnahmen, die ständig überschrieben werden (Überwachungskamera) aus Datensicherheitsgründen getrennt haben von wichtigen Dateien wie die der Nextcloud. Dabei fiel meine Wahl auf eine externe 4 TB 3,5″ Festplatte.

Zusammenbau

Im Lieferumfang des Mini-PCs enthalten sind der Mini-PC selbst, das Netzteil, Schrauben, ein Wärmeleitpad dessen Sinn ich noch nicht verstanden habe, eine Halterung, um den PC per VESA-Halterung an einem Monitor zu befestigen und eine Anleitung.

Verpackung des Mini-PCs
Verpackung des Mini-PCs
Lieferumfang des Mini-PCs
Lieferumfang des Mini-PCs

Der Zusammenbau ist nicht kompliziert. Der Mini-PC lässt sich mit 4 Schrauben öffnen. Dann kann man den RAM und die SSD wie gewohnt einbauen.

Öffnen des Mini-PCs
Öffnen des Mini-PCs
Geöffneter Mini-PC
Geöffneter Mini-PC
Mini-PC mit eingebautem RAM und SSD
Mini-PC mit eingebautem RAM und SSD

Test mit Ubuntu

in Ubuntu angekommen wollte ich zunächst ausprobieren, ob alles an Hardware korrekt erkannt wurde. Das war zunächst nicht der Fall. Von der SSD war nichts zu sehen. Also habe ich den Rechner nochmal aufgeschraubt und gesehen, dass die SSD nicht komplett eingerastet war. Das ging hier etwas schwerer als gewohnt.

CPU und RAM wird erkannt
CPU und RAM wird erkannt
SSD wird erkannt
SSD wird erkannt
HDD wird erkannt
HDD wird erkannt

Anschließend wollte ich noch mit dem Programm „cpuburn“ testen, wie warm der PC unter Volllast wird. Mittels

und anschließendem

konnte ich dann mit

die Temperatur auslesen. Diese bewegte sich nach einigen Minuten bei knapp 80 °C. Das ist in Ordnung. Ein

ergab, dass alle Kerne auf stabilen 2,8GHz takten. Es finden also anscheinend keine Drosselung aufgrund der Temperatur statt.

Der Rechner ist, besonders unter Last, übrigens recht laut. Da er bei mir im Keller stehen wird, macht mir das nichts aus. Als Desktop-Rechner kann ich ihn aber nicht empfehlen.

Die Hardware ist jetzt fertig zusammengebaut und getestet. Im nächsten Schritt werde ich Proxmox auf dem Mini-PC installieren.

Mini Handy Stativ aus dem 3D-Drucker

Heute mal ein kleiner Bericht darüber, wie ich mir ein Stativ für mein Handy ausgedruckt habe:

Handyhalterung

Als Handyhalterung habe ich mir folgendes Modell ausgesucht: https://www.thingiverse.com/thing:366210. Die Teile waren schnell gedruckt und recht stabil:

Handyklemme 3D Druck

Da ich keine passende Mutter da hatte, habe ich mir die auch noch ausgedruckt. Ich hätte natürlich auch andere verwenden können, wollte aber das ganze zu handelsüblichen Stativen kompatibel machen.

3D Druck Mutter
Handyklemme 3D Druck

Am Ende noch ein schöner Griff für die Mutter, die ich eingeschmolzen habe:

Mutter mir 3D Druck Griff

Durch die Halterung kommt jetzt noch eine Schraube oder Gewindestange, die ich mit Heißkleber befestigt habe:

Handyklemme 3D Druck Zusammenbau

Zusammengebaut sieht das ganze dann so aus:

Handyklemme 3D Druck
Handyklemme 3D Druck

So würde die Halterung an sich schon auf ein Stativ passen. Da es für meinen Anwendungszweck aber zu groß war, habe ich mir noch ein Mini-Stativ ausgedruckt.

Handyklemme 3D Druck auf Stativ

Stativ

Hier habe ich mir dieses Stativ ausgesucht. Das Hauptteil sieht so aus und wird „print in place“ gedruckt:

Stativ 3D Druck

Mit etwas Kraft kann man es dann aufklappen:

Stativ 3D Druck ausgeklappr

Da dieses Design auch mit den Schrauben arbeitet, die ich nicht habe, habe ich mir dazu noch zwei Schrauben dieser Art ausgedruckt und im Stativ mit Heißkleber befestigt:

Schraube 3D Druck
Schraube in Stativ

Auch für das Teil, das die Kugel umschließt, braucht man eine solche Schraube:

Teile für 3D Druck Stativ
Teile für 3D Druck Stativ

Die Kugel selbst kann man dann ans Stativ schrauben und das andere Teil darüber schieben:

Teile für 3D Druck Stativ
3D Druck Stativ Zusammenbau

Dieses wird dann mit einer M4 Schraube befestigt, die ich etwas eingeschmolzen habe. Außer man hat – wie ich – keine M4 Schraube da. Dann kann man das Loch auch auf M5 aufbohren.

3D Druck Stativ Zusammenbau

Damit man das Stativ bewegen und anschließend wieder fixieren kann, gibt es dazu einen kleinen Griff mit Mutter.

Mutter mit 3D Druck Griff
3D Druck Stativ Zusammenbau

An der Schraube kann man jetzt eine Kamera – oder eben die Handyklemme – befestigen.

Fertig

Bei mir versuche ich mit dem Stativ und einem alten Handy Zeitrafferaufnahmen von meinem 3D Drucker zu machen.

3D Druck Stativ
3D Druck Stativ

Alle 3D Modelle:

Pool-Temperatursensor mit dem ESP

Ich weiß nicht, wie ich auf die Idee gekommen bin, die Temperatur im Pool zu messen. War dann aber doch ein interessantes Projekt.

Hardware

Batteriebetrieben sollte er sein, da Netzspannung im Pool … Ihr wisst, was ich meine. Also fiel ein Raspberry schon mal weg – der braucht zu viel Strom. Etwas Kleineres musste her, ein Microcontroller, ein ESP, genauer gesagt ein Wemos D1 mini. Dazu noch ein Akku und ein Board, um den Akku aufzuladen und den ESP mit Strom zu versorgen.

Die Verkabelung des Sensors ist relativ einfach – Plus (rot) auf 5V, GND (Schwarz) auf GND und den Daten-Pin (Gelb) auf D4. Zwischen D4 und 5V muss dann noch der 4,7kOhm Widerstand geschalten werden.

Damit später der deepSleep funktioniert, müssen wir D0 mit RsT verbinden. Da jedoch dann die Verbindung über USB nicht mehr funktioniert, ist es nicht besonders sinnvoll, diese direkt zusammen zu löten. Ich mache das mit 2 kurzen Kabeln und einer Klemme.

Im Gehäuse sieht das ganze bei mir dann so aus:

Software

Eines vorweg: Mein Programm ist nicht schön und es gibt bestimmt viele Wege, es besser zu machen, aber es funktioniert. Ich sende meine Werte direkt in die Influx Datenbank (wäre – besonders bei mehreren Sensoren – über MQTT wohl sinnvoller).

Der ESP sendet dann alle 30 Minuten die Temperatur. Die Daten landen auf meinem Homeserver, wo ich sie dann mit Grafana visualisieren kann.

Visualisierung

Hier noch ein paar Beispieldaten über 7 Tage. In grün die Pooltemperatur und in gelb die Außentemperatur:

Beispieldaten Pooltemperatursensor

13″ Touchscreen Wandeinbau

Ich habe jetzt seit Längerem einen 7″ Touchscreen bei mir in der Wand hängen. Der lief bis jetzt auch gut, aber er wurde mir zu klein. Deshalb hab ich mich auf die Suche nach einem Neuen gemacht und schließlich diesen 13″ Touchscreen von Waveshare gefunden und bestellt.

Materialliste

Testaufbau

Nach deutlich verspäteter Lieferung Konnte ich den Touchscreen ausprobieren. Ein Netzteil hatte ich noch da, aber keinen passenden Stecker. Da musste dann eben der Lötkolben zum Einsatz kommen:

Im Wiki stand zwar, dass man die Auflösung einstellen muss, das war aber bei mir nicht der Fall. Das Display lief Plug and Play.

Software

Beim 7″ Touchscreen habe ich rpi-backlight genutzt, um den Bildschirm bzw. die Hintergrundbeleuchtung an- und auszuschalten. Hier verwende ich jetzt vcgencmd display_power 0 und vcgencmd display_power 1.

Als Oberfläche verwende ich, wie beim alten Display auch, eine selbst gebaute HTML Seite. Da ich jetzt deutlich mehr Platz habe, konnte ich hier auch mehr auf einmal darstellen. Die Seite gibts auf Github zum Download. Sie ist noch nicht fertig.

https://github.com/jjk4/displayoberflaeche

Das Gehäuse

Ein Problem, dass mich länger beschäftigt hat, was ein passendes Gehäuse. Bei dem alten 7″ Touchscreen passte ja dieses Gehäuse sehr gut, aber dieser Zufall war schon so zufällig, den gibts nicht zweimal. Also wollte ich das Gehäuse drucken.

Dieses Gehäuse ist dabei raus gekommen:

Gehäuse zum Download: https://www.thingiverse.com/thing:4934655

An den Ecken kann man eine Mutter einschmelzen und an der Rückseite gibt es eine Befestigungsmöglichkeit für den Raspberry (In meinem Fall ein Pi 3). Gedruckt sieht das Ganze dann so aus:

Da bei einem Teil das dünne Stück zerbrochen ist, hab ich noch schnell ein weiteres Teil gedruckt, dass nicht nur das abgebrochene wieder fixiert, sondern auch die beiden Teile zusammenhält:

Bilder vom Einbau

RaspberryPi als Überwachungskamera

Hier möchte ich dir gerne zeigen, wie ich mit einem Raspberry Pi eine Überwachungskamera gebaut habe und wie auch du das machen kannst.

Hardware

Materialliste

Raspberry: Ein Raspberry Pi Zero ist klein, günstig und verbraucht nur wenig Strom. Er ist aber auch in der Leistung stark beschränkt. Bei HD Auflösung (1280×720) hat er bei mir bei Bewegungserkennung und beim Speichern der Bilder ca. 1FPS erreicht. Das reicht mir aus. Wer mehr braucht, sollte lieber zu einem Raspberry Pi 4 greifen.

Netzteil: Ich verwende hier ein Hutschienennetzteil (Für den Pi4 hier). Wer lieber eines mit Stecker (Für den Pi4 hier) mag, kann das auch verwenden.

Kühlung: Da bei einer Videoübertragung und Bewegungserkennung der RPi ganz schön viel zu tun hat, ist eine Kühlung auf jeden Fall sinnvoll. Ich verwende diese Kühlkörper (Für den Pi4 hier). Da auch der USB Stick ziemlich heiß wurde und ich vom RPi Zero noch den kleinen Kühlkörper übrig hatte, habe ich diesen zum Kühlen des USB Sticks genutzt. In eine normale USB-Buchse passt er dann aber nicht mehr.

SD Karte: Ich verwende diese hier. 16 GB sind für das Projekt völlig ausreichend. Theoretisch würden auch weniger reichen, kleinere SD Karten kosten aber fast genau so wenig.

Kameramodul: Hier hat man eine große Auswahl. Ob mit Weitwinkel, Infrarot, gleich beidem, in extrem klein oder in High Quality (nicht für den Pi Zero zu empfehlen). Es gibt aber auch sehr günstige Kameras wie diese hier, die absolut ausreichend sind.

Flachbandkabel: Die meisten Kameras kommen bereits mit einem Kabel. Da Raspberry Pi Zero aber einen kleineren CSI Anschluss hat, braucht man dafür ein Adapterkabel.

USB Stick: Wenn Aufnahmen gespeichert werden sollen, macht man das wegen der begrenzten Haltbarkeit am besten nicht auf der SD Karte. Stattdessen kann man einen USB Stick verwenden oder die Aufnahmen auf einem NAS speichern. Ich verwende diesen Stick.

Adapter für USB-Stick: Da der Raspberry Pi Zero nur einen Micro USB Anschluss hat, braucht man für den USB Stick einen Adapter. Ich verwende diesen hier.

Gehäuse: Hier gibt es auch sehr viel Auswahl. Es gibt das offizielle Raspberry Pi Zero Gehäuse, welches schon eine Aussparung für eine Kamera hat, aber ich verwende gerne Kamera Dummys. Diese sehen dann nicht nur aus wie echte Kameras, sondern lassen sich auch gut einstellen.

Zusammengerechnet komme ich dann nach aktuellem Stand auf ca. 60€.

Zusammenbau

Zum Zusammenbau braucht man nicht viel sagen. Alles kommt in den Stecker, wo es reinpasst ;). Zusammengebaut sieht die Kamera (ohne Gehäuse) so aus:

Einbau in das Gehäuse

Meine Kamera soll in einen Kameradummy. Ich habe diese hier verwendet. Vermutlich sind aber die meisten Kamera Dummys auf eBay sehr ähnlich, wenn nicht sogar gleich. Er lies sich sehr gut zerlegen. Das sieht dann so aus:

Das Schutzglas lässt sich ebenfalls noch ausbauen. So kann man es reinigen. Die Kameralinse und die LED werden nicht benötigt. Zwischen den beiden Hälften des Gehäuses lässt sich sehr gut eine Kunststoffplatte befestigen. Auf dieser habe ich dann den Raspberry festgeschraubt.

Hinter der Platte mit den IR LED Attrappen kann man mit Heißkleber die Kamera befestigen. Das sieht dann so aus:

Jetzt muss nur noch alles wieder zusammengebaut werden. Der Raspberry hängt bei mir in der unteren Kamerahälfte, da es wegen dem Batteriefach oben sehr eng wird.

Von vorne sieht die Kamera dann so aus:

Software

Installation des Images

Als Software für die Überwachungskamera verwende ich Motioneye OS. Das ist eine für verschiedene Einplatinencomputer optimierte Linuxdistribution, mit der man sehr einfach und benutzerfreundlich Überwachungskameras bauen kann.

Nachdem das Image heruntergeladen und mit z. B. dem Raspberry Pi Imager auf die SD Karte gespielt wurde, muss noch das WLAN, falls vorhanden eingestellt werden. Erstelle dazu auf der kleineren der beiden Partitionen auf der SD Karte (boot Partition) eine Datei mit dem Namen „wpa_supplicant.conf“. Diese Datei braucht folgenden Inhalt:

Die SSID und das Passwort müssen natürlich angepasst werden.

Konfiguration von Motioneye

Nach dem Booten und aufrufen der IP im Browser sieht man direkt das Bild der Kamera:

Userinterface Motioneye

Um weitere Einstellungen vorzunehmen, muss man sich aber anmelden. Das geht über den „switch user“ Button oben links. Der Benutzername ist „admin“ und das Passwort muss leer gelassen werden.

Jetzt kann man im seitlichen Menü alle möglichen Einstellungen vornehmen. Diese sind meist selbsterklärend, trotzdem gibt es noch neben jeder Einstellung ein ?, welches die Einstellung noch mal erklärt. Meine Einstellungen sehen so aus:

Wenn man auf den Livestream und anschließend auf das „Foto“ Icon klickt, kann man sich Kameraaufnahmen anschauen:

Picture Browser

Homeserver mit dem RaspberryPi

Hier möchte ich dir meinen kleinen Homeserver vorstellen.

Hardware

Materialliste

Zusammenbau

Achtung: Arbeiten an 230V darf nur von Elektrofachpersonal durchgeführt werden!

Versorgt wird der ganze Homeserver mit 230V. Diese gehen zuerst durch den Zähler, dann an eine Steckdose, an der der Überspannungsschutz und dann ein Mehrfachstecker angeschlossen ist. An dieser hängt das Netzteil für den Pi und das Netzteil für die HDD. Das 5V Netzteil hat zwei Ausgänge, einen verwende ich nur für den Pi, den anderen für alles andere.

Das Display ist mit 3,3V und I2C (Pin 3 und 5) angeschlossen. Onewire Sensoren, die die Temperatur der Wärmepumpe kontrollieren sind ebenfalls mit 3,3V und Onewire (Standard Pin 7) angeschlossen. Die Relais laufen mit 5V und beliebigen GPIOs. Die S0 Schnittstelle des Stromzählers ist an einen freien GPIO angeschlossen. Die HDD, SSD und der Modbus Adapter, der Stromzähler überwacht sind per USB angeschlossen (HDD und SSD an USB3, Modbus an USB2).

Software

Zur Software möchte ich gar nicht so viel sagen. Auf dem Raspberry läuft Raspbian 10 und:

  • Nextcloud
  • InfluxDB
  • Pihole
  • Wireguard
  • Webserver, u.A. für diese Webseite
  • Grafana
  • Minetest
  • Samba Server
  • Webmin
  • kleinere Skripte von mir, die verschiedene Werte (Modbus, Netzwerk, 1Wire) auslesen, verarbeiten, speichern und je nach Wert Relais schalten)
  • Und bestimmt noch ein paar weitere, die ich jetzt vergessen hab

LCD Display

Zu einem Punkt möchte ich doch noch weiter ins Detail gehen. Für das Display verwende ich folgendes Skript: klick. Ein Video dazu gibt es hier:

Statusdisplay für meinen Homeserver