Files
k8s-apps/homer/configmaps.yaml
2026-03-14 15:53:19 +00:00

663 lines
23 KiB
YAML

apiVersion: v1
kind: ConfigMap
metadata:
name: config
namespace: homer
data:
# file-like keys
config.yml: |
---
# Homepage configuration
# See https://fontawesome.com/v5/search for icons options
title: "Undercloud Dashboard"
subtitle: "undercloud"
logo: "guild-logo.png"
# icon: "fas fa-skull-crossbones" # Optional icon
header: true
#footer: '<p>Created with <span class="has-text-danger">❤️</span> with <a href="https://bulma.io/">bulma</a>, <a href="https://vuejs.org/">vuejs</a> & <a href="https://fontawesome.com/">font awesome</a> // Fork me on <a href="https://github.com/bastienwirtz/homer"><i class="fab fa-github-alt"></i></a></p>' # set false if you want to hide it.
footer: false
# Optional theme customization
theme: default
colors:
light:
highlight-primary: "#3367d6"
highlight-secondary: "#4285f4"
highlight-hover: "#5a95f5"
background: "#f5f5f5"
card-background: "#ffffff"
text: "#363636"
text-header: "#ffffff"
text-title: "#303030"
text-subtitle: "#424242"
card-shadow: rgba(0, 0, 0, 0.1)
link: "#3273dc"
link-hover: "#363636"
background-image: "../assets/logos/wallpaper.jpg"
dark:
highlight-primary: "#3367d6"
highlight-secondary: "#4285f4"
highlight-hover: "#5a95f5"
background: "#131313"
card-background: "#2b2b2b"
text: "#eaeaea"
text-header: "#ffffff"
text-title: "#fafafa"
text-subtitle: "#f5f5f5"
card-shadow: rgba(0, 0, 0, 0.4)
link: "#3273dc"
link-hover: "#ffdd57"
background-image: "../assets/logos/wallpaper.jpg"
# Optional message
message:
url: https://homer.apps.undercloud.dev
style: "is-dark" # See https://bulma.io/documentation/components/message/#colors for styling options.
title: "Welcome"
#icon: "fa fa-grin"
content: "Welcome to the Undercloud Dashboard. <br /> A comprehensive link collection of all Webapps in the Undercloud Network"
# Optional navbar
# links: [] # Allows for navbar (dark mode, layout, and search) without any links
links:
- name: "Contribute"
icon: "fab fa-github"
url: "https://github.com/bastienwirtz/homer"
target: "_blank" # optional html a tag target attribute
- name: "Wiki"
icon: "fas fa-book"
url: "https://bookstack.apps.undercloud.dev/"
# this will link to a second homer page that will load config from additional-page.yml and keep default config values as in config.yml file
# see url field and assets/additional-page.yml.dist used in this example:
#- name: "another page!"
# icon: "fas fa-file-alt"
# url: "#additional-page"
# Services
# First level array represent a group.
# Leave only a "items" key if not using group (group name, icon & tagstyle are optional, section separation will not be displayed).
services:
- name: "Network"
icon: "fas fa-cloud"
items:
- name: "Lancom"
logo: "assets/logos/sophos.png"
subtitle: "Lancom Router"
tag: "app"
keywords: "lancom router"
url: "https://lancom.apps.undercloud.dev"
- name: "SophosXG"
logo: "assets/logos/sophos.png"
subtitle: "Admin Webinterface"
tag: "app"
keywords: "firewall xg admin"
url: "https://firewall-admin.apps.undercloud.dev"
#target: "_blank" # optional html a tag target attribute
- name: "SophosXG"
logo: "assets/logos/userportal.png"
subtitle: "Userportal"
tag: "firewall xg user userportal"
url: "https://firewall-userportal.apps.undercloud.dev"
- name: "Coreswitch"
logo: "assets/logos/mikrotik.png"
subtitle: "mikrotik main switch"
tag: "switch"
url: "http://coreswitch.apps.undercloud.dev"
- name: "Heitzraumswitch"
logo: "assets/logos/mikrotik.png"
subtitle: "mikrotik main switch"
tag: "switch"
url: "http://heitzraumswitch.apps.undercloud.dev"
- name: "Unifi"
logo: "assets/logos/unifi.png"
subtitle: "Unifi"
tag: "unifi"
keywords: "unifi"
url: "https://unifi.apps.undercloud.dev"
#target: "_blank" # optional html a tag target attribute
- name: "Pihole"
logo: "assets/logos/pihole.png"
subtitle: "pihole"
tag: "pihole dns"
keywords: "pihole"
url: "https://pihole.apps.undercloud.dev/admin"
#target: "_blank" # optional html a tag target attribute
- name: "Fritzbox"
logo: "assets/logos/unifi.png"
subtitle: "Fritzbox"
tag: "fritzbox"
keywords: "fritzbix telefon"
url: "https://fritzbox.apps.undercloud.dev/admin"
#target: "_blank" # optional html a tag target attribute
- name: "Backup"
icon: "fas fa-cloud"
items:
- name: "PBS"
logo: "assets/logos/cockpit.png"
subtitle: "proxmox backup server"
tag: "backup"
keywords: "pbs backup"
url: "https://pbs.apps.undercloud.dev"
#target: "_blank" # optional html a tag target attribute
- name: "Minio"
logo: "assets/logos/cockpit.png"
subtitle: "pbs minio"
tag: "minio"
keywords: "pbs minio"
url: "https://pbs-minio.apps.undercloud.dev"
#target: "_blank" # optional html a tag target attribute
- name: "velero"
logo: "assets/logos/cockpit.png"
subtitle: "velero-ui"
tag: "velero"
keywords: "backup velero kubernetes"
url: "https://velero-ui.apps.undercloud.dev"
#target: "_blank" # optional html a tag target attribute
- name: "Build-Node"
icon: "fas fa-cloud"
items:
- name: "build-Node Cockpit"
logo: "assets/logos/cockpit.png"
subtitle: "proxmox backup server"
tag: "cockpit"
keywords: "build-node cockpit"
url: "https://build-node-cockpit.apps.undercloud.dev"
#target: "_blank" # optional html a tag target attribute
#- name: "Gitea"
# logo: "assets/logos/cockpit.png"
# subtitle: "gitea"
# tag: "gitea"
# keywords: "gitea build-node"
# url: "https://build-node-gitea.apps.undercloud.dev"
# #target: "_blank" # optional html a tag target attribute
- name: "Hypervisor"
icon: "fas fa-cloud"
items:
- name: "hyper1"
logo: "assets/logos/cockpit.png"
subtitle: "proxmox"
tag: "hypervisor"
keywords: "hyper1 proxmox"
url: "https://hyper1.apps.undercloud.dev"
#target: "_blank" # optional html a tag target attribute
- name: "Ceph"
logo: "assets/logos/cockpit.png"
subtitle: "Ceph-hyper1"
tag: "hypervisor"
keywords: "hyper1 proxmox ceph"
url: "https://hyper1-ceph.apps.undercloud.dev"
#target: "_blank" # optional html a tag target attribute
- name: "hyper2"
logo: "assets/logos/cockpit.png"
subtitle: "proxmox"
tag: "hypervisor"
keywords: "hyper2 proxmox"
url: "https://hyper2.apps.undercloud.dev"
#target: "_blank" # optional html a tag target attribute
- name: "Ceph"
logo: "assets/logos/cockpit.png"
subtitle: "Ceph-hyper2"
tag: "hypervisor"
keywords: "hyper2 proxmox ceph"
url: "https://hyper2-ceph.apps.undercloud.dev"
#target: "_blank" # optional html a tag target attribute
- name: "hyper3"
logo: "assets/logos/cockpit.png"
subtitle: "proxmox"
tag: "hypervisor"
keywords: "hyper3 proxmox"
url: "https://hyper3.apps.undercloud.dev"
#target: "_blank" # optional html a tag target attribute
- name: "Ceph"
logo: "assets/logos/cockpit.png"
subtitle: "Ceph-hyper3"
tag: "hypervisor"
keywords: "hyper3 proxmox ceph"
url: "https://hyper3-ceph.apps.undercloud.dev"
#target: "_blank" # optional html a tag target attribute
- name: "pbs"
logo: "assets/logos/cockpit.png"
subtitle: "proxmox"
tag: "hypervisor"
keywords: "pbs proxmox"
url: "https://pbs.apps.undercloud.dev"
#target: "_blank" # optional html a tag target attribute
- name: "Kubernetes"
icon: "fas fa-cloud"
items:
- name: "ArgoCD"
logo: "assets/logos/argocd.png"
subtitle: "Argocd"
tag: "argocd"
keywords: "kubernetes argocd"
url: "https://argocd.apps.undercloud.dev"
- name: "Portainer"
logo: "assets/logos/portainer.png"
subtitle: "portainer - kubernetes"
tag: "portainer"
keywords: "portainer"
url: "https://portainer.apps.undercloud.dev"
- name: "Kubevirt"
logo: "assets/logos/kubevirt.png"
subtitle: "virtual Machines"
tag: "kubevirt"
keywords: "kubevirt virtual machines"
url: "https://kubevirt.apps.undercloud.dev"
- name: "Apps"
icon: "fas fa-cloud"
items:
- name: "Gitea"
logo: "assets/logos/gitea.png"
subtitle: "git"
tag: "gitea"
keywords: "kubernetes gitea"
url: "https://gitea.apps.undercloud.dev"
- name: "code-server"
logo: "assets/logos/code-server.png"
subtitle: "web ide"
tag: "code-server"
keywords: "kubernetes code-server"
url: "https://code-server.apps.undercloud.dev"
- name: "vaultwarden"
logo: "assets/logos/vaultwarden.png"
subtitle: "password manager (bitwarden)"
tag: "vaultwarden"
keywords: "vaultwarden bitwarden password"
url: "https://vaultwarden.apps.undercloud.dev"
#- name: "pihole"
# logo: "assets/logos/pihole.png"
# subtitle: "pihole admin"
# tag: "pihole"
# keywords: "pihole dns"
# url: "https://pihole.apps.undercloud.dev/admin"
- name: "LDAP"
logo: "assets/logos/phpldapadmin.png"
subtitle: "phpldapadmin"
tag: "ldap"
keywords: "ldap phpldapadmin"
url: "https://phpldapadmin.apps.undercloud.dev"
- name: "LDAP-Password"
logo: "assets/logos/phpldapadmin.png"
subtitle: "self-service-password"
tag: "ldap"
keywords: "ldap password self-service"
url: "https://password.apps.undercloud.dev"
- name: "Bookstack"
logo: "assets/logos/bookstack.png"
subtitle: "wiki"
tag: "wiki"
keywords: "bookstack wiki"
url: "https://bookstack.apps.undercloud.dev"
- name: "Nextcloud"
logo: "assets/logos/nextcloud.png"
subtitle: "nextcloud"
tag: "nextcloud"
keywords: "nextcloud owncloud"
url: "https://nextcloud.apps.undercloud.dev"
- name: "Fileserver"
logo: "assets/logos/filebrowser.png"
subtitle: "filebrowser"
tag: "fileserver"
keywords: "filebrowser fileserver files"
url: "https://fileserver.apps.undercloud.dev"
- name: "Jellyfin"
logo: "assets/logos/jellyfin.png"
subtitle: "jellyfin"
tag: "jellyfin"
keywords: "jellyfin movies music"
url: "https://jellyfin.apps.undercloud.dev"
- name: "Website"
logo: "assets/logos/wordpress.png"
subtitle: "wordpress"
tag: "wordpress"
keywords: "wordpress website blog"
url: "https://wordpress.apps.undercloud.dev"
- name: "Forum"
logo: "assets/logos/phpbb.png"
subtitle: "phpbb"
tag: "forum"
keywords: "forum phpbb"
url: "https://forum.apps.undercloud.dev"
- name: "Paperless"
logo: "assets/logos/paperless.png"
subtitle: "documents"
tag: "paperless"
keywords: "paperless documents scan"
url: "https://paperless.apps.undercloud.dev"
#- name: "OpenHAB"
# logo: "assets/logos/openhab.png"
# subtitle: "home automation"
# tag: "openhab"
# keywords: "openhab home automation"
# url: "https://openhab.apps.undercloud.dev"
- name: "Netbox"
logo: "assets/logos/netbox.png"
subtitle: "IP Address Management"
tag: "netbox"
keywords: "ip address"
url: "https://netbox.apps.undercloud.dev"
#- name: "Keycloak"
# logo: "assets/logos/keycloak.png"
# subtitle: "Sigle Sign On"
# tag: "keycloak"
# keywords: "single sign on sso keycloak"
# url: "https://keycloak.apps.undercloud.dev"
- name: "Emulator"
logo: "assets/logos/emulatorjs.png"
subtitle: "emulatorjs"
tag: "emulatorjs"
keywords: "emulator"
url: "https://emulator.apps.undercloud.dev"
#- name: "Emulator Backend"
# logo: "assets/logos/emulatorjs.png"
# subtitle: "backend"
# tag: "emulatorjs"
# keywords: "emulator"
# url: "https://emulator-backend.apps.undercloud.dev"
#- name: "MStream"
# logo: "assets/logos/mstream.png"
# subtitle: "music streaming"
# tag: "mstream"
# keywords: "mstream music streaming"
# url: "https://mstream.apps.undercloud.dev"
#- name: "Wekan"
# logo: "assets/logos/wekan.png"
# subtitle: "Kanban Board"
# tag: "kanban"
# keywords: "kanban"
# url: "https://kanban.apps.undercloud.dev"
- name: "Polly"
logo: "assets/logos/doodle.png"
subtitle: "find Appointments"
tag: "polly"
keywords: "doodle polly termine appointments"
url: "https://polly.apps.undercloud.dev"
- name: "Communication"
icon: "fas fa-cloud"
items:
- name: "matrix"
logo: "assets/logos/matrix.png"
subtitle: "matrix server"
tag: "matrix"
keywords: "matrix synapse server"
url: "https://matrix.apps.undercloud.dev"
- name: "element"
logo: "assets/logos/element.png"
subtitle: "matrix client"
tag: "element"
keywords: "matrix element server"
url: "https://element.apps.undercloud.dev"
- name: "Jitsi"
logo: "assets/logos/jitsi.png"
subtitle: "video conferencing"
tag: "jitsi"
keywords: "jitsi video conference telephony"
url: "https://jitsi.apps.undercloud.dev"
- name: "Roundcube"
logo: "assets/logos/roundcube.png"
subtitle: "webmail"
tag: "webmail"
keywords: "webmail mail"
url: "https://roundcube.apps.undercloud.dev"
- name: "Autodiscover"
logo: "assets/logos/roundcube.png"
subtitle: "Support Page"
tag: "mail"
keywords: "webmail mail"
url: "https://autodiscover.apps.undercloud.dev"
- name: "Remote"
icon: "fas fa-cloud"
items:
#- name: "Warpgate"
# logo: "assets/logos/ssh.png"
# subtitle: "ssh gateway"
# tag: "ssh"
# keywords: "ssh warpgate gateway"
# url: "https://warpgate.apps.undercloud.dev"
#- name: "wetty"
# logo: "assets/logos/ssh.png"
# subtitle: "http ssh client"
# tag: "ssh"
# keywords: "ssh wetty gateway"
# url: "https://wetty.apps.undercloud.dev"
- name: "sshwifty"
logo: "assets/logos/ssh.png"
subtitle: "http ssh client"
tag: "ssh"
keywords: "sshwifty gateway"
url: "https://sshwifty.apps.undercloud.dev"
#- name: "Bastillion"
# logo: "assets/logos/bastillion.png"
# subtitle: "http ssh client"
# tag: "ssh"
# keywords: "ssh bastillion gateway"
# url: "https://bastillion.apps.undercloud.dev"
- name: "Guacamole"
logo: "assets/logos/guacamole.png"
subtitle: "RDP, VNC, SSH"
tag: "guacamole"
keywords: "ssh guacamole rdp vnc gateway"
url: "https://guacamole.apps.undercloud.dev"
- name: "Monitoring"
icon: "fas fa-cloud"
items:
- name: "VMAgent"
logo: "assets/logos/prometheus.png"
subtitle: "prometheus"
tag: "prometheus"
keywords: "prometheus monitoring vmagent victoria"
url: "https://vmagent.apps.undercloud.dev/"
- name: "Grafana"
logo: "assets/logos/grafana.png"
subtitle: "grafana"
tag: "grafana"
keywords: "grafana monitoring"
url: "https://grafana.apps.undercloud.dev"
- name: "Alert Manager"
logo: "assets/logos/alertmanager.png"
subtitle: "alertmanager"
tag: "alertmanager"
keywords: "alertmanager monitoring"
url: "https://alertmanager.apps.undercloud.dev"
- name: "Kibana"
logo: "assets/logos/kibana.png"
subtitle: "kibana"
tag: "kibana"
keywords: "kibana logging monitoring"
url: "https://kibana.apps.undercloud.dev"
- name: "Test"
icon: "fas fa-cloud"
items:
- name: "Demo"
logo: "assets/logos/demo.png"
subtitle: "test ngnix"
tag: "nginx"
keywords: "kubernetes nginx demo"
url: "https://demo.apps.undercloud.dev"
- name: "kuard"
logo: "assets/logos/app.png"
subtitle: "browser test (v6 only it seems)"
tag: "kuard"
keywords: "kubernetes kuard"
url: "https://kuard.apps.undercloud.dev"
- name: "Smokeping"
logo: "assets/logos/smokeping.png"
subtitle: "ping"
tag: "smokeping"
keywords: "ping smokeping"
url: "https://smokeping.apps.undercloud.dev/smokeping/smokeping.cgi"
- name: "Storage"
icon: "fas fa-cloud"
items:
- name: "Ceph"
logo: "assets/logos/cockpit.png"
subtitle: "Ceph-hyper1"
tag: "hypervisor"
keywords: "hyper1 proxmox ceph"
url: "https://hyper1-ceph.apps.undercloud.dev"
#target: "_blank" # optional html a tag target attribute
- name: "Ceph"
logo: "assets/logos/cockpit.png"
subtitle: "Ceph-hyper2"
tag: "hypervisor"
keywords: "hyper2 proxmox ceph"
url: "https://hyper2-ceph.apps.undercloud.dev"
#target: "_blank" # optional html a tag target attribute
- name: "Ceph"
logo: "assets/logos/cockpit.png"
subtitle: "Ceph-hyper3"
tag: "hypervisor"
keywords: "hyper3 proxmox ceph"
url: "https://hyper3-ceph.apps.undercloud.dev"
#target: "_blank" # optional html a tag target attribute
- name: "External Links"
icon: "fas fa-cloud"
items:
- name: "Google Mail"
logo: "assets/logos/gmail.png"
subtitle: "webmail"
tag: "google"
keywords: "mail gmail google webmail"
url: "https://mail.google.com/"
- name: "Google Drive"
logo: "assets/logos/drive.png"
subtitle: "web storage by google"
tag: "google"
keywords: "google drive"
url: "https://drive.google.com/drive/my-drive"
#- name: "Freenom"
# logo: "assets/logos/freenom.png"
# subtitle: "DNS Registrar (apps.undercloud.dev)"
# tag: "dns"
# keywords: "dns regostrar"
# url: "https://www.freenom.com/"
- name: "Tunnelbroker"
logo: "assets/logos/he.png"
subtitle: "6in4 Tunnel from Hurricane Electric"
tag: "tunnelbroker"
keywords: "ipv6 tunnelbroker"
url: "https://tunnelbroker.net/"
- name: "Hurricane Electric DNS"
logo: "assets/logos/he.png"
subtitle: "free DNS Service"
tag: "dns"
keywords: "he dns"
url: "https://dns.he.net/"
---
apiVersion: v1
kind: ConfigMap
metadata:
name: startup
namespace: homer
data:
startup.sh: |
#!/bin/sh
set -eu
echo "startup..."
BASE="http://gitea.gitea.svc.k8s.undercloud.local:3000"
OWNER="Undercloud"
REPO="assets"
REF="main"
OUT="/www/assets/logos"
mkdir -p "$OUT"
# Auth header (token prioritaire, sinon Basic)
if [ -n "${GITEA_TOKEN:-}" ]; then
AUTH="Authorization: token $GITEA_TOKEN"
else
: "${GITEA_USER:?GITEA_USER manquant}"
: "${GITEA_PASSWORD:?GITEA_PASSWORD manquant}"
B64="$(printf '%s' "$GITEA_USER:$GITEA_PASSWORD" | base64 | tr -d '\n')"
AUTH="Authorization: Basic $B64"
fi
files="
alertmanager.png
app.png
argocd.png
bgsound.jpg
ceph.png
cockpit.png
code-server.png
demo.png
drive.png
freenom.png
gitea.png
gmail.png
grafana.png
he.png
kubernetes.png
lancom.png
mikrotik.png
phpldapadmin.png
pihole.png
portainer.png
prometheus.png
roundcube.png
snappymail.png
ssh.png
unifi.png
userportal.png
vaultwarden.png
kibana.png
guacamole.png
bastillion.png
sophos.png
bookstack.png
nextcloud.png
funkwhale.png
filebrowser.png
jellyfin.png
wordpress.png
phpbb.png
matrix.png
element.png
jitsi.png
openhab.png
paperless.png
netbox.png
keycloak.png
emulatorjs.png
smokeping.png
mstream.png
kubevirt.png
doodle.png
wekan.png
minio.png
wallpaper.jpg
guild-logo.png
"
fetch_one() {
f="$1"
# Essaye plusieurs endpoints "un par un", stop au premier succès
for URL in \
"$BASE/api/v1/repos/$OWNER/$REPO/raw/homer/$f?ref=$REF" \
"$BASE/$OWNER/$REPO/raw/branch/$REF/homer/$f" \
"$BASE/$OWNER/$REPO/src/branch/$REF/homer/$f?raw=1"
do
if wget -q -O "$OUT/$f" --header "$AUTH" "$URL"; then
[ -s "$OUT/$f" ] && return 0
fi
done
return 1
}
FAIL=0
for f in $files; do
if fetch_one "$f"; then
echo "ok: $f"
else
echo "fail: $f" >&2
FAIL=1
fi
done
[ "$FAIL" -eq 0 ] && echo "startup done." || { echo "some files failed"; exit 1; }
---