Das Heimdall Dashboard bietet die Möglichkeit eine zentrale Startseite für euren Browser für all eure Homelab Applikationen zu sein. Ich zeige euch, wie ihr mit wenigen Befehlen Heimdall als Docker Container konfigurieren könnt und was euch das an Mehrwert bietet.
Heimdall ist ein sogenanntes “Application Dashboard”. Hier können eure zentral genutzten Web-Applikationen auf einer Seite abgebildet werden mit “Apps”. Im Heimdall Projekt gibt es mehrere hundert verschiedene Apps (bspw. Plex, Portainer, PiHole…). Unterschieden wird zwischen “Foundation Apps” und “Enhanced Apps”. Die “Enhanced Apps” haben den Vorteil, dass bestimmte Informationen aus der verlinkten Applikation direkt im Dashboard angezeigt werden können. Beispielsweise handelt es sich bei PiHole um eine “Enhanced App” und ihr seht direkt auf eurer Startseite im Browser, wieviele DNS Anfragen geblockt wurden.
Sollte eine Applikation oder Webseite nicht als App vorhanden sein, ist das auch nicht weiter schlimm. Ihr könnt jede App in Farbe, Icon und Beschriftung anpassen. Auch eure bevorzugte Suchmaschine ist integrier- und das Hintergrundbild anpassbar.
Ihr benötigt eine Maschine auf der Docker installiert ist. Davon wird hier ausgegangen.
Um die Seitenkonfiguration (also welche Apps, sind wo und wie angeordnet) persistent zu halten. Wird ein Volume oder ein Bind-Mount benötigt. In meinem Fall lege ich einen Bind Mount unter /docker/heimdall
an und berechtige den Benutzer und die Gruppe, die ich auch im späteren Container verwenden möchte. In meinem Fall ist das User ID und Group ID 1000
.
Auf dem Docker Host, führen wir folgenden Befehl aus um uns die aktuellste Version des Heimdall Container Images herunterzuladen und den Container zu starten.
docker run -d --name=heimdall -e PUID=1000 -e PGID=1000 -e TZ=Europe/Berlin -p 8082:80 -p 8444:443 -v /docker/heimdall/config:/config --restart unless-stopped linuxserver/heimdall:latest
In dem Befehl oben habe ich als zusätzliche Variablen die User ID (PUID
), die Group ID (PGID
) und die Zeitzone (TZ
) übergeben. Der Webserver in unserem Heimdall Container hört auf die Ports 80 (http
) und 443 (https
). Da diese Ports bei mir schon in Verwendung sind auf dem Docker Host, habe ich die Prots 8082 (http
) und 8444 (https
) verwendet. Den Bind Mount für die persistente Heimdall Konfiguration geben wir mit -v
an, gefolgt von dem Pfad auf unserem Docker Host, den wir unter /container im Docker Container verfügbar haben möchten.
Nach wenigen Sekunden sollten wir in der Lage sein, dass Heimdall Dashboard unter der IP unseres Docker Hosts mit dem entsprechenden Port mit unserem Browser auf die Heimdall Seite zu gelangen. Bspw.: https://192.168.2.105:8444/
Erstmal gibt es nicht viel zu sehen. Über das “Zahnradsymbol” auf der rechten / unteren Seite, können wir grundlegende Einstellungen vornehmen, wie z.B. das Hintergrundbild ändern.
Über das “Application List” Symbol können wir nun nach den gewünschten Apps suchen. Einfach auf “Add +” klicken und nach der Applikation suchen. In meinem Beispiel suche ich z.B. nach Portainer. Bei Portainer handelt es sich um eine “Enhanced App”, so werden hier die Anzahl der Container und der Status der Container angezeigt. Damit das funktioniert, müssen wir im “Config” Teil der Seite die entsprechende URL und Zugangsdaten für Portainer hinterlegen.
Nach dem Speichern, sehen wir Portainer nun auch direkt in unserem Dashboard. Bei mehreren Apps können wir über das “Pfeilsymbol” die Reihenfolge nach belieben ändern.
Philip
Pingback: Öffne nochmal den Bifröst – Heimdall Dashboard in Kubernetes betreiben – The Database Me
Hi ich hab mich mal an die Anleitung gehalten und stoße immer wieder auf das Problem dass ich bei einem Neustart von Docker Desktop auf meiner win10 pro Maschine die Links verliere und komplett neu anfangen muss.
Hallo Daniel,
der Verlust der kompletten Konfiguration bei jedem Neustart kann eigentlich nur daran liegen, dass du kein
persistent volume
einbindest. Das ist notwendig um die Konfiguration über den Container Neustart zu speichern. Was gibst du hinter der-v
Option imdocker run
Befehl an?Wenn du Docker Desktop auch direkt unter Windows Benutzt, dann bietet sich an mit
docker volume create...
ein dediziertes Volume anzulegen anstatt den kompletten Pfad zu spezifizieren. In Docker Desktop kannst du dann auch prüfen welche Daten in diesem Volume abgelegt wurden.Gruß Philip
Ich habe deinen Befehlssatz entsprechend nochmal geändert und zwar zu diesem:
docker run --name=Heimdall -e PUID=1001 -e PGID=1001 -e TZ=Europe/Berlin -p 7888:80 -p 4443:443 -v ~/.config/heimdall/:/config --restart unless-stopped linuxserver/heimdall:latest
Leider mit dem gleichen Ergebnis.
Dass man ein entsprechendes Verzeichnis anlegen muss ist mir jetzt nicht bekannt gewesen, die Frage ist wie mache ich das und binde es direkt ein dass das automatisiert für diesen Befehlssatz passiert?
Hallo Daniel,
zuerst einmal die Frage, führst du den
docker run
Befehl unter WSL oder direkt unter Windows aus?Generell kannst du bei der
-v
Option entweder auf einen Pfad referenzieren oder auf ein Volume. Das kann vorher in Docker Desktop angelegt werden, oder z.B. überdocker volume create heimdall_config
. Im run Befehl kannst du dann z.B. so darauf referenzieren:docker run -d --name=heimdall -e PUID=1000 -e PGID=1000 -e TZ=Europe/Berlin -p 8082:80 -p 8444:443 -v heimdall_config:/config --restart unless-stopped linuxserver/heimdall:latest
In der Docker Desktop UI kannst du dann alle Volumes anschauen. Öffne dazu Docker Desktop, gehe in den Reiter Volumes und wähle das
heimdall_config
Volume aus. Klicke dann auf Data und du siehst die Daten im Volume. Ein Neustart des Containers, nutzt dann die selbe Konfiguration wie zuvor.Den
docker run
Befehl brauchst du nur einmal auszuführen. In Zukunft kannst du den Start entweder Docker Desktop überlassen, oder du startest den Container manuell überdocker start heimdall
.Gruß Philip
Hi, danke für die Tipps und Unterstützung, jetzt klappt alles wie am Schnürchen^^