Homepage dashboard improvements #76

Merged
eblume merged 13 commits from feature/homepage-dashboard-updates into main 2026-01-30 15:05:03 -08:00
5 changed files with 72 additions and 1 deletions

View file

@ -12,6 +12,7 @@ metadata:
spec:
project: default
sources:
# Helm chart
- repoURL: https://jameswynn.github.io/helm-charts
chart: homepage
targetRevision: 2.1.0
@ -19,9 +20,16 @@ spec:
releaseName: homepage
valueFiles:
- $values/argocd/manifests/homepage/values.yaml
# Values file reference
- repoURL: ssh://forgejo@forge.ops.eblu.me:2222/eblume/blumeops.git
targetRevision: main
ref: values
# Extra manifests (ExternalSecrets, etc)
- repoURL: ssh://forgejo@forge.ops.eblu.me:2222/eblume/blumeops.git
targetRevision: main
path: argocd/manifests/homepage
directory:
exclude: "values.yaml"
destination:
server: https://kubernetes.default.svc
namespace: homepage

View file

@ -14,7 +14,7 @@ metadata:
gethomepage.dev/enabled: "true"
gethomepage.dev/name: "ArgoCD"
gethomepage.dev/group: "Infrastructure"
gethomepage.dev/icon: "argocd.png"
gethomepage.dev/icon: "argo-cd.png"
gethomepage.dev/description: "GitOps CD"
gethomepage.dev/href: "https://argocd.ops.eblu.me"
gethomepage.dev/pod-selector: "app.kubernetes.io/name=argocd-server"

View file

@ -25,6 +25,9 @@ persistence:
grafana.ini:
server:
root_url: https://grafana.tail8d86e.ts.net
security:
# Embedding disabled - iframe approach didn't work well for Homepage
allow_embedding: false
analytics:
check_for_updates: false
reporting_enabled: false

View file

@ -0,0 +1,20 @@
# ExternalSecret for OpenWeatherMap API key
# Used by Homepage weather widget
apiVersion: external-secrets.io/v1
kind: ExternalSecret
metadata:
name: homepage-openweathermap
namespace: homepage
spec:
refreshInterval: 1h
secretStoreRef:
kind: ClusterSecretStore
name: onepassword-blumeops
target:
name: homepage-openweathermap
creationPolicy: Owner
data:
- secretKey: apikey
remoteRef:
key: OpenWeatherMap
property: credential

View file

@ -27,6 +27,11 @@ ingress:
env:
- name: HOMEPAGE_ALLOWED_HOSTS
value: "go.tail8d86e.ts.net,go.ops.eblu.me"
- name: HOMEPAGE_VAR_OPENWEATHERMAP_API_KEY
valueFrom:
secretKeyRef:
name: homepage-openweathermap
key: apikey
config:
# Host services (non-k8s, on indri or LAN)
@ -44,6 +49,34 @@ config:
href: https://nas.ops.eblu.me
icon: synology
description: NAS dashboard
widget:
type: prometheusmetric
url: https://prometheus.ops.eblu.me
metrics:
- label: Used
query: node_filesystem_size_bytes{mountpoint="/Volumes/backups"} - node_filesystem_avail_bytes{mountpoint="/Volumes/backups"}
format:
type: bytes
- label: Total
query: node_filesystem_size_bytes{mountpoint="/Volumes/backups"}
format:
type: bytes
- Borgmatic:
href: https://grafana.ops.eblu.me/d/borgmatic
icon: borgmatic
description: Backup system
widget:
type: prometheusmetric
url: https://prometheus.ops.eblu.me
metrics:
- label: Last backup
query: time() - borgmatic_last_archive_timestamp
format:
type: duration
- label: Archive size
query: borgmatic_repo_deduplicated_size_bytes
format:
type: bytes
# External bookmarks
bookmarks:
@ -61,6 +94,13 @@ config:
# Widgets on the page
# Note: Kubernetes widget disabled - requires metrics-server
widgets:
- openweathermap:
label: Camano
latitude: 48.18235
longitude: -122.52590
units: imperial
apiKey: "{{HOMEPAGE_VAR_OPENWEATHERMAP_API_KEY}}"
cache: 15
- search:
provider: custom
url: https://kagi.com/search?q=