Dashy, das multi page Dashboard

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:

zur Dashy Webseite

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.

Kommentar verfassen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert