Docker: Homepage dashboard

2023-06-21

Índice

  1. Que es Homepage
  2. Instalación
    1. Docker Compose
    2. Unraid
  3. Configuración
    1. Servicios
    2. Marcadores
    3. Settings y widgets

Después de probar varios tableros, páginas de inicio o dashboard como Homarr, Heindall y Flame, creo haber encontrado el que mejor se adapta a lo que busco, que sea ligero, fácil de configurar, integración con docker y diferentes tipos de servicios y que tenga un desarrollo activo del proyecto

Que es Homepage

En el repositorio de Homepage, se definen Un panel de aplicaciones moderno (totalmente estático, rápido), seguro (proxy) y altamente personalizable con integraciones para más de 25 servicios y traducciones en más de 15 idiomas. Configurado fácilmente a través de archivos YAML (o descubrimiento a través de etiquetas docker).

Instalación

Docker Compose

El fichero para el despliegue en docker compose

    version: "3.3"
    services:
      homepage:
        image: ghcr.io/benphelps/homepage:latest
        container_name: homepage
        ports:
          - 3000:3000
        volumes:
          - /path/to/config:/app/config # Make sure your local config directory exists
          - /var/run/docker.sock:/var/run/docker.sock:ro # (optional) For docker integrations

Unraid

En unRaid se puede instalar desde el repositorio de aplicaciones de la comunidad, no necesita de ninguna configuración inicial especial

img

Configuración

La configuración de Homepage se realiza mediante archivos YAML (o descubrimiento a través de etiquetas docker). Tienes toda la documentación sobre la configuración en https://gethomepage.dev/en/installation/

    ls -lh /mnt/user/appdata/homepage/

    total 28K
    -rw-rw-r-- 1 root root 1.8K Feb 20 21:43 bookmarks.yaml
    -rw-rw-r-- 1 root root  200 Feb 13 00:09 docker.yaml
    -rw-rw-r-- 1 root root   31 Feb 12 18:58 kubernetes.yaml
    drwxr-xr-x 1 root root   24 Feb 12 18:58 logs/
    -rw-rw-r-- 1 root root 4.8K Feb 24 20:48 services.yaml
    -rw-rw-r-- 1 root root  222 Feb 13 00:16 settings.yaml
    -rw-rw-r-- 1 root root  627 Feb 12 22:07 widgets.yaml

Servicios

Mi fichero de configuración para mis servicios

    cat /mnt/user/appdata/homepage/services.yaml
