manifests for homepage
This commit is contained in:
62
cluster/apps/homepage/homepage-clusterRole.yml
Normal file
62
cluster/apps/homepage/homepage-clusterRole.yml
Normal file
@@ -0,0 +1,62 @@
|
||||
apiVersion: rbac.authorization.k8s.io/v1
|
||||
kind: ClusterRole
|
||||
metadata:
|
||||
name: homepage
|
||||
labels:
|
||||
app.kubernetes.io/name: homepage
|
||||
rules:
|
||||
- apiGroups:
|
||||
- ""
|
||||
resources:
|
||||
- namespaces
|
||||
- pods
|
||||
- nodes
|
||||
verbs:
|
||||
- get
|
||||
- list
|
||||
- apiGroups:
|
||||
- extensions
|
||||
- networking.k8s.io
|
||||
resources:
|
||||
- ingresses
|
||||
verbs:
|
||||
- get
|
||||
- list
|
||||
- apiGroups:
|
||||
- traefik.io
|
||||
resources:
|
||||
- ingressroutes
|
||||
verbs:
|
||||
- get
|
||||
- list
|
||||
- apiGroups:
|
||||
- gateway.networking.k8s.io
|
||||
resources:
|
||||
- httproutes
|
||||
- gateways
|
||||
verbs:
|
||||
- get
|
||||
- list
|
||||
- apiGroups:
|
||||
- metrics.k8s.io
|
||||
resources:
|
||||
- nodes
|
||||
- pods
|
||||
verbs:
|
||||
- get
|
||||
- list
|
||||
---
|
||||
apiVersion: rbac.authorization.k8s.io/v1
|
||||
kind: ClusterRoleBinding
|
||||
metadata:
|
||||
name: homepage
|
||||
labels:
|
||||
app.kubernetes.io/name: homepage
|
||||
roleRef:
|
||||
apiGroup: rbac.authorization.k8s.io
|
||||
kind: ClusterRole
|
||||
name: homepage
|
||||
subjects:
|
||||
- kind: ServiceAccount
|
||||
name: homepage
|
||||
namespace: default
|
||||
332
cluster/apps/homepage/homepage-config.yml
Normal file
332
cluster/apps/homepage/homepage-config.yml
Normal file
@@ -0,0 +1,332 @@
|
||||
---
|
||||
apiVersion: v1
|
||||
kind: ConfigMap
|
||||
metadata:
|
||||
name: homepage
|
||||
namespace: default
|
||||
labels:
|
||||
app.kubernetes.io/name: homepage
|
||||
data:
|
||||
docker.yaml: ""
|
||||
bookmarks.yaml: ""
|
||||
kubernetes.yaml: |
|
||||
mode: cluster
|
||||
widgets.yaml: |
|
||||
- kubernetes:
|
||||
cluster:
|
||||
show: true
|
||||
cpu: true
|
||||
memory: true
|
||||
showLabel: true
|
||||
label: "cluster"
|
||||
nodes:
|
||||
show: true
|
||||
cpu: true
|
||||
memory: true
|
||||
showLabel: true
|
||||
- search:
|
||||
provider: google
|
||||
target: _blank
|
||||
settings.yaml: |
|
||||
layout:
|
||||
Proxmox (Nvidia):
|
||||
style: row
|
||||
columns: 5
|
||||
tab: Stats
|
||||
Proxmox (Main):
|
||||
style: row
|
||||
columns: 5
|
||||
tab: Stats
|
||||
Proxmox (Acer):
|
||||
style: row
|
||||
columns: 5
|
||||
tab: Stats
|
||||
Proxmox (HP):
|
||||
style: row
|
||||
columns: 5
|
||||
tab: Stats
|
||||
Apps:
|
||||
style: row
|
||||
columns: 4
|
||||
tab: Apps
|
||||
Bookmarks:
|
||||
style: row
|
||||
columns: 5
|
||||
tab: Bookmarks
|
||||
useEqualHeights: true
|
||||
hideErrors: true
|
||||
services.yaml: |
|
||||
- Apps:
|
||||
- Sonarr:
|
||||
href: https://sonarr.akshun-lab.uk
|
||||
description: series
|
||||
icon: sonarr.png
|
||||
widget:
|
||||
type: sonarr
|
||||
url: http://10.0.0.14:8989
|
||||
key: "${SONARR_API_KEY}"
|
||||
- Radarr:
|
||||
href: https://radarr.akshun-lab.uk
|
||||
description: movies
|
||||
icon: radarr.png
|
||||
widget:
|
||||
type: radarr
|
||||
url: http://10.0.0.14:7878
|
||||
key: "${RADARR_API_KEY}"
|
||||
- Bazarr:
|
||||
href: https://bazarr.akshun-lab.uk
|
||||
description: subtitles
|
||||
icon: bazarr.png
|
||||
widget:
|
||||
type: bazarr
|
||||
url: http://10.0.0.14:6767
|
||||
key: "${BAZARR_API_KEY}"
|
||||
- Jellyfin:
|
||||
href: https://jellyfin.akshun-lab.uk
|
||||
description: streaming
|
||||
icon: jellyfin.png
|
||||
widget:
|
||||
type: jellyfin
|
||||
url: http://10.0.0.14:8096
|
||||
key: "${JELLYFIN_API_KEY}"
|
||||
- qBittorrent:
|
||||
href: https://qbittorrent.akshun-lab.uk
|
||||
description: torrent client
|
||||
icon: qbittorrent.png
|
||||
widget:
|
||||
type: qbittorrent
|
||||
username: admin
|
||||
password: "${QBITTORRENT_PASSWORD}"
|
||||
url: http://10.0.0.14:8080
|
||||
- Jellyseerr:
|
||||
href: https://jellyseerr.akshun-lab.uk
|
||||
description: request movies and shows
|
||||
icon: jellyseerr.png
|
||||
widget:
|
||||
type: jellyseerr
|
||||
url: http://10.0.0.14:5055
|
||||
key: "${JELLYSEERR_API_KEY}"
|
||||
- Prowlarr:
|
||||
href: https://prowlarr.akshun-lab.uk
|
||||
description: indexers
|
||||
icon: prowlarr.png
|
||||
widget:
|
||||
type: prowlarr
|
||||
url: http://10.0.0.14:9696
|
||||
key: "${PROWLARR_API_KEY}"
|
||||
- Speedtest:
|
||||
href: https://speedtest.akshun-lab.uk
|
||||
description: speedtest
|
||||
icon: si-speedtest.svg
|
||||
widget:
|
||||
type: speedtest
|
||||
url: http://10.0.0.14:8181
|
||||
- Immich:
|
||||
href: https://immich.akshun-lab.uk
|
||||
description: photos
|
||||
icon: immich.png
|
||||
widget:
|
||||
type: immich
|
||||
url: http://10.0.0.14:2283
|
||||
key: "${IMMICH_API_KEY}"
|
||||
version: 2
|
||||
- Proxmox:
|
||||
href: https://proxmox.akshun-lab.uk
|
||||
description: VMs
|
||||
icon: proxmox.png
|
||||
widget:
|
||||
type: proxmox
|
||||
url: https://10.0.0.100:8006
|
||||
username: api@pam!homepage
|
||||
password: "${PROXMOX_PASSWORD}"
|
||||
- Gitea:
|
||||
href: https://gitea.akshun-lab.uk
|
||||
description: Git Server
|
||||
icon: gitea.png
|
||||
widget:
|
||||
type: gitea
|
||||
url: http://10.0.0.14:3011
|
||||
key: "${GITEA_API_KEY}"
|
||||
- Crafty:
|
||||
href: https://minecraft.akshun-lab.uk
|
||||
description: crafty controller
|
||||
icon: crafty-controller.png
|
||||
widget:
|
||||
type: minecraft
|
||||
url: udp://192.168.1.3:25565
|
||||
- Invidious:
|
||||
href: https://invidious.akshun-lab.uk
|
||||
description: youtube frontend
|
||||
icon: invidious.png
|
||||
- Nextcloud:
|
||||
href: https://nextcloud.akshun-lab.uk
|
||||
description: files
|
||||
icon: nextcloud.png
|
||||
- VS Code:
|
||||
href: https://vs.akshun-lab.uk
|
||||
description: VS code server
|
||||
icon: vscode.png
|
||||
- Semaphore:
|
||||
href: https://semaphore.akshun-lab.uk
|
||||
description: ansible gui
|
||||
icon: semaphore.png
|
||||
- Open Media Vault:
|
||||
href: https://omv.akshun-lab.uk
|
||||
description: NAS
|
||||
icon: openmediavault.png
|
||||
- Ersatztv:
|
||||
icon: ersatztv.png
|
||||
description: live tv for jellyfin
|
||||
href: https://ersatztv.akshun-lab.uk
|
||||
- Jellystat:
|
||||
icon: jellystat.png
|
||||
description: jellyfin stats
|
||||
href: https://jellystat.akshun-lab.uk
|
||||
- Paperless NGX:
|
||||
icon: paperless.png
|
||||
description: documents OCR
|
||||
href: https://ngx.akshun-lab.uk
|
||||
- Longhorn:
|
||||
icon: longhorn.png
|
||||
description: kubernetes storage
|
||||
href: https://longhorn.akshun-lab.uk
|
||||
- Portainer:
|
||||
icon: portainer.png
|
||||
description: container management
|
||||
href: https://portainer.akshun-lab.uk
|
||||
- Rancher:
|
||||
icon: rancher.png
|
||||
description: kubernetes management
|
||||
href: https://rancher.akshun-lab.uk
|
||||
- Bookmarks:
|
||||
- Disney:
|
||||
href: https://www.hotstar.com
|
||||
- Prime Video:
|
||||
href: https://primevideo.com
|
||||
- AngelOne:
|
||||
href: https://www.angelone.in/trade/watchlist/chart
|
||||
- MoneyControl:
|
||||
href: https://moneycontrol.com
|
||||
- SBI Netbanking:
|
||||
href: https://retail.onlinesbi.sbi/retail/login.htm
|
||||
- GW2 Wiki:
|
||||
href: https://wiki.guildwars2.com/wiki/Event_timers
|
||||
- GW2 Efficiency:
|
||||
href: https://gw2efficiency.com
|
||||
- Youtube:
|
||||
href: https://youtube.com
|
||||
- Reddit:
|
||||
href: https://reddit.com
|
||||
- Github:
|
||||
href: https://github.com
|
||||
- Twitch:
|
||||
href: https://twitch.tv
|
||||
- Proxmox (Nvidia):
|
||||
- CPU Usage:
|
||||
widget:
|
||||
type: glances
|
||||
url: http://192.168.1.113:61208
|
||||
metric: cpu
|
||||
- Memory Usage:
|
||||
widget:
|
||||
type: glances
|
||||
url: http://192.168.1.113:61208
|
||||
metric: memory
|
||||
- Processes:
|
||||
widget:
|
||||
type: glances
|
||||
url: http://192.168.1.113:61208
|
||||
metric: process
|
||||
- Sensor:
|
||||
widget:
|
||||
type: glances
|
||||
url: http://192.168.1.113:61208
|
||||
metric: sensor:Tctl
|
||||
- Disk Usage:
|
||||
widget:
|
||||
type: glances
|
||||
url: http://192.168.1.113:61208
|
||||
metric: disk:sda
|
||||
- Proxmox (Main):
|
||||
- CPU Usage:
|
||||
widget:
|
||||
type: glances
|
||||
url: http://192.168.1.126:61208
|
||||
metric: cpu
|
||||
- Memory Usage:
|
||||
widget:
|
||||
type: glances
|
||||
url: http://192.168.1.126:61208
|
||||
metric: memory
|
||||
- Processes:
|
||||
widget:
|
||||
type: glances
|
||||
url: http://192.168.1.126:61208
|
||||
metric: process
|
||||
- Sensor:
|
||||
widget:
|
||||
type: glances
|
||||
url: http://192.168.1.126:61208
|
||||
metric: sensor:Package id 0
|
||||
- Disk Usage:
|
||||
widget:
|
||||
type: glances
|
||||
url: http://192.168.1.126:61208
|
||||
metric: disk:nvme0n1
|
||||
- Proxmox (HP):
|
||||
- CPU Usage:
|
||||
widget:
|
||||
type: glances
|
||||
url: http://192.168.1.88:61208
|
||||
metric: cpu
|
||||
- Memory Usage:
|
||||
widget:
|
||||
type: glances
|
||||
url: http://192.168.1.88:61208
|
||||
metric: memory
|
||||
- Processes:
|
||||
widget:
|
||||
type: glances
|
||||
url: http://192.168.1.88:61208
|
||||
metric: process
|
||||
- Sensor:
|
||||
widget:
|
||||
type: glances
|
||||
url: http://192.168.1.88:61208
|
||||
metric: sensor:acpitz 1
|
||||
- Disk Usage:
|
||||
widget:
|
||||
type: glances
|
||||
url: http://192.168.1.88:61208
|
||||
metric: disk:sda
|
||||
- Proxmox (Acer):
|
||||
- CPU Usage:
|
||||
widget:
|
||||
type: glances
|
||||
url: http://192.168.1.128:61208
|
||||
metric: cpu
|
||||
version: 4
|
||||
- Memory Usage:
|
||||
widget:
|
||||
type: glances
|
||||
url: http://192.168.1.128:61208
|
||||
metric: memory
|
||||
version: 4
|
||||
- Processes:
|
||||
widget:
|
||||
type: glances
|
||||
url: http://192.168.1.128:61208
|
||||
metric: process
|
||||
version: 4
|
||||
- Sensor:
|
||||
widget:
|
||||
type: glances
|
||||
url: http://192.168.1.128:61208
|
||||
metric: sensor:pch_cannonlake 0
|
||||
version: 4
|
||||
- Disk Usage:
|
||||
widget:
|
||||
type: glances
|
||||
url: http://192.168.1.128:61208
|
||||
metric: disk:nvme0n1
|
||||
version: 4
|
||||
11
cluster/apps/homepage/homepage-secret.yml
Normal file
11
cluster/apps/homepage/homepage-secret.yml
Normal file
@@ -0,0 +1,11 @@
|
||||
---
|
||||
apiVersion: v1
|
||||
kind: Secret
|
||||
type: kubernetes.io/service-account-token
|
||||
metadata:
|
||||
name: homepage
|
||||
namespace: default
|
||||
labels:
|
||||
app.kubernetes.io/name: homepage
|
||||
annotations:
|
||||
kubernetes.io/service-account.name: homepage
|
||||
10
cluster/apps/homepage/homepage-svc-account.yml
Normal file
10
cluster/apps/homepage/homepage-svc-account.yml
Normal file
@@ -0,0 +1,10 @@
|
||||
---
|
||||
apiVersion: v1
|
||||
kind: ServiceAccount
|
||||
metadata:
|
||||
name: homepage
|
||||
namespace: default
|
||||
labels:
|
||||
app.kubernetes.io/name: homepage
|
||||
secrets:
|
||||
- name: homepage
|
||||
15
cluster/apps/homepage/homepage-svc.yml
Normal file
15
cluster/apps/homepage/homepage-svc.yml
Normal file
@@ -0,0 +1,15 @@
|
||||
---
|
||||
apiVersion: v1
|
||||
kind: Service
|
||||
metadata:
|
||||
name: homepage-service
|
||||
namespace: default
|
||||
spec:
|
||||
type: NodePort
|
||||
selector:
|
||||
app.kubernetes.io/name: homepage
|
||||
ports:
|
||||
- port: 3000
|
||||
targetPort: 3000
|
||||
nodePort: 30001
|
||||
protocol: TCP
|
||||
88
cluster/apps/homepage/homepage.yml
Normal file
88
cluster/apps/homepage/homepage.yml
Normal file
@@ -0,0 +1,88 @@
|
||||
---
|
||||
apiVersion: apps/v1
|
||||
kind: Deployment
|
||||
metadata:
|
||||
name: homepage
|
||||
namespace: default
|
||||
labels:
|
||||
app.kubernetes.io/name: homepage
|
||||
spec:
|
||||
revisionHistoryLimit: 3
|
||||
replicas: 1
|
||||
strategy:
|
||||
type: RollingUpdate
|
||||
selector:
|
||||
matchLabels:
|
||||
app.kubernetes.io/name: homepage
|
||||
template:
|
||||
metadata:
|
||||
labels:
|
||||
app.kubernetes.io/name: homepage
|
||||
spec:
|
||||
serviceAccountName: homepage
|
||||
automountServiceAccountToken: true
|
||||
dnsPolicy: ClusterFirst
|
||||
enableServiceLinks: true
|
||||
initContainers:
|
||||
- name: substitute-config
|
||||
image: alpine
|
||||
envFrom:
|
||||
- secretRef:
|
||||
name: homepage-secrets
|
||||
command:
|
||||
- "sh"
|
||||
- "-c"
|
||||
- apk add gettext && envsubst < /mnt/init/services.yaml > /mnt/services.yaml
|
||||
volumeMounts:
|
||||
- name: homepage-config
|
||||
mountPath: /mnt/init/services.yaml
|
||||
subPath: services.yaml
|
||||
- name: tmp
|
||||
mountPath: /mnt
|
||||
subPath: services.yaml
|
||||
containers:
|
||||
- name: homepage
|
||||
image: "ghcr.io/gethomepage/homepage:v1.2.0"
|
||||
imagePullPolicy: IfNotPresent
|
||||
env:
|
||||
- name: HOMEPAGE_ALLOWED_HOSTS
|
||||
value: home.akshun-lab.uk
|
||||
ports:
|
||||
- name: http
|
||||
containerPort: 3000
|
||||
protocol: TCP
|
||||
volumeMounts:
|
||||
- mountPath: /app/config/custom.js
|
||||
name: homepage-config
|
||||
subPath: custom.js
|
||||
- mountPath: /app/config/custom.css
|
||||
name: homepage-config
|
||||
subPath: custom.css
|
||||
- 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
|
||||
name: tmp
|
||||
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
|
||||
volumes:
|
||||
- name: homepage-config
|
||||
configMap:
|
||||
name: homepage
|
||||
- name: logs
|
||||
emptyDir: {}
|
||||
- name: tmp
|
||||
emptyDir: {}
|
||||
Reference in New Issue
Block a user