Usando HomePage. El Dashboard - 2

· 6 min · @Self-Hosting · #unRAID #Docker

Como ya comenté en el anterior articulo, donde hablaba de que estaba usando HomePage con una configuración normal y muy simple, pero que a la vez era funcional, por no decir básica para cuando te inicias, pero me faltaba algo, en resumen, quería algo más…

Entonces, buscando información, acabé en el GitHub, que es lo que tenía que haber hecho desde el principio. Descubrí este hilo, donde la gente compartía sus dashboards junto con los ficheros de configuración. Y tengo que decir que había cosas muy chulas y muy curradas y, lo más importante, cosas que no sabía que se podían hacer.

Mirando lo que la gente subía, encontré uno (no fui el único que preguntó 😁) que era increíble y muy funcional, porque tenías al alcance toda la información que necesitabas.

Así que toda la gente le pidió si podía pasar 😁 los ficheros de configuración que usaba, y le tengo que estar muy agradecido porque subió los ficheros de configuración que él usaba y que me sirvieron para estudiar cómo lo tenía todo montado. Así que lo adapté a mis necesidades, quedando de la siguiente manera (en mi caso):

◇ Pestaña Home

◇ Pestaña Glances

Como se puede ver, uso dos pestañas, donde en la primera pestaña se puede visualizar:

  • La información de todos los dockers que uso, junto con los links a las webs que más uso.
  • Toda la información (gráficas) de los 2 servidores que tengo ahora mismo.

En el settings.yaml es donde se configuran los tabs, o mejor dicho, las pestañas. Esto se consigue a través de la variable tab, que es donde indicamos a qué pestaña pertenece cada sección. Para que quede más claro, se puede decir que en la pestaña tab: Home tendremos lo siguiente:

  • Virtualization
  • Monitoring
  • Media
  • Network

En cambio, en la pestaña tab: Glances tendremos lo siguiente:

  • Gráficas Servidor 1
  • Gráficas Servidor 2

Ahora viene lo más importante: los ficheros de configuración que estoy usando:

settings.yaml

#### Customization
headerStyle: clean
cardBlur: md
theme: dark
color: zinc
quicklaunch:
  searchDescriptions: true
  hideInternetSearch: false
  showSearchSuggestions: true
  hideVisitURL: false

#### Group layouts
layout:
### Homepage
  Virtualization:
    tab: Home
    icon: mdi-desktop-classic
  Monitoring:
    tab: Home
    icon: mdi-message-alert
  Media:
    tab: Home
    icon: mdi-video-vintage
  Network:
    tab: Home
    icon: mdi-lan

### Glances
  Servidor 1 (unRaid):
    tab: Glances
    useEqualHeights: true
    style: row
    columns: 3
    initiallyCollapsed: false
  Servidor 2 (Contabo):
    tab: Glances
    useEqualHeights: true
    style: row
    columns: 3
    initiallyCollapsed: false

### Bookmarks
  Blogs:
    icon: si-blogger
  Compres:
    icon: mdi-shopping-outline
  Comunicacio:
    icon: mdi-newspaper
  Videos:
    icon: mdi-movie-open-edit-outline
  VPS:
    icon: mdi-google-cloud

Es en el archivo services.yaml donde definimos lo que contiene cada sección (Virtualization, Monitoring, etc.).

services.yaml

- Virtualization:
    - unRaid:
        icon: unraid
        href: [url]
        description:
        ping: [url]
        siteMonitor: [url]

- Monitoring:
    - What's Up Docker?:
        icon: whats-up-docker-light.png
        href: [url]
        description: Notifications for New Container Version Releases
        ping: [url]
        siteMonitor: [url]
        widget:
          type: whatsupdocker
          url: [url]
          username: {{HOMEPAGE_VAR_WUDUSER}}
          password: {{HOMEPAGE_VAR_WUDPASS}}

    - Scrutiny:
        icon: https://repository-images.githubusercontent.com/289524449/fc01e480-e6ab-11ea-9e20-53257df6f326
        href: [url]
        description: S.M.A.R.T. Monitoring Dashboard
        ping: [url]
        siteMonitor: [url]
        container: scrutiny
        widget:
          type: scrutiny
          url: [url]
          fields: ["passed", "failed" ]

    - Gotify:
        icon: gotify.png
        href: [url]
        description: Simple, HTTP-based Pub-sub Notification Service
        ping: [url]
        siteMonitor: [url]
        container: gotify
        widget:
          type: gotify
          url: [url]
          key: {{HOMEPAGE_VAR_GOTIFY}}

- Media:
    - Jackett:
        icon: jackett.png
        href: [url]
        description: Servidor Indexers
        ping: [url]
        siteMonitor: [url]
        container: jackett
        widget:
          type: jackett
          url: [url]
    - Transmission:
        icon: transmission.png
        href: [url]
        description: Servidor Transmission
        ping: [url]
        siteMonitor: [url]
        container: transmission
        widget:
          type: transmission
          url: [url]

    - Jellyfin:
        icon: jellyfin.png
        href: [url]
        description: Servidor Multimedia
        ping: [url]
        widget:
          type: jellyfin
          url: [url]
          key: {{HOMEPAGE_VAR_JELLYFIN}}
          enableBlocks: true
          enableNowPlaying: false
          fields: ["movies", "series", "episodes" ]

    - Navidrome:
        icon: navidrome
        href: [url]
        description: Servidor Música
        container: navidrome
        widget:
          type: navidrome
          url: [url]
          user: {{HOMEPAGE_VAR_NAVUSER}}
          token: {{HOMEPAGE_VAR_NAVTOKN}}
          salt: {{HOMEPAGE_VAR_NAVSALT}}

    - Calibre:
        icon: calibre.png
        href: [url]
        description: Software de gestión de libros
        ping: [url]
        siteMonitor: [url]
        container: calibre

    - Calibre-Web:
        icon: calibre-web.png
        href: [url]
        description: Web para la gestión de libros (Calibre) y su BBDD
        ping: [url]
        siteMonitor: [url]
        container: calibre-web
        widget:
          type: calibreweb
          url: [url]
          username: {{HOMEPAGE_VAR_CALIBREUSER}}
          password: {{HOMEPAGE_VAR_CALIBREPASS}}

