Adds homepage app.

This commit is contained in:
2025-08-16 07:55:57 -07:00
parent c2f8f7e6a0
commit 62a076b574
9 changed files with 188 additions and 0 deletions

2
apps/homepage/README.md Normal file
View File

@@ -0,0 +1,2 @@
# Homepage

View File

@@ -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

View File

@@ -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: {}

View File

@@ -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 }}"

View File

@@ -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

View File

@@ -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: []

View File

@@ -0,0 +1,8 @@
apiVersion: v1
kind: Namespace
metadata:
name: homepage
labels:
app: homepage
managedBy: kustomize
partOf: wild-cloud

View File

@@ -0,0 +1,9 @@
apiVersion: v1
kind: ServiceAccount
metadata:
name: homepage
namespace: homepage
labels:
app: homepage
managedBy: kustomize
partOf: wild-cloud

View File

@@ -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