- ExternalSecret pulls API key from 1Password - Widget shows weather for Camano area - Uses imperial units with 15min cache Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
126 lines
3.4 KiB
YAML
126 lines
3.4 KiB
YAML
# Homepage values for blumeops
|
|
# Service dashboard at go.ops.eblu.me
|
|
|
|
# Enable RBAC for Kubernetes service autodiscovery
|
|
enableRbac: true
|
|
|
|
serviceAccount:
|
|
create: true
|
|
|
|
# Tailscale Ingress - exposes at go.tail8d86e.ts.net
|
|
# Caddy proxies go.ops.eblu.me to this
|
|
ingress:
|
|
main:
|
|
enabled: true
|
|
ingressClassName: tailscale
|
|
annotations:
|
|
gethomepage.dev/enabled: "false"
|
|
hosts:
|
|
- host: go
|
|
paths:
|
|
- path: /
|
|
pathType: Prefix
|
|
tls:
|
|
- hosts:
|
|
- go
|
|
|
|
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)
|
|
services:
|
|
- Host Services:
|
|
- Forgejo:
|
|
href: https://forge.ops.eblu.me
|
|
icon: forgejo
|
|
description: Git forge
|
|
- Registry:
|
|
href: https://registry.ops.eblu.me
|
|
icon: docker
|
|
description: Container registry
|
|
- Sifaka NAS:
|
|
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:
|
|
- Admin:
|
|
- Tailscale Admin:
|
|
- href: https://login.tailscale.com/admin
|
|
icon: tailscale
|
|
- 1Password:
|
|
- href: https://my.1password.com
|
|
icon: 1password
|
|
- Pulumi:
|
|
- href: https://app.pulumi.com/eblume/blumeops-tailnet
|
|
icon: pulumi
|
|
|
|
# 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=
|
|
target: _blank
|
|
suggestionUrl: https://kagisuggest.com/api/autosuggest?q=
|
|
|
|
# Kubernetes autodiscovery
|
|
kubernetes:
|
|
mode: cluster
|
|
|
|
# Layout and styling
|
|
settingsString: |
|
|
title: BlumeOps
|
|
headerStyle: boxed
|
|
layout:
|
|
Host Services:
|
|
style: column
|
|
Apps:
|
|
style: column
|
|
Observability:
|
|
style: column
|
|
Infrastructure:
|
|
style: column
|