Zum Inhalt springen
labkompass

Logbuch#hardware#docker#selfhosting#dns

Der Pi bekommt genau eine Aufgabe

Von Niclas Hennrich · veröffentlicht · geschehen am


EntscheidungIm Einsatz

Alternativen bewertet und einen Weg festgelegt.

RAM des Pi 3B+
1GB
entfernte Desktop-Pakete
~200
Memory-Limit für Mealie
600MB

Anfang Juli wollte ich Mealie — eine selbstgehostete Rezeptverwaltung — auf dem frisch neu aufgesetzten Raspberry Pi 3B+ betreiben. 1 GB RAM, Raspberry Pi OS mit komplettem Desktop-Stack, kein Docker. Der Plan: Docker plus Compose, Mealie mit SQLite unter /opt/mealie, nginx als Reverse Proxy auf Port 80, der Container selbst nur auf localhost erreichbar.

Damit das überhaupt Platz hat, musste der Desktop weg. Rund 200 Pakete — Chromium, Firefox, VLC, Display-Manager, Compositor — runter, Boot-Ziel auf multi-user.target. Auf einem Pi mit 1 GB ist das keine Kür, sondern Pflicht: Der Headroom für eine einzige App ist auch danach minimal. (Was sich sonst noch abschalten lässt, steht inzwischen im Guide Raspberry Pi headless betreiben.)

Die eigentliche Falle kannte ich vorher nicht: Memory-Cgroups sind auf Raspberry Pi OS standardmäßig nicht aktiv. Das mem_limit von 600 MB in der Compose-Datei stand da und tat — nichts. Erst cgroup_enable=memory in der cmdline.txt und ein Neustart machen aus dem Limit ein echtes Limit. Wer Docker auf einem Pi mit Speicherlimits betreibt, sollte das einmal prüfen, statt sich auf die Compose-Datei zu verlassen.

Mealie lief dann. Zwei Wochen lang, hinter nginx, mit Pi-hole daneben.

Am 25. Juli habe ich es wieder abgebaut. Nicht weil es nicht funktionierte, sondern weil der Pi zwei Rollen hatte, die sich nicht vertragen: Der DNS-Server des ganzen Hauses teilte sich 1 GB RAM mit einer Web-App samt Datenbank. Jeder Schluckauf von Mealie wäre ein möglicher DNS-Ausfall gewesen. Mealie ist auf den Homeserver optimus umgezogen — der hat Reserven —, nginx ist vom Pi verschwunden, die Daten des alten Pi-Mealie liegen als Backup noch dort.

Seitdem hat der Pi genau eine Aufgabe: DNS und Ad-Blocking mit Pi-hole. Weniger RAM-Druck, weniger Angriffsfläche, eine klare Rolle. Die Erkenntnis, die ich seither auf alles Kleine anwende: Ein-Zweck-Systeme sind auf schwacher Hardware robuster als jedes Mehrzweck-Setup — und der DNS-Server des Heimnetzes sollte keine Nebenjobs haben.

Daraus entstanden