Ein privates IT-Labor mit eigenen Servern war für mich schon immer ein Traum. Doch Server sind laut und lassen sich in Wohnungen meist nicht gut verstecken. Auch könnte es Mitbewohnern nicht gefallen, wenn ein Computer 7×24 läuft und ein nerviges Lüftergeräusch von sich gibt. Ganz abgesehen von der Stromrechnung. Zum Glück gibt es auch geräuschlose Alternativen.
Zum einen können die Server in in fernen Rechenzentren laufen. Auf Amazon EC2 kann man sehr schnell einen kleinen Windows oder Linux Server für eine bestimmte Zeit für €0,- betreiben (#notsponsored). Wie man einen Linux Server auf AWS zum Laufen bringt, habe ich bereits im Beitrag „Erste Schritte mit AWS EC2“ beschrieben.
Obwohl die Cloud interessant ist, ein privater Server zu Hause ist immer noch besser. Ein Raspberry Pi ist klein, leise und doch leistungsstark. Zusammen mit der Container-Lösung Docker lassen sich die begrenzten Ressourcen noch besser ausnutzen. Aufgrund der Größe lassen sich solche Server auch unauffälliger in Haus und Wohnung integrieren. Da der Pi auch WLAN besitzt benötigt man zudem nur eine Stromquelle.
Um solch einen Server aufbauen zu können benötigt man neben einem Raspberry Pi und einer SD Karte auch einen PC und Zugang zum Internet. Ich verwende dafür einen älteren Raspberry Pi 3 den ich für 10€ erstanden habe. Die Anleitung funktioniert bei neuen Modellen genauso.
Raspberry Pi Heimserver Installation
Im ersten Schritt installieren wir headless, also ohne angeschlossenen Monitor oder Tastatur, das Betriebssystem Raspberry Pi OS in der Lite Versio auf unserem Pi und verbinden uns anschließend über SSH auf das Gerät.
Basis
1. Betriebssystem Raspberry Pi OS Lite herunterladen.
2. Die heruntergeladene .zip Datei entpacken.
3. SD-Karte mit dem PC verbinden.
4. Das Tool Win32DiskImager herunterladen und starten.
5. Im Feld „Image File“ wählt man den Pfad und die Image-Datei aus. Im Feld „Device“ wählt man den Laufwerksbuchstaben der SD-Karte aus. Als letzten Schritt klickt man auf den Button „Write“. Der Schreibvorgang wird dann gestartet.
SSH
6. Um SSH auf einem Raspberry Pi zu aktivieren, lege einfach eine Datei mit dem Namen „ssh“, ohne jegliche Erweiterung auf die Boot-Partition der SD-Karte. Dadurch wird der Raspberry Pi angewiesen, SSH beim Booten zu aktivieren. Der Inhalt der Datei spielt keine Rolle.
WLAN
7. Falls WLAN nicht benötigt wird, kann man zum nächsten Schritt gehen. Um WLAN auf dem PI zu aktivieren muss eine neue Datei „wpa_supplicant.conf“ mit folgendem Inhalt erstellt werden.
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1
country=<Country Code>
network={
ssid="<SSID>"
psk="<PASSWORD>"
scan_ssid=1
}
Die Datei kopiert man anschließend wie die ssh Datei auf die Boot-Partition der SD-Karte.
Boot
8. SD-Karte von PC trennen und Raspberry PI mit SD-Karte starten.
Auf dem Heim-Router findet man schnell welche IP-Adresse der PI dynamisch erhalten hat.
9. Powershell oder CMD auf einem aktuellen Windows10 PC starten und den Befehl
„ssh pi@{IP-Adresse des PI}“ ausführen.
Wenn alles funktioniert hat, kann man sich jetzt auf der offenen SSH Sitzung mit dem default Kennwort „raspberry“ anmelden. Am Besten gleich das Kennwort mit Befehl „passwd
“ ändern.
Damit haben wir den komplizierten Teil der Installation erfolgreich abgeschlossen. Im letzten Schritt widmen wir uns der Installation von Docker und dem Container-Manager Portainer der gleich als erster Container auf dem Pi laufen wird. Mit diesem Manager lassen sich bequem die laufenden Container über ein Web-Portal verwalten.
Docker & Portainer
Docker und Portainer lassen sich mit wenigen Kommandozeilen-Befehlen, die man in der noch offenen SSH Sitzung eingibt, installieren. Der erste apt-get update Befehl wird verwendet, um Paketinformationen von allen konfigurierten Quellen herunterzuladen.
sudo apt update
Danach folgt die Installation von Docker.
sudo apt install docker.io
Um die anfallenden Daten nicht im Container sondern auf dem Host zu speichern, die wir ansonsten bei Updates oder Neuinstallationen verlieren würden, empfiehlt es sich pro Container immer ein sogenanntes Volume anzulegen.
sudo docker volume create portainer_data
Mit dem Befehl docker run starten wir den Container und geben einige Parameter wie Port und dem zuvor erstellen Volume mit.
sudo docker run -d --name portainer -e TZ="Europe/Berlin" -p 8000:8000 -p 9000:9000 -v /var/run/docker.sock:/var/run/docker.sock -v portainer_data:/data --dns=1.1.1.1 --restart=always portainer/portainer-ce
Am Ende muss der Container nur noch gestartet werden.
sudo docker start portainer
Sind keine Fehler aufgetaucht kann man sich jetzt über den Browser auf http://{ IP-Adresse des PI }:9000 verbinden.
Damit sind wir auch schon wieder fertig und haben die Basis für unseren eigenen Heim-Server geschaffen.
Auf hub.docker.com kann man sich selbst einen Überblick machen was alles mit Docker auf unserem Pi-Server betrieben werden kann.
Beispiele:
- DNS Filter: Pihole oder AdGuard Home
- Filehosting: Netxcloud oder Owncloud
- VPN: OpenVPN oder Wireguard
- Grafana und vieles mehr …
Auf zum nächsten Projekt.