diff --git a/platform/homepage/configmap.yaml b/platform/homepage/configmap.yaml index a59ed38..6f1affa 100644 --- a/platform/homepage/configmap.yaml +++ b/platform/homepage/configmap.yaml @@ -1,7 +1,7 @@ --- # Homepage configuration (gethomepage). Each key is mounted read-only into /app/config via a subPath # (deployment.yaml) — the exact file set the app expects (services/settings/bookmarks/widgets + -# docker/kubernetes + custom.css/js). Plain link tiles only: NO service-widget API keys are wired +# docker/kubernetes/proxmox + custom.css/js). Plain link tiles only: NO service-widget API keys are wired # here (that needs per-service secrets — flagged as a follow-up), so nothing sensitive lives in this # ConfigMap. Icons use the app-BUNDLED Material Design set (`mdi-*`) so no icon CDN is fetched and the # pod's egress stays DNS-only (networkpolicy.yaml). Brand icons (selfh.st/dashboard-icons) would need @@ -131,5 +131,13 @@ data: kubernetes.yaml: | --- + # No Proxmox integration. Homepage v2.1.2 treats proxmox.yaml as a REQUIRED config file (it is in + # the image skeleton dir /app/src/skeleton) and copies a default skeleton into /app/config when it + # is missing — which EACCES-crashes the pod because the config dir is a read-only subPath mount. + # Provide it here (empty) so Homepage finds it and never writes at runtime. A live PVE widget would + # need pve url/token/secret in a Secret — deliberately not wired. + proxmox.yaml: | + --- + custom.css: "" custom.js: "" diff --git a/platform/homepage/deployment.yaml b/platform/homepage/deployment.yaml index 1486d1d..c8bbce4 100644 --- a/platform/homepage/deployment.yaml +++ b/platform/homepage/deployment.yaml @@ -25,7 +25,7 @@ spec: app.kubernetes.io/name: homepage annotations: # Re-roll the pod when the config changes (ConfigMap subPath mounts do NOT hot-reload). - checksum/config: config-v1 + checksum/config: config-v2 spec: automountServiceAccountToken: false securityContext: @@ -89,6 +89,9 @@ spec: - { name: homepage-config, mountPath: /app/config/widgets.yaml, subPath: widgets.yaml, readOnly: true } - { name: homepage-config, mountPath: /app/config/docker.yaml, subPath: docker.yaml, readOnly: true } - { name: homepage-config, mountPath: /app/config/kubernetes.yaml, subPath: kubernetes.yaml, readOnly: true } + # proxmox.yaml is ALSO a required file in Homepage v2.1.2's skeleton — provide it so the + # app never copies a skeleton into the read-only /app/config (EACCES crash otherwise). + - { name: homepage-config, mountPath: /app/config/proxmox.yaml, subPath: proxmox.yaml, readOnly: true } - { name: homepage-config, mountPath: /app/config/custom.css, subPath: custom.css, readOnly: true } - { name: homepage-config, mountPath: /app/config/custom.js, subPath: custom.js, readOnly: true } # Writable scratch for Homepage's runtime logs (it writes /app/config/logs).