blumeops/argocd/manifests/homepage/services.yaml
Erich Blume 9a81bc4633 homepage: add cv, docs, devpi as static entries
cv and docs were auto-discovered by homepage's k8s integration via
gethomepage.dev/* annotations on their Ingresses. After the indri-native
migration the Ingresses are gone, so add static entries that link to the
public URLs. devpi was never on the homepage; adding it under Host
Services next to the other indri-native infra (Forgejo, Registry).

The static entries lose pod-status indicators (no pod to watch) but stay
clickable. During the migration window the auto-discovered entries and
the static entries will both render briefly; once the cv/docs Ingresses
are deleted, only the static entries remain.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-29 14:42:48 -07:00

95 lines
3.1 KiB
YAML

- Host Services:
- Forgejo:
href: https://forge.eblu.me
icon: forgejo
description: Git forge
widget:
type: gitea
url: https://forge.eblu.me
key: "{{HOMEPAGE_VAR_FORGEJO_API_KEY}}"
fields: ["notifications", "pulls"]
- Registry:
href: https://registry.ops.eblu.me
icon: zot-registry
description: Container registry
- Devpi:
href: https://pypi.ops.eblu.me
icon: mdi-language-python
description: PyPI caching mirror
- 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
- Borg Backups:
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
# TODO: Add Caddy widget when admin API is enabled (currently admin off)
# - Caddy:
# href: https://indri.tail8d86e.ts.net
# icon: caddy
# description: Reverse proxy
# widget:
# type: caddy
# url: http://indri.tail8d86e.ts.net:2019
- Home:
- NVR:
href: https://nvr.ops.eblu.me
icon: frigate.png
description: Network video recorder
- Jellyfin:
href: https://jellyfin.ops.eblu.me
icon: jellyfin
description: Media server
widget:
type: jellyfin
url: https://jellyfin.ops.eblu.me
key: "{{HOMEPAGE_VAR_JELLYFIN_API_KEY}}"
enableBlocks: true
enableNowPlaying: false
fields: ["movies", "series", "episodes"]
- Infrastructure:
- Authentik:
href: https://authentik.ops.eblu.me
icon: authentik
description: Identity provider
- Ntfy:
href: https://ntfy.ops.eblu.me
icon: ntfy.png
description: Push notifications
- Services:
# CV and Docs were previously auto-discovered from k8s Ingresses; after
# the indri-native migration ([[cv-on-indri]], [[docs-on-indri]]) there
# is no Ingress to discover, so they live here as static entries.
- CV:
href: https://cv.eblu.me
icon: mdi-file-document
description: Resume / CV
- Docs:
href: https://docs.eblu.me
icon: mdi-book-open-page-variant
description: BlumeOps Documentation