apiVersion: apps/v1 kind: Deployment metadata: annotations: meta.helm.sh/release-name: homepage-2-1744068158 meta.helm.sh/release-namespace: infrastructure values-checksum: 49348e8f2cbd3272bd4954b0c4ff1480780ebd91277816507927bed3fbb0043a labels: app.kubernetes.io/instance: homepage-2-1744068158 app.kubernetes.io/managed-by: Helm app.kubernetes.io/name: homepage-2-1744068158 app.kubernetes.io/version: v1.2.0 helm.sh/chart: homepage-2.1.0 name: homepage-2-1744068158 namespace: infrastructure spec: progressDeadlineSeconds: 600 replicas: 1 revisionHistoryLimit: 3 selector: matchLabels: app.kubernetes.io/instance: homepage-2-1744068158 app.kubernetes.io/name: homepage-2-1744068158 strategy: rollingUpdate: maxSurge: 25% maxUnavailable: 25% type: RollingUpdate template: metadata: annotations: cattle.io/timestamp: '2026-01-09T21:19:17Z' values-checksum: 49348e8f2cbd3272bd4954b0c4ff1480780ebd91277816507927bed3fbb0043a labels: app.kubernetes.io/instance: homepage-2-1744068158 app.kubernetes.io/name: homepage-2-1744068158 spec: automountServiceAccountToken: true containers: - env: - name: HOMEPAGE_ALLOWED_HOSTS value: homepage.snarfnet.net image: ghcr.io/gethomepage/homepage:v1.4.5 imagePullPolicy: IfNotPresent livenessProbe: failureThreshold: 3 periodSeconds: 10 successThreshold: 1 tcpSocket: port: 3000 timeoutSeconds: 1 name: homepage-2-1744068158 ports: - containerPort: 3000 name: http protocol: TCP readinessProbe: failureThreshold: 3 periodSeconds: 10 successThreshold: 1 tcpSocket: port: 3000 timeoutSeconds: 1 resources: {} startupProbe: failureThreshold: 30 periodSeconds: 5 successThreshold: 1 tcpSocket: port: 3000 timeoutSeconds: 1 terminationMessagePath: /dev/termination-log terminationMessagePolicy: File volumeMounts: - mountPath: /app/config name: homepage-base-config - mountPath: /app/config/bookmarks.yaml name: homepage-config subPath: bookmarks.yaml - mountPath: /app/config/docker.yaml name: homepage-config subPath: docker.yaml - mountPath: /app/config/kubernetes.yaml name: homepage-config subPath: kubernetes.yaml - mountPath: /app/config/services.yaml name: homepage-config subPath: services.yaml - mountPath: /app/config/settings.yaml name: homepage-config subPath: settings.yaml - mountPath: /app/config/widgets.yaml name: homepage-config subPath: widgets.yaml - mountPath: /app/config/logs name: logs dnsPolicy: ClusterFirst enableServiceLinks: true restartPolicy: Always schedulerName: default-scheduler securityContext: {} serviceAccount: default serviceAccountName: default terminationGracePeriodSeconds: 30 volumes: - emptyDir: {} name: homepage-base-config - configMap: defaultMode: 420 name: homepage-2-1744068158 name: homepage-config - emptyDir: {} name: logs --- apiVersion: v1 kind: Service metadata: annotations: meta.helm.sh/release-name: homepage-2-1744068158 meta.helm.sh/release-namespace: infrastructure labels: app.kubernetes.io/instance: homepage-2-1744068158 app.kubernetes.io/managed-by: Helm app.kubernetes.io/name: homepage-2-1744068158 app.kubernetes.io/service: homepage-2-1744068158 app.kubernetes.io/version: v1.2.0 helm.sh/chart: homepage-2.1.0 name: homepage-2-1744068158 namespace: infrastructure spec: clusterIP: 10.43.36.247 clusterIPs: - 10.43.36.247 internalTrafficPolicy: Cluster ipFamilies: - IPv4 ipFamilyPolicy: SingleStack ports: - name: http port: 3000 protocol: TCP targetPort: http selector: app.kubernetes.io/instance: homepage-2-1744068158 app.kubernetes.io/name: homepage-2-1744068158 sessionAffinity: None type: ClusterIP --- apiVersion: v1 kind: ConfigMap metadata: annotations: meta.helm.sh/release-name: homepage-2-1744068158 meta.helm.sh/release-namespace: infrastructure labels: app.kubernetes.io/instance: homepage-2-1744068158 app.kubernetes.io/managed-by: Helm app.kubernetes.io/name: homepage-2-1744068158 app.kubernetes.io/version: v1.2.0 helm.sh/chart: homepage-2.1.0 name: homepage-2-1744068158 namespace: infrastructure data: bookmarks.yaml: | - Quick Links: - GitHub: - abbr: GH href: https://github.com/ - UniFi Site Manager: - abbr: UI href: https://unifi.ui.com/ - Cloudflare: - abbr: CF href: https://dash.cloudflare.com/ - Grafana Telemetry: - Systems Performance: - abbr: SYS href: https://grafana.snarfnet.net/d/snarfnet-systems/52f6861 - Container Workloads: - abbr: K8S href: https://grafana.snarfnet.net/d/snarfnet-containers/f09f93a6-kubernetes-containers-and-workloads - AI Stack Intelligence: - abbr: AI href: https://grafana.snarfnet.net/d/snarfnet-ai-stack/snarfnet-ai-stack-and-inference-intelligence - Uptime Status Pages: - Unified Overview: - abbr: ALL href: https://uptime.snarfnet.net/status/default - Core & VIP Fabric: - abbr: VIP href: https://uptime.snarfnet.net/status/core - GitOps & CI/CD: - abbr: OPS href: https://uptime.snarfnet.net/status/gitops - Edge & Ingress: - abbr: EDG href: https://uptime.snarfnet.net/status/edge - Homelab Architecture: - Topology Diagram (Image): - abbr: IMG href: https://git.snarfnet.net/Snarf/homelab-gitops/raw/branch/main/docs/snarfnet_homelab_topology.png - Interactive Topology (HTML): - abbr: MAP href: https://git.snarfnet.net/Snarf/homelab-gitops/raw/branch/main/docs/snarfnet_homelab_topology.html docker.yaml: '' kubernetes.yaml: | mode: cluster services.yaml: | - Critical Services: - Authentik: icon: authentik.png href: https://authentik.snarfnet.net description: SSO & Identity Management - PeaNUT UPS: icon: peanut.png href: https://portal.snarfnet.net description: UPS Power & Battery Monitor - Unifi Controller: icon: unifi.png href: https://unifi.ui.com widget: type: unifi url: https://140.44.44.1 username: Snarf password: Katzir476!!! - GitOps & Automation: - Gitea: icon: gitea.png href: https://git.snarfnet.net description: Git Repositories widget: type: gitea url: https://git.snarfnet.net key: f19e772cf54e40ceb2befe452e2bc24dd81fdb71 - ArgoCD: icon: argocd.png href: https://argo.snarfnet.net description: Declarative GitOps Reconciler widget: type: argocd url: https://argo.snarfnet.net key: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJhcmdvY2QiLCJzdWIiOiJob21lcGFnZTphcGlLZXkiLCJuYmYiOjE3OTQ1MDIwNzgsImlhdCI6MTc5NDUwMjA3OCwianRpIjoiZjQ2NzU0NjMtODRhOS00MjI0LWI3ODItNmY5ODQxYWEwY2UxIn0.aHhrny2RBG-vAJAyXMvan0jw65jkP3bguqEduaG78O0 - AWX Automation: icon: awx.png href: https://awx.snarfnet.net description: Ansible Automation Controller - Semaphore: icon: semaphore.png href: https://semaphore.snarfnet.net description: Playbook Execution Engine - Storage & Clusters: - Longhorn Aerodrome: icon: longhorn.png href: https://longhorn.aerodrome.snarfnet.net description: Aerodrome Distributed Flash Storage - Longhorn Spaceport: icon: longhorn.png href: https://longhorn.spaceport.snarfnet.net description: Spaceport Distributed Block Storage - Rancher (Aerodrome): icon: rancher.png href: https://aerodrome.snarfnet.net description: Kubernetes Management Console widget: type: customapi url: https://aerodrome.snarfnet.net/v3/clusters/local headers: Authorization: Bearer kubeconfig-u-aqzkufonck4hmbd:bw22b96nv8844k8w5r8lzpz8gnk22tjwj95j6nkzr7hd5dhm4bs6z7 mappings: - field: capacity.cpu label: CPU Cores - field: capacity.pods label: Max Pods - field: state label: Cluster State - Harvester HCI (Spacedock): icon: harvester.png href: https://harvester.spacedock.snarfnet.net description: HCI Virtualization Hypervisors widget: type: customapi url: https://aerodrome.snarfnet.net/v3/clusters/c-cclnt headers: Authorization: Bearer kubeconfig-u-aqzkufonck4hmbd:bw22b96nv8844k8w5r8lzpz8gnk22tjwj95j6nkzr7hd5dhm4bs6z7 mappings: - field: capacity.cpu label: CPU Cores - field: capacity.pods label: Max Pods - field: state label: HCI State - Portainer Swarm: icon: portainer.png href: https://shipyard.snarfnet.net description: Docker Swarm Container Fleet widget: type: portainer url: https://140.44.4.71:9443 env: 3 key: ptr_TCVm8ujeB4zT0oRejyMCwKw5enaPG/uKj1KuF0uOWX8= - Infrastructure & Observability: - NGINX Proxy Manager: icon: nginx-proxy-manager href: https://nginx.snarfnet.net description: Reverse Proxy & SSL Certificates - Uptime Kuma: icon: uptime-kuma href: https://uptime.snarfnet.net description: Multi-Endpoint Availability Probes widget: type: uptimekuma url: http://140.44.4.28:448 slug: default - Zabbix: icon: zabbix.png href: https://zabbix.snarfnet.net description: Infrastructure Metrics & Alarms - Grafana: icon: grafana.png href: https://grafana.snarfnet.net description: Real-Time Metrics & AI Dashboards widget: type: grafana url: https://grafana.snarfnet.net username: admin password: Katzir476!!! - Core Node Glances: icon: glances.png href: http://140.44.4.11:61208 description: Host Resource Monitor - Homelab Topology: icon: mdi-sitemap href: https://git.snarfnet.net/Snarf/homelab-gitops/raw/branch/main/docs/snarfnet_homelab_topology.png description: Architecture & Network Schematic - Environment & Weather: - Tempest Weather Station: icon: weather.png href: https://snarfhome.snarfnet.net description: Backyard Weather Telemetry widget: type: homeassistant url: http://14.4.4.20:8123 key: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiIzZWUyNTE1MDk0NGU0ZjRjYmJkMGM1MWI5MThmY2EzYiIsImlhdCI6MTc0NjgxMDM3NSwiZXhwIjoyMDYyMTcwMzc1fQ.Le6M7WL63nxtLTxccFacQR5GVUY5C-a_zGtmXT_uaz4 custom: - template: '{{ states(''sensor.st_00158555_temperature'') | float(0) | round(1) }} °F' label: Outdoor Temp - template: '{{ states(''sensor.st_00158555_feels_like'') | float(0) | round(1) }} °F' label: Feels Like - template: '{{ states(''sensor.st_00158555_humidity'') | float(0) | round(1) }} %' label: Humidity - template: '{{ states(''sensor.st_00158555_wind_speed'') | float(0) | round(1) }} mph' label: Wind Speed settings.yaml: | title: SnarfNet Operations & Telemetry headerStyle: boxed color: slate theme: dark statusStyle: badge background: image: https://i.imgur.com/hOzzkCY.jpeg blur: sm opacity: 50 brightness: 50 cardBlur: sm quicklaunch: searchDescriptions: true hideInternetSearch: true hideVisitURL: true hideVersion: true layout: Critical Services: icon: mdi-shield-check style: row columns: 3 GitOps & Automation: icon: mdi-git style: row columns: 4 Storage & Clusters: icon: mdi-server-network style: row columns: 3 Infrastructure & Observability: icon: mdi-chart-timeline-variant style: row columns: 3 Environment & Weather: icon: mdi-weather-partly-cloudy style: row columns: 1 showStats: true providers: longhorn: url: http://longhorn-backend.longhorn-system.svc.cluster.local:9500 widgets.yaml: | - kubernetes: cluster: show: true cpu: true memory: true show_names: true nodes: show: false - longhorn: total: true nodes: false - resources: label: System backend: resources cpu: true expanded: true memory: true disk: / - search: provider: duckduckgo target: _blank