# Homepage — [gethomepage/homepage](https://github.com/gethomepage/homepage) via [jameswynn/homepage](https://github.com/jameswynn/helm-charts) Helm chart. # Ingress: Traefik + cert-manager (same pattern as `clusters/noble/bootstrap/headlamp/values.yaml`). # Service links match **`ansible/roles/noble_landing_urls/defaults/main.yml`** (`noble_lab_ui_entries`). # # **`siteMonitor`** runs **server-side** in the Homepage pod (see `gethomepage/homepage` `siteMonitor.js`). # Public FQDNs like **`*.apps.noble.lab.pcenicni.dev`** often do **not** resolve inside the cluster # (split-horizon / LAN DNS only) → `ENOTFOUND` / HTTP **500** in the monitor. Use **in-cluster Service** # URLs for **`siteMonitor`** only; **`href`** stays the human-facing ingress URL. # # **Prometheus widget** also resolves from the pod — use the real **Service** name (Helm may truncate to # 63 chars — this repo’s generated UI list uses **`kube-prometheus-kube-prome-prometheus`**). # Verify: `kubectl -n monitoring get svc | grep -E 'prometheus|alertmanager|grafana'`. # image: repository: ghcr.io/gethomepage/homepage tag: v1.2.0 enableRbac: true serviceAccount: create: true ingress: main: enabled: true ingressClassName: traefik annotations: cert-manager.io/cluster-issuer: letsencrypt-prod hosts: - host: homepage.apps.noble.lab.pcenicni.dev paths: - path: / pathType: Prefix tls: - hosts: - homepage.apps.noble.lab.pcenicni.dev secretName: homepage-apps-noble-tls env: - name: HOMEPAGE_ALLOWED_HOSTS value: homepage.apps.noble.lab.pcenicni.dev config: bookmarks: [] services: - Noble Lab: - Argo CD: icon: si-argocd href: https://argo.apps.noble.lab.pcenicni.dev siteMonitor: http://argocd-server.argocd.svc.cluster.local:80 description: GitOps UI (sync, apps, repos) - Grafana: icon: si-grafana href: https://grafana.apps.noble.lab.pcenicni.dev siteMonitor: http://kube-prometheus-grafana.monitoring.svc.cluster.local:80 description: Dashboards, Loki explore (logs) - Prometheus: icon: si-prometheus href: https://prometheus.apps.noble.lab.pcenicni.dev siteMonitor: http://kube-prometheus-kube-prome-prometheus.monitoring.svc.cluster.local:9090 description: Prometheus UI (queries, targets) — lab; protect in production widget: type: prometheus url: http://kube-prometheus-kube-prome-prometheus.monitoring.svc.cluster.local:9090 fields: ["targets_up", "targets_down", "targets_total"] - Alertmanager: icon: alertmanager.png href: https://alertmanager.apps.noble.lab.pcenicni.dev siteMonitor: http://kube-prometheus-kube-prome-alertmanager.monitoring.svc.cluster.local:9093 description: Alertmanager UI (silences, status) - Headlamp: icon: mdi-kubernetes href: https://headlamp.apps.noble.lab.pcenicni.dev siteMonitor: http://headlamp.headlamp.svc.cluster.local:80 description: Kubernetes UI (cluster resources) - Longhorn: icon: longhorn.png href: https://longhorn.apps.noble.lab.pcenicni.dev siteMonitor: http://longhorn-frontend.longhorn-system.svc.cluster.local:80 description: Storage volumes, nodes, backups - Vault: icon: si-vault href: https://vault.apps.noble.lab.pcenicni.dev # Unauthenticated health (HEAD/GET) — not the redirecting UI root siteMonitor: http://vault.vault.svc.cluster.local:8200/v1/sys/health?standbyok=true&sealedcode=204&uninitcode=204 description: Secrets engine UI (after init/unseal) widgets: - datetime: text_size: xl format: dateStyle: medium timeStyle: short - kubernetes: cluster: show: true cpu: true memory: true showLabel: true label: Cluster nodes: show: true cpu: true memory: true showLabel: true - search: provider: duckduckgo target: _blank kubernetes: mode: cluster settingsString: | title: Noble Lab description: Homelab services — in-cluster uptime checks, cluster resources, Prometheus targets theme: dark color: slate headerStyle: boxedWidgets statusStyle: dot iconStyle: theme fullWidth: true useEqualHeights: true layout: Noble Lab: style: row columns: 4