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.