diff --git a/apps/homepage/README.md b/apps/homepage/README.md new file mode 100644 index 0000000..0d10b6f --- /dev/null +++ b/apps/homepage/README.md @@ -0,0 +1,2 @@ +# Homepage + diff --git a/apps/homepage/configmap.yaml b/apps/homepage/configmap.yaml new file mode 100644 index 0000000..761d45e --- /dev/null +++ b/apps/homepage/configmap.yaml @@ -0,0 +1,63 @@ +apiVersion: v1 +kind: ConfigMap +metadata: + name: homepage-config + namespace: homepage + labels: + app: homepage + managedBy: kustomize + partOf: wild-cloud +data: + bookmarks.yaml: | + - Developer: + - Github: + - abbr: GH + href: https://github.com/ + kubernetes.yaml: | + mode: cluster + services.yaml: | + - Wild Cloud Services: + - Traefik Dashboard: + href: https://traefik.example.com + description: Traefik reverse proxy dashboard + - Longhorn: + href: https://longhorn.example.com + description: Distributed storage management + settings.yaml: | + title: Wild Cloud Dashboard + theme: dark + layout: + - Wild Cloud Services: + style: row + columns: 2 + widgets.yaml: | + - kubernetes: + cluster: + show: true + cpu: true + memory: true + showLabel: true + label: "cluster" + nodes: + show: true + cpu: true + memory: true + showLabel: true + - resources: + backend: resources + expanded: true + cpu: true + memory: true + network: default + - search: + provider: duckduckgo + target: _blank + docker.yaml: | + # Docker configuration for homepage + # This file is required by the homepage application + custom.css: | + /* Custom CSS for homepage */ + /* Add your custom styles here */ + custom.js: | + // Custom JavaScript for homepage + // Add your custom scripts here \ No newline at end of file diff --git a/apps/homepage/deployment.yaml b/apps/homepage/deployment.yaml new file mode 100644 index 0000000..27ffae2 --- /dev/null +++ b/apps/homepage/deployment.yaml @@ -0,0 +1,37 @@ +--- +apiVersion: apps/v1 +kind: Deployment +metadata: + name: homepage +spec: + replicas: 1 + selector: + matchLabels: + app: homepage + template: + metadata: + labels: + app: homepage + spec: + serviceAccountName: homepage + containers: + - name: homepage + image: "{{ .apps.homepage.image }}" + ports: + - containerPort: 3000 + name: http + env: + - name: HOMEPAGE_ALLOWED_HOSTS + value: "{{ .apps.homepage.domain }}" + volumeMounts: + - name: config + mountPath: /app/config + readOnly: true + - name: logs + mountPath: /app/config/logs + volumes: + - name: config + configMap: + name: homepage-config + - name: logs + emptyDir: {} \ No newline at end of file diff --git a/apps/homepage/ingress.yaml b/apps/homepage/ingress.yaml new file mode 100644 index 0000000..60d4e4a --- /dev/null +++ b/apps/homepage/ingress.yaml @@ -0,0 +1,24 @@ +--- +apiVersion: networking.k8s.io/v1 +kind: Ingress +metadata: + name: homepage-public + annotations: + external-dns.alpha.kubernetes.io/target: "{{ .apps.homepage.domain }}" + external-dns.alpha.kubernetes.io/cloudflare-proxied: "false" +spec: + rules: + - host: "{{ .apps.homepage.domain }}" + http: + paths: + - path: / + pathType: Prefix + backend: + service: + name: homepage + port: + number: 3000 + tls: + - secretName: wildcard-wild-cloud-tls + hosts: + - "{{ .apps.homepage.domain }}" \ No newline at end of file diff --git a/apps/homepage/kustomization.yaml b/apps/homepage/kustomization.yaml new file mode 100644 index 0000000..546e7c0 --- /dev/null +++ b/apps/homepage/kustomization.yaml @@ -0,0 +1,16 @@ +apiVersion: kustomize.config.k8s.io/v1beta1 +kind: Kustomization +namespace: homepage +labels: + - includeSelectors: true + pairs: + app: homepage + managedBy: kustomize + partOf: wild-cloud +resources: + - namespace.yaml + - service-account.yaml + - deployment.yaml + - service.yaml + - ingress.yaml + - configmap.yaml \ No newline at end of file diff --git a/apps/homepage/manifest.yaml b/apps/homepage/manifest.yaml new file mode 100644 index 0000000..9796619 --- /dev/null +++ b/apps/homepage/manifest.yaml @@ -0,0 +1,12 @@ +name: homepage +install: true +description: Homepage is a modern, fully static, fast, secure fully proxied, highly customizable application dashboard with integrations for over 100 services. +version: 1.0.0 +icon: https://gethomepage.dev/favicon.ico +requires: [] +defaultConfig: + image: ghcr.io/gethomepage/homepage:latest + domain: homepage.{{ .cloud.internalDomain }} + port: 3000 + tlsSecretName: wildcard-internal-wild-cloud-tls +requiredSecrets: [] diff --git a/apps/homepage/namespace.yaml b/apps/homepage/namespace.yaml new file mode 100644 index 0000000..eb14630 --- /dev/null +++ b/apps/homepage/namespace.yaml @@ -0,0 +1,8 @@ +apiVersion: v1 +kind: Namespace +metadata: + name: homepage + labels: + app: homepage + managedBy: kustomize + partOf: wild-cloud \ No newline at end of file diff --git a/apps/homepage/service-account.yaml b/apps/homepage/service-account.yaml new file mode 100644 index 0000000..3ec64c9 --- /dev/null +++ b/apps/homepage/service-account.yaml @@ -0,0 +1,9 @@ +apiVersion: v1 +kind: ServiceAccount +metadata: + name: homepage + namespace: homepage + labels: + app: homepage + managedBy: kustomize + partOf: wild-cloud \ No newline at end of file diff --git a/apps/homepage/service.yaml b/apps/homepage/service.yaml new file mode 100644 index 0000000..26e2777 --- /dev/null +++ b/apps/homepage/service.yaml @@ -0,0 +1,17 @@ +apiVersion: v1 +kind: Service +metadata: + name: homepage + namespace: homepage + labels: + app: homepage + managedBy: kustomize + partOf: wild-cloud +spec: + type: ClusterIP + ports: + - port: 3000 + targetPort: http + name: http + selector: + app: homepage \ No newline at end of file