``` yaml
- Home:

    - NPM:
        icon: nginxproxymanager.png
        href: http://192.168.1.2:81
        description: Nginx Proxy Manager
        ping: http://192.168.1.2:81
        container: Nginx-Proxy-Manager-Official
        widget:
          type: npm
          url: http://192.168.1.2:81
          username: [email protected]
          password: xxxxxxxxxxxxxx

    - Nas01:
        icon: unraid.png
        href: http://192.168.1.2:89
        ping: http://192.168.1.2:89
        description: unRaid GUI

    - Router:
        icon: router.png
        href: https://192.168.1.1
        description: Router Casa
        ping: https://192.168.1.1

    - Vaultwarden:
        icon: vaultwarden.png
        href: https://xxxxxxxx.es
        description: Bovedas contraseñas
        ping: https://xxxxxxxx.es
        container: vaultwarden

    - ddns-updater:
        icon: ddns-updater.png
        href: http://192.168.1.2:8001
        description: DDNS upater
        container: ddns-updater
        ping: http://192.168.1.2:8001

    - Umami:
        icon: umami
        href: http://xxxxxxxxxxx.es
        description: Metricas blog
        container: umami
        ping: http://xxxxxxxxxxxx.es


    - Syncthing:
        icon: syncthing
        href: http://192.168.1.2:8384
        description: Servidor syncthing
        container: syncthing

    - Radicale:
        icon: radicale
        href: http://xxxxxxxxxxxx.es
        description: Servidor Caldav y Cardav
        ping: http://xxxxxxxxxxx.es
        container: radicale

- Media:
    - Jellyfin:
        icon: jellyfin
        href: http://xxxxxxxxxxx.es
        description: Servidor multimedia
        ping: https://xxxxxxxxxxx.es
        container: jellyfin
        widget:
          type: jellyfin
          url: http://xxxxxxxxxx.es
          key: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

    - Jellyserr:
        icon: jellyseerr
        href: http://192.168.1.2:5055/
        description:
        container: jellyseerr
        ping: http://192.168.1.2:5055/
        widget:
          type: jellyseerr
          url: http://192.168.1.2:5055/
          key: xxxxxxxxxxxxxxxxxxxxxxxxxxx

    - Miniflux:
        icon: miniflux
        href: https://xxxxxxxxx.es
        description: Lector RSS
        ping: https://xxxxxxxxx.es
        container: miniflux
        widget:
          type: miniflux
          url: http://xxxxxxxxx.es
          key: xxxxxxxxxxxxxxxxxxxxxxxxxxx

    - PhotoPrism:
        icon: photoprism
        href: http://192.168.1.2:2342
        description: Gestor fotografias
        container: PhotoPrism


    - Wallabag:
        icon: wallabag
        href: http://xxxxxxxxxxxxxxxxxxxx.es
        description: Guarda paginas web
        ping: http://xxxxxxxxxxxxxxx.es
        container: wallabag


    - MotionEye:
        icon: motioneye
        href: http://192.168.1.2:8765/
        description: Video vigilancia
        ping: http://192.168.1.2:8765/
        container: MotionEye

- Arr:
    - qBittorrent:
        icon: qbittorrent.png
        href: http://192.168.1.2:8080
        description: cliente torrent
        container: qbittorrent
        ping: http://192.168.1.2:8080
        widget:
          type: qbittorrent
          url: http://192.168.1.2:8080
          username: xxxxxxx
          password: xxxxxxxxxxxxxxxxxxxx

    - Sonarr:
        icon: sonarr.png
        href: http://192.168.1.2:8989/
        description: Gestor Series
        widget:
          type: sonarr
          url: http://192.168.1.2:8989/
          key: xxxxxxxxxxxxxxxxxxxxxxxxxx

    - Radarr:
        icon: radarr.png
        href: http://192.168.1.2:7878
        description: Gestor peliculas
        widget:
          type: radarr
          url: http://192.168.1.2:7878
          key: xxxxxxxxxxxxxxxxxxxxxxxx

    - Lidarr:
        icon: lidarr
        href: http://192.168.1.2:8686
        description: Indexador torrent
        widget:
          type: lidarr
          url: http://192.168.1.2:8686
          key: xxxxxxxxxxxxxxxxxxxxxxxx

    - Prowlarr:
        icon: prowlarr
        href: http://192.168.1.2:9696
        description: Indexador torrent
        widget:
          type: prowlarr
          url: http://192.168.1.2:9696
          key: xxxxxxxxxxxxxxxxxxxxxxxxxxxx	
```

img

Marcadores

El fichero con la configuración de mis marcadores

cat /mnt/user/appdata/homepage/bookmarks.yaml
    - Paginas:
        - Blog:
            - abbr: BL
              href: https://elblogdelazaro.org/
        - As:
            - abbr: AS
              href: https://as.com/
        - Marca:
            - abbr: MC
              href: https://www.marca.com/
        - MundoDeportivo:
            - abbr: MD
              href: https://www.mundodeportivo.com/
        - ElMundo:
            - abbr: EM
              href: https://elmundo.es
        - Abc:
            - abbr: AB
              href: https://abc.es
        - ElPais:
            - abbr: BP
              href: https://elpais.com/
    
    
    
    - Social:
        - ProtonMail:
            - abbr: PT
              href: https://mail.proton.me/u/0/inbox
        - YouTube:
            - abbr: YT
              href: https://youtube.com/
        - Mastodon:
            - abbr: MT
              href: https://mastodon.social/public/local
        - Twitter:
            - abbr: TW
              href: https://twitter.com/home
    
    
    - Trackers:
        - xxxxxxx:
            - abbr: HD
              href: xxxxxxxxxxxxxxxx
        - Redbits:
            - abbr: RB
              href: xxxxxxxxxxxxxxxxxxxx
        - Tottentland:
            - abbr: TL
              href: xxxxxxxxxxxxxxxxxx
        - DivTeam:
            - abbr: DT
              href: xxxxxxxxxxxxxxxxxxxxxxxxx

img

Settings y widgets

    cat /mnt/user/appdata/homepage/settings.yaml
    title: Dashboard Nas01
    language: es
    
    providers:
      openweathermap: openweathermapapikey
      weatherapi: weatherapiapikey

    cat /mnt/user/appdata/homepage/widgets.yaml

    - resources:
        cpu: true
        memory: true
    
    - search:
        provider: duckduckgo
        target: _blank
    
    - openmeteo:
        label: Pinto # optional
        latitude: 40.2589448
        longitude: -3.6832130
        timezone: Europe/Madrid # optional
        units: metric # or imperial
        cache: 5 # Time in minutes to cache API responses, to stay within limits
    
    - datetime:
        locale: nil
        text_size: xs
        format:
          dateStyle: long
          hour12: false
    
    - greeting:
        text_size: xl
        text: Panel Carlos M.

img

Espero que te haya gustado, pasa un gran día 🐧


Ingrese la dirección de su instancia