diff --git a/apps/homepage/homepage.yaml b/apps/homepage/homepage.yaml new file mode 100644 index 0000000..ce29f4a --- /dev/null +++ b/apps/homepage/homepage.yaml @@ -0,0 +1,20 @@ +apiVersion: argoproj.io/v1alpha1 +kind: Application +metadata: + name: homepage + namespace: argocd +spec: + project: default + source: + repoURL: http://git.home.lan/jay/k8s-gitops.git + targetRevision: main + path: apps/homepage/manifests + destination: + server: https://kubernetes.default.svc + namespace: homepage + syncPolicy: + automated: + prune: true + selfHeal: true + syncOptions: + - CreateNamespace=true diff --git a/apps/homepage/manifests/homepage.yaml b/apps/homepage/manifests/homepage.yaml new file mode 100644 index 0000000..c53ec2c --- /dev/null +++ b/apps/homepage/manifests/homepage.yaml @@ -0,0 +1,136 @@ +apiVersion: v1 +kind: Namespace +metadata: + name: homepage +--- +apiVersion: v1 +kind: ConfigMap +metadata: + name: homepage-config + namespace: homepage +data: + settings.yaml: | + title: Jay's Homelab + theme: dark + color: slate + layout: + Infrastructure: + style: row + columns: 4 + Applications: + style: row + columns: 4 + Monitoring: + style: row + columns: 4 + + services.yaml: | + - Infrastructure: + - ArgoCD: + href: https://argocd.home.lan + description: GitOps controller + icon: argocd.png + - Longhorn: + href: https://longhorn.home.lan + description: Kubernetes storage + icon: longhorn.png + - Gitea: + href: https://git.phillips-home.net + description: Git repositories + icon: gitea.png + + - Applications: + - BookStack: + href: https://docs.phillips-home.net + description: Documentation + icon: bookstack.png + - Vaultwarden: + href: https://vault.phillips-home.net + description: Password manager + icon: vaultwarden.png + - Open WebUI: + href: http://hdcai0001:3000 + description: Local AI assistant + icon: open-webui.png + - Uptime Kuma: + href: https://uptime.home.lan + description: Status monitoring + icon: uptime-kuma.png + + - Monitoring: + - Grafana: + href: https://grafana.home.lan + description: Metrics dashboards + icon: grafana.png + - Prometheus: + href: https://prometheus.home.lan + description: Metrics database + icon: prometheus.png + + bookmarks.yaml: | + - Homelab: + - Kubernetes Docs: + - abbr: K8S + href: https://kubernetes.io/docs/ + - ArgoCD Docs: + - abbr: CD + href: https://argo-cd.readthedocs.io/ + - Longhorn Docs: + - abbr: LH + href: https://longhorn.io/docs/ + + widgets.yaml: | + - resources: + cpu: true + memory: true + disk: / + + - search: + provider: duckduckgo + target: _blank + + kubernetes.yaml: | + mode: disabled + + docker.yaml: | + disabled: true +--- +apiVersion: apps/v1 +kind: Deployment +metadata: + name: homepage + namespace: homepage +spec: + replicas: 1 + selector: + matchLabels: + app: homepage + template: + metadata: + labels: + app: homepage + spec: + containers: + - name: homepage + image: ghcr.io/gethomepage/homepage:latest + ports: + - containerPort: 3000 + volumeMounts: + - name: homepage-config + mountPath: /app/config + volumes: + - name: homepage-config + configMap: + name: homepage-config +--- +apiVersion: v1 +kind: Service +metadata: + name: homepage + namespace: homepage +spec: + selector: + app: homepage + ports: + - port: 80 + targetPort: 3000