Files
k8s-apps/homer/configmaps.yaml
2026-03-30 17:32:38 +00:00

726 lines
25 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: "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: "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: "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: "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: "Authentik"
logo: "assets/logos/authentik.png"
subtitle: "SSO"
tag: "authentik"
keywords: "auth sso authentik"
url: "https://auth.apps.undercloud.dev"
- name: "Home Assistant"
logo: "assets/logos/authentik.png"
subtitle: "SSO"
tag: "home automation"
keywords: "home automation zigbee"
url: "https://home.apps.undercloud.dev"
- name: "Frigate"
logo: "assets/logos/authentik.png"
subtitle: "SSO"
tag: "surveillance"
keywords: "camera surveillance"
url: "https://frigate.apps.undercloud.dev"
- name: "Communication"
icon: "fas fa-cloud"
items:
- 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: "Admin"
icon: "fas fa-cloud"
items:
- 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: "LDAP"
logo: "assets/logos/lam.png"
subtitle: "LDAP Account Manager"
tag: "ldap"
keywords: "ldap lam"
url: "https://lam.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: "Netbox"
logo: "assets/logos/netbox.png"
subtitle: "IP Address Management"
tag: "netbox"
keywords: "ip address"
url: "https://netbox.apps.undercloud.dev"
- 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: "Harbor"
logo: "assets/logos/kubevirt.png"
subtitle: "docker Repository"
tag: "harbor"
keywords: "harbor docker repository"
url: "https://docker-repo.apps.undercloud.dev"
- name: "openbao"
logo: "assets/logos/openbao.png"
subtitle: "secret management"
tag: "openbao"
keywords: "secrets openbao"
url: "https://openbao.apps.undercloud.dev"
- name: "Communication Backend"
icon: "fas fa-cloud"
items:
- name: "Autodiscover"
logo: "assets/logos/roundcube.png"
subtitle: "Support Page"
tag: "mail"
keywords: "webmail mail"
url: "https://autodiscover.apps.undercloud.dev"
- name: "matrix"
logo: "assets/logos/matrix.png"
subtitle: "matrix server"
tag: "matrix"
keywords: "matrix synapse server"
url: "https://matrix.apps.undercloud.dev"
- name: "collabora"
logo: "assets/logos/nextcloud.png"
subtitle: "collabora server"
tag: "collabora"
keywords: "collabora office nextcloud"
url: "https://collabora.apps.undercloud.dev"
- name: "Network"
icon: "fas fa-cloud"
items:
- name: "Lancom"
logo: "assets/logos/lancom.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/sophosvpnl.png"
subtitle: "VPN Portal"
tag: "firewall xg user userportal"
url: "https://firewall-vpn.apps.undercloud.dev"
- 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/fritzbox.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/proxmox.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/minio.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/velero.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/proxmox.png"
subtitle: "proxmox"
tag: "hypervisor"
keywords: "hyper1 proxmox"
url: "https://hyper1.apps.undercloud.dev"
#target: "_blank" # optional html a tag target attribute
- name: "hyper2"
logo: "assets/logos/proxmox.png"
subtitle: "proxmox"
tag: "hypervisor"
keywords: "hyper2 proxmox"
url: "https://hyper2.apps.undercloud.dev"
#target: "_blank" # optional html a tag target attribute
- name: "hyper3"
logo: "assets/logos/proxmox.png"
subtitle: "proxmox"
tag: "hypervisor"
keywords: "hyper3 proxmox"
url: "https://hyper3.apps.undercloud.dev"
#target: "_blank" # optional html a tag target attribute
- name: "pbs"
logo: "assets/logos/proxmox.png"
subtitle: "proxmox"
tag: "hypervisor"
keywords: "pbs proxmox"
url: "https://pbs.apps.undercloud.dev"
#target: "_blank" # optional html a tag target attribute
- 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/victoria.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: "checkmk"
logo: "assets/logos/checkmk.png"
subtitle: "IP Address Management"
tag: "checkmk"
keywords: "checkmk monitoring"
url: "https://checkmk.apps.undercloud.dev"
- name: "uptime-kuma"
logo: "assets/logos/uptime.png"
subtitle: "monitoring"
tag: "uptime-kuma"
keywords: "monitoring uptime kuma"
url: "https://uptime-kuma.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/ceph.png"
subtitle: "Ceph-Dashboard"
tag: "ceph"
keywords: "storage proxmox ceph"
url: "https://ceph-dashboard.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
authentik.png
bastillion.png
bgsound.jpg
bookstack.png
ceph.png
checkmk.png
cockpit.png
code-server.png
demo.png
doodle.png
drive.png
emulatorjs.png
filebrowser.png
freenom.png
fritzbox.png
funkwhale.png
gitea.png
gmail.png
grafana.png
guacamole.png
guild-logo.png
he.png
jellyfin.png
jitsi.png
keycloak.png
kibana.png
kubernetes.png
kubevirt.png
lam.png
lancom.png
matrix.png
mikrotik.png
minio.png
mstream.png
netbox.png
nextcloud.png
openbao.png
openhab.png
paperless.png
phpbb.png
phpldapadmin.png
pihole.png
portainer.png
prometheus.png
proxmox.png
roundcube.png
selfservicepw.png
smokeping.png
snappymail.png
sophos.png
sophosvpn.png
ssh.png
unifi.png
uptime.png
userportal.png
vaultwarden.png
velero.png
victoria.png
wallpaper.jpg
wekan.png
wordpress.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; }
---