Docker: Homepage dashboard
2023-06-21
Índice
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
``` 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 🐧