From 1483756ec0d91b39da10d4e248612d69008dd089 Mon Sep 17 00:00:00 2001 From: alexlebens Date: Mon, 27 May 2024 20:31:07 -0500 Subject: [PATCH] convert homepage to app-template --- .../cl01tl/applications/homepage/Chart.yaml | 17 +- .../templates/cluster-role-binding.yaml | 19 + .../homepage/templates/cluster-role.yaml | 51 + .../homepage/templates/ingress-route.yaml | 33 + .../homepage/templates/middleware.yaml | 27 + .../homepage/templates/secret.yaml | 14 + .../cl01tl/applications/homepage/values.yaml | 1173 +++++++++-------- 7 files changed, 769 insertions(+), 565 deletions(-) create mode 100644 clusters/cl01tl/applications/homepage/templates/cluster-role-binding.yaml create mode 100644 clusters/cl01tl/applications/homepage/templates/cluster-role.yaml create mode 100644 clusters/cl01tl/applications/homepage/templates/ingress-route.yaml create mode 100644 clusters/cl01tl/applications/homepage/templates/middleware.yaml create mode 100644 clusters/cl01tl/applications/homepage/templates/secret.yaml diff --git a/clusters/cl01tl/applications/homepage/Chart.yaml b/clusters/cl01tl/applications/homepage/Chart.yaml index 2764e8feb..9c4d262d9 100644 --- a/clusters/cl01tl/applications/homepage/Chart.yaml +++ b/clusters/cl01tl/applications/homepage/Chart.yaml @@ -1,12 +1,19 @@ apiVersion: v2 -name: homepage-front +name: homepage version: 1.0.0 +description: Homepage home: https://outline.alexlebens.net/doc/homepage-s2clWoI5EC +keywords: + - dashboard sources: - https://github.com/gethomepage/homepage - https://github.com/alexlebens/helm-charts/tree/main/charts/homepage +maintainers: + - name: alexlebens dependencies: - - name: homepage - version: 0.0.15 - repository: http://alexlebens.github.io/helm-charts -appVersion: v0.8.12 + - name: app-template + alias: homepage + repository: https://bjw-s.github.io/helm-charts/ + version: 3.2.1 +icon: https://github.com/benphelps/homepage/blob/de584eae8f12a0d257e554e9511ef19bd2a1232c/public/mstile-150x150.png +appVersion: v0.8.13 diff --git a/clusters/cl01tl/applications/homepage/templates/cluster-role-binding.yaml b/clusters/cl01tl/applications/homepage/templates/cluster-role-binding.yaml new file mode 100644 index 000000000..0c27f6402 --- /dev/null +++ b/clusters/cl01tl/applications/homepage/templates/cluster-role-binding.yaml @@ -0,0 +1,19 @@ +apiVersion: rbac.authorization.k8s.io/v1 +kind: ClusterRoleBinding +metadata: + name: {{ .Release.Name }} + namespace: {{ .Release.Namespace }} + labels: + app.kubernetes.io/name: {{ .Release.Name }} + app.kubernetes.io/instance: {{ .Release.Name }} + app.kubernetes.io/version: {{ .Chart.AppVersion }} + app.kubernetes.io/component: web + app.kubernetes.io/part-of: {{ .Release.Name }} +roleRef: + apiGroup: rbac.authorization.k8s.io + kind: ClusterRole + name: {{ .Release.Name }} +subjects: + - kind: ServiceAccount + name: homepage + namespace: {{ .Release.Namespace }} diff --git a/clusters/cl01tl/applications/homepage/templates/cluster-role.yaml b/clusters/cl01tl/applications/homepage/templates/cluster-role.yaml new file mode 100644 index 000000000..c71cb25e1 --- /dev/null +++ b/clusters/cl01tl/applications/homepage/templates/cluster-role.yaml @@ -0,0 +1,51 @@ +apiVersion: rbac.authorization.k8s.io/v1 +kind: ClusterRole +metadata: + name: {{ .Release.Name }} + namespace: {{ .Release.Namespace }} + labels: + app.kubernetes.io/name: {{ .Release.Name }} + app.kubernetes.io/instance: {{ .Release.Name }} + app.kubernetes.io/version: {{ .Chart.AppVersion }} + app.kubernetes.io/component: web + app.kubernetes.io/part-of: {{ .Release.Name }} +rules: + - apiGroups: + - "" + resources: + - namespaces + - pods + - nodes + verbs: + - get + - list + - apiGroups: + - extensions + - networking.k8s.io + resources: + - ingresses + verbs: + - get + - list + - apiGroups: + - traefik.containo.us + - traefik.io + resources: + - ingressroutes + verbs: + - get + - list + - apiGroups: + - metrics.k8s.io + resources: + - nodes + - pods + verbs: + - get + - list + - apiGroups: + - apiextensions.k8s.io + resources: + - customresourcedefinitions/status + verbs: + - get diff --git a/clusters/cl01tl/applications/homepage/templates/ingress-route.yaml b/clusters/cl01tl/applications/homepage/templates/ingress-route.yaml new file mode 100644 index 000000000..0c0097fb1 --- /dev/null +++ b/clusters/cl01tl/applications/homepage/templates/ingress-route.yaml @@ -0,0 +1,33 @@ +apiVersion: traefik.io/v1alpha1 +kind: IngressRoute +metadata: + name: homepage + namespace: {{ .Release.Namespace }} + labels: + app.kubernetes.io/name: homepage + app.kubernetes.io/instance: {{ .Release.Name }} + app.kubernetes.io/version: {{ .Chart.AppVersion }} + app.kubernetes.io/component: web + app.kubernetes.io/part-of: {{ .Release.Name }} +spec: + entryPoints: + - websecure + routes: + - kind: Rule + match: Host(`home.alexlebens.net`) + middlewares: + - name: "authentik-{{ .Release.Name }}" + namespace: authentik + priority: 10 + services: + - kind: Service + name: homepage + port: 80 + - kind: Rule + match: Host(`home.alexlebens.net`) && PathPrefix(`/outpost.goauthentik.io/`) + priority: 15 + services: + - kind: Service + name: authentik-outpost-proxy + port: 9000 + namespace: authentik diff --git a/clusters/cl01tl/applications/homepage/templates/middleware.yaml b/clusters/cl01tl/applications/homepage/templates/middleware.yaml new file mode 100644 index 000000000..c646a0aca --- /dev/null +++ b/clusters/cl01tl/applications/homepage/templates/middleware.yaml @@ -0,0 +1,27 @@ +apiVersion: traefik.io/v1alpha1 +kind: Middleware +metadata: + name: "authentik-{{ .Release.Name }}" + namespace: authentik + labels: + app.kubernetes.io/name: "authentik-{{ .Release.Name }}" + app.kubernetes.io/instance: {{ .Release.Name }} + app.kubernetes.io/version: {{ .Chart.AppVersion }} + app.kubernetes.io/component: auth + app.kubernetes.io/part-of: {{ .Release.Name }} +spec: + forwardAuth: + address: http://authentik-outpost-proxy.authentik:9000/outpost.goauthentik.io/auth/traefik + trustForwardHeader: true + authResponseHeaders: + - X-authentik-username + - X-authentik-groups + - X-authentik-email + - X-authentik-name + - X-authentik-uid + - X-authentik-jwt + - X-authentik-meta-jwks + - X-authentik-meta-outpost + - X-authentik-meta-provider + - X-authentik-meta-app + - X-authentik-meta-version diff --git a/clusters/cl01tl/applications/homepage/templates/secret.yaml b/clusters/cl01tl/applications/homepage/templates/secret.yaml new file mode 100644 index 000000000..f3801c41a --- /dev/null +++ b/clusters/cl01tl/applications/homepage/templates/secret.yaml @@ -0,0 +1,14 @@ +apiVersion: v1 +kind: Secret +type: kubernetes.io/service-account-token +metadata: + name: "{{ .Release.Name }}-sa-token" + namespace: {{ .Release.Namespace }} + labels: + app.kubernetes.io/name: "{{ .Release.Name }}-sa-token" + app.kubernetes.io/instance: {{ .Release.Name }} + app.kubernetes.io/version: {{ .Chart.AppVersion }} + app.kubernetes.io/component: web + app.kubernetes.io/part-of: {{ .Release.Name }} + annotations: + kubernetes.io/service-account.name: homepage diff --git a/clusters/cl01tl/applications/homepage/values.yaml b/clusters/cl01tl/applications/homepage/values.yaml index eeb86f081..47fcfa463 100644 --- a/clusters/cl01tl/applications/homepage/values.yaml +++ b/clusters/cl01tl/applications/homepage/values.yaml @@ -1,563 +1,616 @@ homepage: - deployment: - annotations: - reloader.stakater.com/auto: "true" - resources: - limits: - memory: 2Gi - cpu: 1000m - envFrom: - - secretRef: - name: homepage-keys-secret - ingressRoute: - host: home.alexlebens.net - authentik: - outpost: authentik-outpost-proxy - namespace: authentik - config: - widgets: - - logo: - icon: https://alexlebens-dev.nyc3.digitaloceanspaces.com/cl02do/assets/icon_white.png - - kubernetes: - cluster: - show: true - cpu: true - memory: true - showLabel: true - label: "Cluster" - nodes: - show: false - - datetime: - text_size: xl - format: - dateStyle: long - timeStyle: short - hour12: false - - openmeteo: - label: Denver - latitude: 39.73 - longitude: 104.99 - units: metric - cache: 5 - services: - - Media: - - Plex: - icon: plex.png - href: https://plex.alexlebens.net - description: Media server - siteMonitor: http://plex.plex:32400 - statusStyle: dot - - Overseerr: - icon: overseerr.png - description: Requests - href: https://overseerr.alexlebens.net - siteMonitor: http://overseerr.overseerr:5055 - statusStyle: dot - - Jellyfin: - icon: jellyfin.png - description: Media server - href: https://jellyfin.alexlebens.net/ - siteMonitor: http://jellyfin.jellyfin:8096 - statusStyle: dot - - Kyoo: - icon: https://raw.githubusercontent.com/zoriya/Kyoo/master/icons/icon-256x256.png - description: Media server - href: https://kyoo.alexlebens.net/ - siteMonitor: http://kyoo-front.kyoo:8901 - statusStyle: dot - - TubeAchivist: - icon: tube-archivist.png - description: Youtube downloader - href: https://tubearchivist.alexlebens.net/login/ - siteMonitor: http://tubearchivist.tubearchivist:8000 - statusStyle: dot - - Navidrome: - icon: navidrome.png - description: Music - href: https://navidrome.alexlebens.net - siteMonitor: http://navidrome.navidrome:4533 - statusStyle: dot - - Audiobookshelf: - icon: audiobookshelf.png - description: Audiobooks, Books, and Podcasts - href: https://audiobookshelf.alexlebens.net - siteMonitor: http://audiobookshelf.audiobookshelf:80 - statusStyle: dot - - Calibre: - icon: calibre-web.png - description: Books - href: https://calibre.alexlebens.net - siteMonitor: http://calibre-web.calibre-web:8083 - statusStyle: dot - - Applications: - - Ghost (.dev): - icon: ghost.png - description: Website and blog - href: https://blog.alexlebens.dev - siteMonitor: https://blog.alexlebens.dev - statusStyle: dot - - Chat (.dev): - icon: element.svg - description: Web client for Matrix chat - href: https://chat.alexlebens.dev - siteMonitor: https://chat.alexlebens.dev - statusStyle: dot - - Home Assistant: - icon: home-assistant.png - description: Home automation - href: https://homeassistant.alexlebens.net - siteMonitor: http://home-assistant.home-assistant:8123 - statusStyle: dot - - Vikunja: - icon: vikunja.png - description: Notes and tasks - href: https://vikunja.alexlebens.net - siteMonitor: http://vikunja-frontend.vikunja:80 - statusStyle: dot - - Taiga: - icon: taiga.png - description: Project planning - href: https://taiga.alexlebens.net - siteMonitor: http://taiga-front.taiga:80 - statusStyle: dot - - Penpot: - icon: https://raw.githubusercontent.com/penpot/penpot/362d4ea47f06d169dd6e0a34cb9d141200e646e6/frontend/resources/images/icons/penpot-logo-icon.svg - description: Web design - href: https://penpot.alexlebens.net - siteMonitor: http://penpot.penpot:80 - statusStyle: dot - - Outline: - icon: outline.png - description: Wiki - href: https://outline.alexlebens.net - siteMonitor: http://outline.outline:3000 - statusStyle: dot - - FreshRss: - icon: freshrss.svg - description: Rss reader - href: https://rss.alexlebens.net - siteMonitor: http://freshrss.freshrss:80 - statusStyle: dot - - Code: - - Code Server: - icon: code-server.png - description: VS Code in a browser - href: https://codeserver.alexlebens.net - siteMonitor: http://code-server.code-server:8443 - statusStyle: dot - - Code Server - Home Assistant: - icon: code-server.png - description: Edit config for Home Assistant - href: https://homeassistant-codeserver.alexlebens.net - siteMonitor: http://home-assistant-codeserver.home-assistant:8443 - statusStyle: dot - - Gitea - cl01tl: - icon: gitea.png - description: Code repository - href: https://gitea.alexlebens.net - siteMonitor: http://gitea-http.gitea:3000 - statusStyle: dot - - Gitea - ps08rp: - icon: gitea.png - description: Code repository - href: https://gitea-ps08rp.alexlebens.net - siteMonitor: https://gitea-ps08rp.alexlebens.net - statusStyle: dot - - Gitea - ps09rp: - icon: gitea.png - description: Code repository - href: https://gitea-ps09rp.alexlebens.net - siteMonitor: https://gitea-ps09rp.alexlebens.net - statusStyle: dot - - ArgoCD: - icon: argocd.png - description: Continous Deployment - href: https://argocd.alexlebens.net - siteMonitor: http://argocd-server.argocd:80 - statusStyle: dot - namespace: argocd - - Argo Rollouts: - icon: argocd.png - description: Deployment mangement and evaluation - href: https://argo-rollouts.alexlebens.net - siteMonitor: http://argo-rollouts-dashboard.argocd:3100 - statusStyle: dot - namespace: argocd - - Argo Workflows: - icon: argocd.png - description: Workflows and events for ArgoCD - href: https://argo-workflows.alexlebens.net - siteMonitor: http://argo-workflows-server.argocd:2746 - statusStyle: dot - namespace: argocd - - Kargo: - icon: https://raw.githubusercontent.com/akuity/kargo/main/ui/public/kargo-icon.png - description: Continous Integration - href: https://kargo.alexlebens.net - siteMonitor: http://kargo-api.argocd:80 - statusStyle: dot - namespace: argocd - - Management: - - Calibre Server: - icon: calibre.png - description: Calibre content server - href: https://calibre-server.alexlebens.net - siteMonitor: http://calibre-server.calibre-server:8080 - statusStyle: dot - - COPS: - icon: calibre-web.png - description: Calibre OPDS (and HTML) PHP Server - href: https://calibre-content.alexlebens.net - siteMonitor: http://cops.cops:80 - statusStyle: dot - - Monitoring: - - Portainer: - icon: portainer.png - description: Service monitoring - href: https://portainer.alexlebens.net - siteMonitor: http://portainer.portainer:9000 - statusStyle: dot - - Headlamp: - icon: kubernetes.png - description: Kubernetes dashboard - href: https://headlamp.alexlebens.net - siteMonitor: http://headlamp.headlamp:80 - statusStyle: dot - - Hubble: - icon: cilium.png - description: Network monitoring for Cilium - href: https://hubble.alexlebens.net - siteMonitor: http://hubble-ui.kube-system:80 - statusStyle: dot - - Grafana: - icon: grafana.png - description: Dashboard - href: https://grafana.alexlebens.net - siteMonitor: https://grafana.alexlebens.net - statusStyle: dot - - Prometheus: - icon: prometheus.png - description: Metrics database - href: https://prometheus.alexlebens.net - siteMonitor: http://kube-prometheus-stack-prometheus.kube-prometheus-stack:9090 - statusStyle: dot - widget: - type: prometheus - url: http://kube-prometheus-stack-prometheus.kube-prometheus-stack:9090 - - Alertmanager: - icon: alertmanager.png - description: Alerting and notification - href: https://alertmanager.alexlebens.net - siteMonitor: http://kube-prometheus-stack-alertmanager.kube-prometheus-stack:9093 - statusStyle: dot - - Services: - - Authentik: - icon: authentik.png - description: Identity management and provider - href: https://authentik.alexlebens.net - siteMonitor: http://authentik-server.authentik:80 - statusStyle: dot - - Authentik (.dev): - icon: authentik.png - description: Identity management and provider - href: https://auth.alexlebens.dev - siteMonitor: https://auth.alexlebens.dev - statusStyle: dot - - Traefik - cl01tl: - icon: traefik.png - description: Reverse proxy - href: https://traefik-cl01tl.alexlebens.net/dashboard/#/ - siteMonitor: https://traefik-cl01tl.alexlebens.net/dashboard/#/ - statusStyle: dot - widget: - type: traefik - url: https://traefik-cl01tl.alexlebens.net - - Traefik - ps08rp: - icon: traefik.png - description: Reverse proxy - href: https://traefik-ps08rp.alexlebens.net/dashboard/#/ - siteMonitor: https://traefik-ps08rp.alexlebens.net/dashboard/#/ - statusStyle: dot - - Traefik - ps09rp: - icon: traefik.png - description: Reverse proxy - href: https://traefik-ps09rp.alexlebens.net/dashboard/#/ - siteMonitor: https://traefik-ps09rp.alexlebens.net/dashboard/#/ - statusStyle: dot - - Technitium - ps08rp: - icon: technitium.png - description: DNS - href: https://technitium-ps08rp.alexlebens.net - siteMonitor: https://technitium-ps08rp.alexlebens.net - statusStyle: dot - - Technitium - ps09rp: - icon: technitium.png - description: DNS - href: https://technitium-ps09rp.alexlebens.net - siteMonitor: https://technitium-ps09rp.alexlebens.net - statusStyle: dot - - Hardware: - - Unifi: - icon: unifi.png - description: Manager network hardware - href: https://unifi.alexlebens.net - siteMonitor: https://unifi.alexlebens.net - statusStyle: dot - - Synology: - icon: synology.png - description: Network Attached Storage - href: https://synology.alexlebens.net - siteMonitor: https://synology.alexlebens.net - statusStyle: dot - widget: - type: diskstation - url: https://synology.alexlebens.net - username: '{{HOMEPAGE_VAR_SYNOLOGY_USER}}' - password: '{{HOMEPAGE_VAR_SYNOLOGY_PASSWORD}}' - volume: volume_2 - - HD Homerun Flex: - icon: hdhomerun.png - description: TV Tuner - href: http://hdhr.alexlebens.net - siteMonitor: http://hdhr.alexlebens.net - statusStyle: dot - - Pi KVM: - icon: pikvm.png - description: IP KVM - href: https://pikvm.alexlebens.net - siteMonitor: https://pikvm.alexlebens.net - statusStyle: dot - - Storage: - - Ceph: - icon: ceph.png - description: Clustered storage - href: https://ceph.alexlebens.net - siteMonitor: http://rook-ceph-mgr-dashboard.rook-ceph:7000 - statusStyle: dot - - PGAdmin: - icon: pgadmin.png - description: Postgresql console - href: https://pgadmin.alexlebens.net - siteMonitor: http://pgadmin-pgadmin4.pgadmin:80 - statusStyle: dot - - Vault: - icon: vault.png - description: Secret management - href: https://vault.alexlebens.net - siteMonitor: http://vault.vault:8200 - statusStyle: dot - - Minio: - icon: minio.png - description: Operator for Minio S3 storage - href: https://minio.alexlebens.net - siteMonitor: http://console.minio-operator:9090 - statusStyle: dot - - Minio - Outline: - icon: minio.png - description: Tenant for Outline S3 storage - href: https://minio-outline.alexlebens.net - siteMonitor: http://minio-outline-console.outline:9090 - statusStyle: dot - - Minio - Penpot: - icon: minio.png - description: Tenant for Penpot S3 storage - href: https://minio-penpot.alexlebens.net - siteMonitor: http://minio-penpot-console.penpot:9090 - statusStyle: dot - - Sonarr: + global: + nameOverride: homepage + controllers: + main: + type: deployment + annotations: + reloader.stakater.com/auto: "true" + strategy: Recreate + containers: + main: + image: + repository: ghcr.io/gethomepage/homepage + tag: v0.8.13 + pullPolicy: IfNotPresent + envFrom: + - secretRef: + name: homepage-keys-secret + resources: + requests: + cpu: 100m + memory: 128Mi + serviceAccount: + create: true + configMaps: + config: + enabled: true + data: + docker.yaml: "" + kubernetes.yaml: "" + settings.yaml: | + favicon: https://alexlebens-dev.nyc3.digitaloceanspaces.com/cl02do/assets/icon_white.png + headerStyle: clean + hideVersion: true + color: slate + background: + image: https://alexlebens-dev.nyc3.digitaloceanspaces.com/cl02do/assets/background.jpg + theme: dark + disableCollapse: true + layout: + - Media: + tab: Apps + icon: mdi-multimedia-#ffffff + - Applications: + tab: Apps + icon: mdi-application-#ffffff + - Code: + tab: Tools + icon: mdi-code-braces-box-#ffffff + - Monitoring: + tab: Tools + icon: mdi-chart-bar-#ffffff + - Management: + tab: Tools + icon: mdi-content-save-cog-#ffffff + - Services: + tab: Services + icon: mdi-server-network-#ffffff + - Hardware: + tab: Services + icon: mdi-lan-connect-#ffffff + - Storage: + tab: Services + icon: mdi-harddisk-#ffffff + - Sonarr: + tab: Servarr + icon: mdi-television-#ffffff + - Radarr: + tab: Servarr + icon: mdi-filmstrip-#ffffff + - Other: + tab: Servarr + icon: mdi-music-box-multiple-#ffffff + - Media Services: + tab: Servarr + icon: mdi-radar-#ffffff + - External Services: + tab: Bookmarks + icon: mdi-cloud-#ffffff + - Trackers: + tab: Bookmarks + icon: mdi-cloud-#ffffff + widgets.yaml: | + - logo: + icon: https://alexlebens-dev.nyc3.digitaloceanspaces.com/cl02do/assets/icon_white.png + - kubernetes: + cluster: + show: true + cpu: true + memory: true + showLabel: true + label: "Cluster" + nodes: + show: false + - datetime: + text_size: xl + format: + dateStyle: long + timeStyle: short + hour12: false + - openmeteo: + label: St. Paul + latitude: 44.95 + longitude: 93.09 + units: metric + cache: 5 + services.yaml: | + - Media: + - Plex: + icon: plex.png + href: https://plex.alexlebens.net + description: Media server + siteMonitor: http://plex.plex:32400 + statusStyle: dot + - Overseerr: + icon: overseerr.png + description: Requests + href: https://overseerr.alexlebens.net + siteMonitor: http://overseerr.overseerr:5055 + statusStyle: dot + - Jellyfin: + icon: jellyfin.png + description: Media server + href: https://jellyfin.alexlebens.net/ + siteMonitor: http://jellyfin.jellyfin:8096 + statusStyle: dot + - Kyoo: + icon: https://raw.githubusercontent.com/zoriya/Kyoo/master/icons/icon-256x256.png + description: Media server + href: https://kyoo.alexlebens.net/ + siteMonitor: http://kyoo-front.kyoo:8901 + statusStyle: dot + - TubeAchivist: + icon: tube-archivist.png + description: Youtube downloader + href: https://tubearchivist.alexlebens.net/login/ + siteMonitor: http://tubearchivist.tubearchivist:8000 + statusStyle: dot + - Navidrome: + icon: navidrome.png + description: Music + href: https://navidrome.alexlebens.net + siteMonitor: http://navidrome.navidrome:4533 + statusStyle: dot + - Audiobookshelf: + icon: audiobookshelf.png + description: Audiobooks, Books, and Podcasts + href: https://audiobookshelf.alexlebens.net + siteMonitor: http://audiobookshelf.audiobookshelf:80 + statusStyle: dot + - Calibre: + icon: calibre-web.png + description: Books + href: https://calibre.alexlebens.net + siteMonitor: http://calibre-web.calibre-web:8083 + statusStyle: dot + - Applications: + - Ghost (.dev): + icon: ghost.png + description: Website and blog + href: https://blog.alexlebens.dev + siteMonitor: https://blog.alexlebens.dev + statusStyle: dot + - Chat (.dev): + icon: element.svg + description: Web client for Matrix chat + href: https://chat.alexlebens.dev + siteMonitor: https://chat.alexlebens.dev + statusStyle: dot + - Home Assistant: + icon: home-assistant.png + description: Home automation + href: https://homeassistant.alexlebens.net + siteMonitor: http://home-assistant.home-assistant:8123 + statusStyle: dot + - Vikunja: + icon: vikunja.png + description: Notes and tasks + href: https://vikunja.alexlebens.net + siteMonitor: http://vikunja-frontend.vikunja:80 + statusStyle: dot + - Taiga: + icon: taiga.png + description: Project planning + href: https://taiga.alexlebens.net + siteMonitor: http://taiga-front.taiga:80 + statusStyle: dot + - Penpot: + icon: https://raw.githubusercontent.com/penpot/penpot/362d4ea47f06d169dd6e0a34cb9d141200e646e6/frontend/resources/images/icons/penpot-logo-icon.svg + description: Web design + href: https://penpot.alexlebens.net + siteMonitor: http://penpot.penpot:80 + statusStyle: dot + - Outline: + icon: outline.png + description: Wiki + href: https://outline.alexlebens.net + siteMonitor: http://outline.outline:3000 + statusStyle: dot + - FreshRss: + icon: freshrss.svg + description: Rss reader + href: https://rss.alexlebens.net + siteMonitor: http://freshrss.freshrss:80 + statusStyle: dot + - Code: + - Code Server: + icon: code-server.png + description: VS Code in a browser + href: https://codeserver.alexlebens.net + siteMonitor: http://code-server.code-server:8443 + statusStyle: dot + - Code Server - Home Assistant: + icon: code-server.png + description: Edit config for Home Assistant + href: https://homeassistant-codeserver.alexlebens.net + siteMonitor: http://home-assistant-codeserver.home-assistant:8443 + statusStyle: dot + - Gitea - cl01tl: + icon: gitea.png + description: Code repository + href: https://gitea.alexlebens.net + siteMonitor: http://gitea-http.gitea:3000 + statusStyle: dot + - Gitea - ps08rp: + icon: gitea.png + description: Code repository + href: https://gitea-ps08rp.alexlebens.net + siteMonitor: https://gitea-ps08rp.alexlebens.net + statusStyle: dot + - Gitea - ps09rp: + icon: gitea.png + description: Code repository + href: https://gitea-ps09rp.alexlebens.net + siteMonitor: https://gitea-ps09rp.alexlebens.net + statusStyle: dot + - ArgoCD: + icon: argocd.png + description: Continous Deployment + href: https://argocd.alexlebens.net + siteMonitor: http://argocd-server.argocd:80 + statusStyle: dot + namespace: argocd + - Argo Rollouts: + icon: argocd.png + description: Deployment mangement and evaluation + href: https://argo-rollouts.alexlebens.net + siteMonitor: http://argo-rollouts-dashboard.argocd:3100 + statusStyle: dot + namespace: argocd + - Argo Workflows: + icon: argocd.png + description: Workflows and events for ArgoCD + href: https://argo-workflows.alexlebens.net + siteMonitor: http://argo-workflows-server.argocd:2746 + statusStyle: dot + namespace: argocd + - Kargo: + icon: https://raw.githubusercontent.com/akuity/kargo/main/ui/public/kargo-icon.png + description: Continous Integration + href: https://kargo.alexlebens.net + siteMonitor: http://kargo-api.argocd:80 + statusStyle: dot + namespace: argocd + - Management: + - Calibre Server: + icon: calibre.png + description: Calibre content server + href: https://calibre-server.alexlebens.net + siteMonitor: http://calibre-server.calibre-server:8080 + statusStyle: dot + - COPS: + icon: calibre-web.png + description: Calibre OPDS (and HTML) PHP Server + href: https://calibre-content.alexlebens.net + siteMonitor: http://cops.cops:80 + statusStyle: dot + - Monitoring: + - Portainer: + icon: portainer.png + description: Service monitoring + href: https://portainer.alexlebens.net + siteMonitor: http://portainer.portainer:9000 + statusStyle: dot + - Headlamp: + icon: kubernetes.png + description: Kubernetes dashboard + href: https://headlamp.alexlebens.net + siteMonitor: http://headlamp.headlamp:80 + statusStyle: dot + - Hubble: + icon: cilium.png + description: Network monitoring for Cilium + href: https://hubble.alexlebens.net + siteMonitor: http://hubble-ui.kube-system:80 + statusStyle: dot + - Grafana: + icon: grafana.png + description: Dashboard + href: https://grafana.alexlebens.net + siteMonitor: https://grafana.alexlebens.net + statusStyle: dot + - Prometheus: + icon: prometheus.png + description: Metrics database + href: https://prometheus.alexlebens.net + siteMonitor: http://kube-prometheus-stack-prometheus.kube-prometheus-stack:9090 + statusStyle: dot + widget: + type: prometheus + url: http://kube-prometheus-stack-prometheus.kube-prometheus-stack:9090 + - Alertmanager: + icon: alertmanager.png + description: Alerting and notification + href: https://alertmanager.alexlebens.net + siteMonitor: http://kube-prometheus-stack-alertmanager.kube-prometheus-stack:9093 + statusStyle: dot + - Services: + - Authentik: + icon: authentik.png + description: Identity management and provider + href: https://authentik.alexlebens.net + siteMonitor: http://authentik-server.authentik:80 + statusStyle: dot + - Authentik (.dev): + icon: authentik.png + description: Identity management and provider + href: https://auth.alexlebens.dev + siteMonitor: https://auth.alexlebens.dev + statusStyle: dot + - Traefik - cl01tl: + icon: traefik.png + description: Reverse proxy + href: https://traefik-cl01tl.alexlebens.net/dashboard/#/ + siteMonitor: https://traefik-cl01tl.alexlebens.net/dashboard/#/ + statusStyle: dot + widget: + type: traefik + url: https://traefik-cl01tl.alexlebens.net + - Traefik - ps08rp: + icon: traefik.png + description: Reverse proxy + href: https://traefik-ps08rp.alexlebens.net/dashboard/#/ + siteMonitor: https://traefik-ps08rp.alexlebens.net/dashboard/#/ + statusStyle: dot + - Traefik - ps09rp: + icon: traefik.png + description: Reverse proxy + href: https://traefik-ps09rp.alexlebens.net/dashboard/#/ + siteMonitor: https://traefik-ps09rp.alexlebens.net/dashboard/#/ + statusStyle: dot + - Technitium - ps08rp: + icon: technitium.png + description: DNS + href: https://technitium-ps08rp.alexlebens.net + siteMonitor: https://technitium-ps08rp.alexlebens.net + statusStyle: dot + - Technitium - ps09rp: + icon: technitium.png + description: DNS + href: https://technitium-ps09rp.alexlebens.net + siteMonitor: https://technitium-ps09rp.alexlebens.net + statusStyle: dot + - Hardware: + - Unifi: + icon: unifi.png + description: Manager network hardware + href: https://unifi.alexlebens.net + siteMonitor: https://unifi.alexlebens.net + statusStyle: dot + - Synology: + icon: synology.png + description: Network Attached Storage + href: https://synology.alexlebens.net + siteMonitor: https://synology.alexlebens.net + statusStyle: dot + widget: + type: diskstation + url: https://synology.alexlebens.net + username: '{{HOMEPAGE_VAR_SYNOLOGY_USER}}' + password: '{{HOMEPAGE_VAR_SYNOLOGY_PASSWORD}}' + volume: volume_2 + - HD Homerun Flex: + icon: hdhomerun.png + description: TV Tuner + href: http://hdhr.alexlebens.net + siteMonitor: http://hdhr.alexlebens.net + statusStyle: dot + - Pi KVM: + icon: pikvm.png + description: IP KVM + href: https://pikvm.alexlebens.net + siteMonitor: https://pikvm.alexlebens.net + statusStyle: dot + - Storage: + - Ceph: + icon: ceph.png + description: Clustered storage + href: https://ceph.alexlebens.net + siteMonitor: http://rook-ceph-mgr-dashboard.rook-ceph:7000 + statusStyle: dot + - PGAdmin: + icon: pgadmin.png + description: Postgresql console + href: https://pgadmin.alexlebens.net + siteMonitor: http://pgadmin-pgadmin4.pgadmin:80 + statusStyle: dot + - Vault: + icon: vault.png + description: Secret management + href: https://vault.alexlebens.net + siteMonitor: http://vault.vault:8200 + statusStyle: dot + - Minio: + icon: minio.png + description: Operator for Minio S3 storage + href: https://minio.alexlebens.net + siteMonitor: http://console.minio-operator:9090 + statusStyle: dot + - Minio - Outline: + icon: minio.png + description: Tenant for Outline S3 storage + href: https://minio-outline.alexlebens.net + siteMonitor: http://minio-outline-console.outline:9090 + statusStyle: dot + - Minio - Penpot: + icon: minio.png + description: Tenant for Penpot S3 storage + href: https://minio-penpot.alexlebens.net + siteMonitor: http://minio-penpot-console.penpot:9090 + statusStyle: dot - Sonarr: - icon: sonarr.png - description: TV Shows - href: https://sonarr.alexlebens.net - siteMonitor: http://sonarr4.sonarr4:8989 - statusStyle: dot - widget: - type: sonarr - url: http://sonarr4.sonarr4:8989 - key: '{{HOMEPAGE_VAR_SONARR_KEY}}' - fields: ["wanted", "queued", "series"] - enableQueue: false - - Sonarr 4K: - icon: sonarr.png - description: TV Shows 4K - href: https://sonarr-4k.alexlebens.net - siteMonitor: http://sonarr4-4k.sonarr4-4k:8989 - statusStyle: dot - widget: - type: sonarr - url: http://sonarr4-4k.sonarr4-4k:8989 - key: '{{HOMEPAGE_VAR_SONARR4K_KEY}}' - fields: ["wanted", "queued", "series"] - enableQueue: false - - Radarr: + - Sonarr: + icon: sonarr.png + description: TV Shows + href: https://sonarr.alexlebens.net + siteMonitor: http://sonarr4.sonarr4:8989 + statusStyle: dot + widget: + type: sonarr + url: http://sonarr4.sonarr4:8989 + key: '{{HOMEPAGE_VAR_SONARR_KEY}}' + fields: ["wanted", "queued", "series"] + enableQueue: false + - Sonarr 4K: + icon: sonarr.png + description: TV Shows 4K + href: https://sonarr-4k.alexlebens.net + siteMonitor: http://sonarr4-4k.sonarr4-4k:8989 + statusStyle: dot + widget: + type: sonarr + url: http://sonarr4-4k.sonarr4-4k:8989 + key: '{{HOMEPAGE_VAR_SONARR4K_KEY}}' + fields: ["wanted", "queued", "series"] + enableQueue: false - Radarr: - icon: radarr.png - description: Movies - href: https://radarr.alexlebens.net - siteMonitor: http://radarr5.radarr5:7878 - statusStyle: dot - widget: - type: radarr - url: http://radarr5.radarr5:7878 - key: '{{HOMEPAGE_VAR_RADARR_KEY}}' - fields: ["wanted", "queued", "movies"] - enableQueue: false - - Radarr 4K: - icon: radarr.png - description: Movies 4K - href: https://radarr-4k.alexlebens.net - siteMonitor: http://radarr5-4k.radarr5-4k:7878 - statusStyle: dot - widget: - type: radarr - url: http://radarr5-4k.radarr5-4k:7878 - key: '{{HOMEPAGE_VAR_RADARR4K_KEY}}' - fields: ["wanted", "queued", "movies"] - enableQueue: false - - Other: - - Lidarr: - icon: lidarr.png - description: Music - href: https://lidarr.alexlebens.net - siteMonitor: http://lidarr2.lidarr2:8686 - statusStyle: dot - widget: - type: lidarr - url: http://lidarr2.lidarr2:8686 - key: '{{HOMEPAGE_VAR_LIDARR_KEY}}' - fields: ["wanted", "queued", "artists"] - - Lazy Librarian: - icon: lazylibrarian.png - description: Books - href: https://lazylibrarian.alexlebens.net - siteMonitor: http://lazy-librarian.lazy-librarian:5299 - statusStyle: dot - - Media Services: - - qBittorrent: - icon: qbittorrent.png - description: P2P downloads - href: https://qbittorrent.alexlebens.net - siteMonitor: http://qbittorrent-webui.qbittorrent:8080 - statusStyle: dot - widget: - type: qbittorrent - url: http://qbittorrent-webui.qbittorrent:8080 - - Tdarr: - icon: tdarr.png - description: Media transcoding and health checks - href: https://tdarr.alexlebens.net - siteMonitor: http://tdarr-server-web.tdarr:8265 - statusStyle: dot - widget: - type: tdarr - url: http://tdarr-server-web.tdarr:8265 - - Prowlarr: - icon: prowlarr.png - description: Indexers - href: https://prowlarr.alexlebens.net - siteMonitor: http://prowlarr.prowlarr:9696 - statusStyle: dot - widget: - type: prowlarr - url: http://prowlarr.prowlarr:9696 - key: '{{HOMEPAGE_VAR_PROWLARR_KEY}}' - bookmarks: - - External Services: - - Github: - - abbr: GH - href: https://github.com/alexlebens/infrastructure - - Renovate: - - abbr: RN - href: https://developer.mend.io/[platform]/alexlebens/infrastructure - - AWS: - - abbr: AW - href: https://aws.amazon.com/console/ - - Cloudflare: - - abbr: CF - href: https://dash.cloudflare.com/b76e303258b84076ee01fd0f515c0768 - - Tailscale: - - abbr: TS - href: https://login.tailscale.com/admin/machines - - ProtonVPN: - - abbr: PV - href: https://account.protonvpn.com/ - - Pushover: - - abbr: PO - href: https://pushover.net - - ReCaptcha: - - abbr: RC - href: https://www.google.com/recaptcha/admin/site/698983587 - - Dashboard Icons: - - abbr: DI - href: https://github.com/walkxcode/dashboard-icons/tree/main/png - - Trackers: - - Torrentleech: - - abbr: TL - href: https://www.torrentleech.org - - Avistaz: - - abbr: AV - href: https://avistaz.to - - Cinemaz: - - abbr: CM - href: https://cinemaz.to - - Cathode Ray Tube: - - abbr: CRT - href: https://www.cathode-ray.tube - - Alpha Ratio: - - abbr: AL - href: https://alpharatio.cc/ - - MV Group: - - abbr: MV - href: https://forums.mvgroup.org - settings: - favicon: https://alexlebens-dev.nyc3.digitaloceanspaces.com/cl02do/assets/icon_white.png - headerStyle: clean - hideVersion: true - color: slate - background: - image: https://alexlebens-dev.nyc3.digitaloceanspaces.com/cl02do/assets/background.jpg - theme: dark - disableCollapse: true - layout: - - Media: - tab: Apps - icon: mdi-multimedia-#ffffff - - Applications: - tab: Apps - icon: mdi-application-#ffffff - - Code: - tab: Tools - icon: mdi-code-braces-box-#ffffff - - Monitoring: - tab: Tools - icon: mdi-chart-bar-#ffffff - - Management: - tab: Tools - icon: mdi-content-save-cog-#ffffff - - Services: - tab: Services - icon: mdi-server-network-#ffffff - - Hardware: - tab: Services - icon: mdi-lan-connect-#ffffff - - Storage: - tab: Services - icon: mdi-harddisk-#ffffff - - Sonarr: - tab: Servarr - icon: mdi-television-#ffffff - - Radarr: - tab: Servarr - icon: mdi-filmstrip-#ffffff - - Other: - tab: Servarr - icon: mdi-music-box-multiple-#ffffff - - Media Services: - tab: Servarr - icon: mdi-radar-#ffffff - - External Services: - tab: Bookmarks - icon: mdi-cloud-#ffffff - - Trackers: - tab: Bookmarks - icon: mdi-cloud-#ffffff + - Radarr: + icon: radarr.png + description: Movies + href: https://radarr.alexlebens.net + siteMonitor: http://radarr5.radarr5:7878 + statusStyle: dot + widget: + type: radarr + url: http://radarr5.radarr5:7878 + key: '{{HOMEPAGE_VAR_RADARR_KEY}}' + fields: ["wanted", "queued", "movies"] + enableQueue: false + - Radarr 4K: + icon: radarr.png + description: Movies 4K + href: https://radarr-4k.alexlebens.net + siteMonitor: http://radarr5-4k.radarr5-4k:7878 + statusStyle: dot + widget: + type: radarr + url: http://radarr5-4k.radarr5-4k:7878 + key: '{{HOMEPAGE_VAR_RADARR4K_KEY}}' + fields: ["wanted", "queued", "movies"] + enableQueue: false + - Other: + - Lidarr: + icon: lidarr.png + description: Music + href: https://lidarr.alexlebens.net + siteMonitor: http://lidarr2.lidarr2:8686 + statusStyle: dot + widget: + type: lidarr + url: http://lidarr2.lidarr2:8686 + key: '{{HOMEPAGE_VAR_LIDARR_KEY}}' + fields: ["wanted", "queued", "artists"] + - Lazy Librarian: + icon: lazylibrarian.png + description: Books + href: https://lazylibrarian.alexlebens.net + siteMonitor: http://lazy-librarian.lazy-librarian:5299 + statusStyle: dot + - Media Services: + - qBittorrent: + icon: qbittorrent.png + description: P2P downloads + href: https://qbittorrent.alexlebens.net + siteMonitor: http://qbittorrent-webui.qbittorrent:8080 + statusStyle: dot + widget: + type: qbittorrent + url: http://qbittorrent-webui.qbittorrent:8080 + - Tdarr: + icon: tdarr.png + description: Media transcoding and health checks + href: https://tdarr.alexlebens.net + siteMonitor: http://tdarr-server-web.tdarr:8265 + statusStyle: dot + widget: + type: tdarr + url: http://tdarr-server-web.tdarr:8265 + - Prowlarr: + icon: prowlarr.png + description: Indexers + href: https://prowlarr.alexlebens.net + siteMonitor: http://prowlarr.prowlarr:9696 + statusStyle: dot + widget: + type: prowlarr + url: http://prowlarr.prowlarr:9696 + key: '{{HOMEPAGE_VAR_PROWLARR_KEY}}' + bookmarks.yaml: | + - External Services: + - Github: + - abbr: GH + href: https://github.com/alexlebens/infrastructure + - Renovate: + - abbr: RN + href: https://developer.mend.io/[platform]/alexlebens/infrastructure + - AWS: + - abbr: AW + href: https://aws.amazon.com/console/ + - Cloudflare: + - abbr: CF + href: https://dash.cloudflare.com/b76e303258b84076ee01fd0f515c0768 + - Tailscale: + - abbr: TS + href: https://login.tailscale.com/admin/machines + - ProtonVPN: + - abbr: PV + href: https://account.protonvpn.com/ + - Pushover: + - abbr: PO + href: https://pushover.net + - ReCaptcha: + - abbr: RC + href: https://www.google.com/recaptcha/admin/site/698983587 + - Dashboard Icons: + - abbr: DI + href: https://github.com/walkxcode/dashboard-icons/tree/main/png + - Trackers: + - Torrentleech: + - abbr: TL + href: https://www.torrentleech.org + - Avistaz: + - abbr: AV + href: https://avistaz.to + - Cinemaz: + - abbr: CM + href: https://cinemaz.to + - Cathode Ray Tube: + - abbr: CRT + href: https://www.cathode-ray.tube + - Alpha Ratio: + - abbr: AL + href: https://alpharatio.cc/ + - MV Group: + - abbr: MV + href: https://forums.mvgroup.org + service: + http: + controller: main + ports: + http: + port: 80 + targetPort: 3000 + protocol: HTTP + persistence: + config: + enabled: true + type: configMap + name: homepage-config + advancedMounts: + main: + main: + - path: /app/config/bookmarks.yaml + readOnly: true + mountPropagation: None + subPath: bookmarks.yaml + - path: /app/config/docker.yaml + readOnly: true + mountPropagation: None + subPath: docker.yaml + - path: /app/config/kubernetes.yaml + readOnly: true + mountPropagation: None + subPath: kubernetes.yaml + - path: /app/config/services.yaml + readOnly: true + mountPropagation: None + subPath: services.yaml + - path: /app/config/settings.yaml + readOnly: true + mountPropagation: None + subPath: settings.yaml + - path: /app/config/widgets.yaml + readOnly: true + mountPropagation: None + subPath: widgets.yaml