- Network:
    - Traefik:
        icon: traefik.png
        href: [url]
        description: Open-source Reverse Proxy and Load Balancer
        ping: [url]
        siteMonitor: [url]
        widget:
          type: traefik
          url: [url]
          username: {{HOMEPAGE_VAR_TRAEFIKUSR}}
          password: {{HOMEPAGE_VAR_TRAEFIKPWD}}
    - PiHole:
        icon: pi-hole.png
        href: [url]
        description: Servidor PiHole
        ping: [url]
        siteMonitor: [url]
        container: pihole
        widget:
          type: pihole
          url: [url]
          key: {{HOMEPAGE_VAR_PIHOLE}} 

- dasReich (unRaid):
    - CPU Usage:
        widget:
          type: glances
          url: [url]
          metric: cpu
    - Memory:
        widget:
          type: glances
          url: [url]
          metric: memory
    - Network:
        widget:
          type: glances
          url: [url]
          metric: network:eth0
    - Processes:
        widget:
          type: glances
          url: [url]
          metric: process
    - Disk I/O:
        widget:
          type: glances
          url: [url]
          metric: disk:nvme0n1
    - Disk I/O:
        widget:
          type: glances
          url: [url]
          metric: disk:sdb
    ...

Si os fijáis, podréis ver que he usado variables del estilo HOMEPAGE_VAR_CALIBREUSER o HOMEPAGE_VAR_PIHOLE, esto lo usamos para que el fichero quede lo más limpio posible de passwords, keys, etc., que en caso de algún problema queden expuestos.

Entonces, para hacer esto, lo único que se tiene que hacer es crear un fichero .env con las variables que se necesiten, pero siempre tienen que venir precedidas de HOMEPAGE_VAR_... (os pondré las variables que yo he usado), aunque aquí vosotros sois libres de crear más:

.env

# PASSWORDS CALIBRE-WEB
HOMEPAGE_VAR_CALIBREUSER=[user]
HOMEPAGE_VAR_CALIBREPASS=[password]

# PASSWORD TRANSMISSION
#HOMEPAGE_VAR_TRANSUSER=[user]
#HOMEPAGE_VAR_TRANSPASS=[password]

# KEY JELLYFIN
HOMEPAGE_VAR_JELLYFIN=[key]

# KEY GOTIFY
HOMEPAGE_VAR_GOTIFY=[key]

# TRAEFIK PASSWORD
HOMEPAGE_VAR_TRAEFIKUSR=[user]
HOMEPAGE_VAR_TRAEFIKPWD=[password]

# NAVIDROME
HOMEPAGE_VAR_NAVUSER=[user]
HOMEPAGE_VAR_NAVTOKN=[key]
HOMEPAGE_VAR_NAVSALT=[key]

# WHATS UP MY DOCKERS
HOMEPAGE_VAR_WUDUSER=[user]
HOMEPAGE_VAR_WUDPASS=[password]

# PIHOLE
HOMEPAGE_VAR_PIHOLE=[key]

widgets.yaml

- logo:
    icon: [url]
- glances:
    type: glances
    url: [url]
    label: [label]
    mem: false
    cpu: false
    expanded: true
    disk:
      - /etc/hostname
- glances:
    type: glances
    url: [url]
    label: [label]
    mem: false
    cpu: false
    expanded: true
    disk:
      - /etc/hostname

- search:
    provider: custom
    url: [url]
    focus: true
    target: _blank

- datetime:
    locale: nl
    text_size: xs
    format:
      dateStyle: short
      timeStyle: short
      hourCycle: h23

bookmarks.yaml

- Blogs:
    - Personal:
        - href: [url]
          icon: github-light.png
    - Desarrollo:
        - href: [url]
          icon: github-light.png
    - Libros:
        - href: [url]
          icon: wordpress.png
    - uGeek:
        - href: [url]
          icon: blogger.png
    - Lazaro:
        - href: [url]
          icon: blogger.png
    - Atareao:
        - href: [url]
          icon: blogger.png

- Compras:
    - Amazon:
        - href: [url]
          icon: amazon.png

    - Aliexpress:
        - href: [url]
          icon: aliexpress.png

- Comunicación:
    - Mastodon:
        - href: [url]
          icon: mastodon.png
    - Telegram:
        - href: [url]
          icon: telegram.png
    - RiseUp:
        - href: [url]
          icon: mailu.png
    - EruenPlay:
        - href: [url]
          icon: youtube.png

- Videos:
    - Hispamula:
        - href: [url]
          icon: [url]
    - HDOlimpo:
        - href: [url]
          icon: [url]
    - Xbytes:
        - href: [url]
          icon: [url]
    - DonTorrent:
        - href: [url]
          icon: [url]
    - YouTube:
        - href: [url]
          icon: youtube.png

- VPS:
    - Contabo:
        - href: [url]
          icon: contabo.png
    - Google Cloud:
        - href: [url]
          icon: [url]
    - GitHub:
        - href: [url]
          icon: github-light.png

Espero que os pueda servir de ayuda esta información. Además, así la tengo también disponible para mí, cuando me explote el servidor 😁 y pierda toda la configuración que tengo ahora mismo.

◇ Referencia