Ihr kennt das bestimmt auch: Mit dem wachsenden Homelab oder Projekt benötigt man früher oder später irgendwo einen zentralen Startpunkt zu all seinen Diensten und sonstigen Informationen.
Nach Heimdall hielt Dashy bei mir Einzug, einfach aus dem Grund das Dashy mehr Widgets und Dienste unterstützt hatte.
Ein cooles Feature bei Dashy ist das multi page Feature, was ich praktisch finde aber etwas tückisch ist beim Setup und damit Ihr euch nicht ärgern müsst lasse ich euch an meinen Erfahrungen teilhaben:
Das erstellen von multi pages ist leider noch nicht, Stand April 2024, im interaktiven Editor möglich daher wird hier gleich relativ viel yaml ´durch den Browser fliegen aber das soll uns nicht abschrecken.
als erstes brauchen wir ein Arbeitsverzeichnis mit einer docker-compose.yml und config Ordner.
Der Inhalt der docker-compose.yml ist noch überschaubar:
--- version: "3.0" services: dashy: # To build from source, replace 'image: lissy93/dashy' with 'build: .' # build: . image: lissy93/dashy:latest container_name: dashy # Pass in your config file below, by specifying the path on your host machine volumes: - /Pfad/zum/Arbeitsverzeichnis/config:/app/user-data/ ports: - 4000:8080 #Port 4000 könnt Ihr euren Anforderungen anpassen # Set any environmental variables environment: - NODE_ENV=production # Specify your user ID and group ID. You can find this by running `id -u` and `id -g` - UID=1000 - GID=1000 # Specify restart policy restart: unless-stopped
Mit
docker-compose up -d
einmal starten damit in /config eine conf.yml erstellt wird.
Anschließend könnt Ihr euer Dashy mit dem interaktiven Editor anpassen der einfach mir eurem lieblings Texteditor ganz oldschool konfigurieren, zum Schluss müssen wir da eh mit dem Texteditor ran.
Hier mal ein Auszug aus meiner config.yml:
(hier knallt schon die Peitsche direkt am Anfang, mit name gebt Ihr den Namen des Buttons an und der path muss auf die passende yml zeigen, die yml Dateien sind übrigens auch im /config abzulegen)
pages: - name: stats path: stats.yml - name: Adguard path: adguard.yml appConfig: theme: basic layout: auto iconSize: medium language: de startingView: default defaultOpeningMethod: newtab statusCheck: false statusCheckInterval: 3600 faviconApi: allesedv routingMode: history enableMultiTasking: false widgetsAlwaysUseProxy: false webSearch: disableWebSearch: false searchEngine: duckduckgo openingMethod: newtab searchBangs: {} enableFontAwesome: true hideComponents: hideHeading: false hideNav: false hideSearch: false hideSettings: false hideFooter: false auth: enableGuestAccess: false users: [] enableKeycloak: false showSplashScreen: false preventWriteToDisk: false preventLocalSave: false disableConfiguration: false allowConfigEdit: true enableServiceWorker: false disableContextMenu: false disableUpdateChecks: false disableSmartSort: false enableErrorReporting: false pageInfo: title: Homelab description: traue nichts was du nicht selber hostest navLinks: - title: GitHub path: https://github.com/Lissy93/dashy - title: Documentation path: https://dashy.to/docs footerText: '' sections: - name: Verwaltung displayData: sortBy: most-used rows: 1 cols: 1 collapsed: false hideForGuests: false items: - title: Portainer hmsrv icon: hl-portainer url: http://192.168.X.X:9000 target: null id: 0_1071_portainerhmsrv #der Auszug endet hier
Damit die anderen Seiten funktionieren brauchen wir natürlich noch eine passende yml mit den Namen den Ihr in der conf.yml angegeben hat, ich mache das mal an dem Beispiel meiner stats.yml und Ihr erweitert oder pass euch das dann so an wie Ihr es braucht.
pageInfo: title: Homelab description: traue nichts was du nicht selber monitorst footerText: '' sections: - name: CPU Usage icon: fas fa-tachometer displayData: rows: 2 widgets: - type: gl-current-cpu options: hostname: http://192.168.X.X:61208 - name: CPU History icon: fas fa-microchip displayData: cols: 2 widgets: - type: gl-cpu-history options: hostname: http://192.168.X.X:61208 limit: 60 - name: Memory Usage icon: fas fa-memory widgets: - type: gl-current-mem options: hostname: http://192.168.X.X:61208 - name: System Alerts icon: fas fa-sensor-alert widgets: - type: gl-alerts options: hostname: http://192.168.X.X:61208 - name: System Load icon: fas fa-tasks-alt widgets: - type: gl-system-load options: hostname: http://192.168.X.X:61208 - name: Network Activity icon: fas fa-exchange displayData: cols: 2 widgets: - type: gl-network-traffic options: hostname: http://192.168.X.X:61208 limit: 500 - name: Disk Space icon: fas fa-hdd widgets: - type: gl-disk-space options: hostname: http://192.168.X.X:61208 - name: Disk IO icon: fas fa-disc-drive widgets: - type: gl-disk-io options: hostname: http://192.168.X.X:61208
Wenn Ihr dann eure Seiten nach euren Wünschen angepasst bzw. erstellt habt dann kommen wir jetzt in den Bereich der IT-Mystik.
Vor wenigen Tagen wurde die Dashy Version 3.0 released die vermutlich den Folgenden Schritt obsolet macht, wenn ja dann könnt Ihr den Artikel als Kickstart zu Dashy multi pages nehmen.
Jetzt wo alle yml Dateien an Ort und Stelle sind dann einfach einmal mit
docker-compose restart
das ganz neustarten und wenn eure Buttons ins leere führen einfach über das Einstellungsmenü die Konfiguration aktualisieren und Anwendung neu kompilieren, danach sind innerhalb der Anwendung die Pfade aktualisiert(soll in der Version 3.0 automatisch passieren,konnte ich noch nicht testen) und schon geht es sofern Ihr nichts falsch gemacht habt.