Ir al contenido
  1. Publicaciones/

Docker: Homepage dashboard

··776 palabras·4 mins

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

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

- 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

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

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.

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