From 8903a5500830f0918e64a4e61af8c7ad9d801e16 Mon Sep 17 00:00:00 2001 From: Maarten Draijer Date: Tue, 23 Jun 2026 16:35:55 +0000 Subject: [PATCH] =?UTF-8?q?=F0=9F=93=9D(docs)=20document=20rebranding=20th?= =?UTF-8?q?e=20favicon=20via=20a=20volume=20mount?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The favicon is bundled into the frontend image as static files served from /usr/share/nginx/html. Rather than add a runtime config knob, document how to overlay custom icons with a volume (ConfigMap + frontend.extraVolumes/ extraVolumeMounts). This serves the right icon from the first byte β€” no rebuild, no favicon flash β€” and covers every variant, including the iOS home-screen and Android/PWA icons. Co-Authored-By: Claude Opus 4.8 (1M context) --- CHANGELOG.md | 1 + docs/installation/kubernetes.md | 63 +++++++++++++++++++++++++++++++++ 2 files changed, 64 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 6baafde4..1e0f2daa 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -10,6 +10,7 @@ and this project adheres to ### Added +- πŸ“(docs) document rebranding the favicon via a volume mount #1443 - ✨(backend) add command to clean pending and deleted files - 🧱(helm) run clean files command as cronjob - ✨(backend) add fallback to save recordings without S3/MinIO webhooks diff --git a/docs/installation/kubernetes.md b/docs/installation/kubernetes.md index 746df027..9188d1eb 100644 --- a/docs/installation/kubernetes.md +++ b/docs/installation/kubernetes.md @@ -244,6 +244,69 @@ meet-admin meet.127.0.0.1.nip.io localhost 80, 44 You can use LaSuite Meet on https://meet.127.0.0.1.nip.io from the local device. The provisioning user in keycloak is meet/meet. +## Rebranding the favicon + +The favicon is bundled into the frontend image and served as a set of static +files from `/usr/share/nginx/html` (`favicon.ico`, `favicon-16x16.png`, +`favicon-32x32.png`, `apple-touch-icon.png`, `android-chrome-192x192.png`, +`android-chrome-512x512.png`, `icon.png`). To rebrand without forking and +rebuilding the image, overlay your own icons onto those paths with a volume β€” +this serves the right icon from the first byte (no rebuild, no flash) and +covers every variant, including the iOS home-screen and Android/PWA icons. + +Put your icons in a `ConfigMap` (`binaryData` keeps the PNGs intact)… + +```yaml +apiVersion: v1 +kind: ConfigMap +metadata: + name: meet-favicon +binaryData: + # base64 of each replacement icon + favicon.ico: + favicon-16x16.png: + favicon-32x32.png: + apple-touch-icon.png: + android-chrome-192x192.png: + android-chrome-512x512.png: +``` + +```bash +# e.g. build the ConfigMap straight from a directory of icons +$ kubectl create configmap meet-favicon --from-file=./my-icons/ +``` + +…then mount each file over the bundled one via the chart's +`frontend.extraVolumes` / `frontend.extraVolumeMounts` (the `subPath` mounts +the single file without hiding the rest of `html/`): + +```yaml +frontend: + extraVolumes: + - name: favicon + configMap: + name: meet-favicon + extraVolumeMounts: + - name: favicon + mountPath: /usr/share/nginx/html/favicon.ico + subPath: favicon.ico + - name: favicon + mountPath: /usr/share/nginx/html/favicon-16x16.png + subPath: favicon-16x16.png + - name: favicon + mountPath: /usr/share/nginx/html/favicon-32x32.png + subPath: favicon-32x32.png + - name: favicon + mountPath: /usr/share/nginx/html/apple-touch-icon.png + subPath: apple-touch-icon.png + - name: favicon + mountPath: /usr/share/nginx/html/android-chrome-192x192.png + subPath: android-chrome-192x192.png + - name: favicon + mountPath: /usr/share/nginx/html/android-chrome-512x512.png + subPath: android-chrome-512x512.png +``` + ## All options These are the environmental options available on meet backend.