image: repository: ghcr.io/gethomepage/homepage tag: v0.9.9@sha256:5c264918d2d18a753da8657fee7e0579c8b11581b19275d9a93fde76a8267f3c pullPolicy: IfNotPresent workload: main: podSpec: automountServiceAccountToken: true initContainers: init-config: enabled: true type: init imageSelector: alpineImage command: - /bin/sh - -c - | mkdir -p /app/config if [ ! -f /app/config/bookmarks.yaml ]; then echo "Bookmarks file not found, copying dummy..." cp /dummy-config/bookmarks.yaml /app/config/bookmarks.yaml echo "Config file copied, you can now edit it at /app/config/bookmarks.yaml" fi if [ ! -f /app/config/services.yaml ]; then echo "services file not found, copying dummy..." cp /dummy-config/services.yaml /app/config/services.yaml echo "Config file copied, you can now edit it at /app/config/services.yaml" fi if [ ! -f /app/config/settings.yaml ]; then echo "settings file not found, copying dummy..." cp /dummy-config/settings.yaml /app/config/settings.yaml echo "Config file copied, you can now edit it at /app/config/settings.yaml" fi if [ ! -f /app/config/widgets.yaml ]; then echo "widgets file not found, copying dummy..." cp /dummy-config/widgets.yaml /app/config/widgets.yaml echo "Config file copied, you can now edit it at /app/config/widgets.yaml" fi if [ ! -f /app/config/custom.css ]; then echo "custom.css file not found, copying dummy..." cp /dummy-config/custom.css /app/config/custom.css echo "Config file copied, you can now edit it at /app/config/custom.css" fi if [ ! -f /app/config/custom.js ]; then echo "custom.js file not found, copying dummy..." cp /dummy-config/custom.js /app/config/custom.js echo "Config file copied, you can now edit it at /app/config/custom.js" fi service: main: ports: main: port: 10352 protocol: http targetPort: 3000 persistence: config: enabled: true mountPath: /app/config targetSelector: main: main: {} init-config: {} kubernetes-config: enabled: true mountPath: /app/config/kubernetes.yaml subPath: kubernetes.yaml readOnly: true type: "configmap" objectName: config bookmarks-config: # Only enable when not using forceConfigFromValues enabled: "{{ not .Values.forceConfigFromValues }}" mountPath: /dummy-config/bookmarks.yaml subPath: bookmarks.yaml readOnly: true type: "configmap" objectName: config targetSelector: main: init-config: {} force-bookmarks-config: # Only enable when using forceConfigFromValues enabled: "{{ .Values.forceConfigFromValues }}" mountPath: /app/config/bookmarks.yaml subPath: bookmarks.yaml readOnly: true type: "configmap" objectName: config settings-config: # Only enable when not using forceConfigFromValues enabled: "{{ not .Values.forceConfigFromValues }}" mountPath: /dummy-config/settings.yaml subPath: settings.yaml readOnly: true type: "configmap" objectName: config targetSelector: main: init-config: {} force-settings-config: # Only enable when using forceConfigFromValues enabled: "{{ .Values.forceConfigFromValues }}" mountPath: /app/config/settings.yaml subPath: settings.yaml readOnly: true type: "configmap" objectName: config services-config: # Only enable when not using forceConfigFromValues enabled: "{{ not .Values.forceConfigFromValues }}" mountPath: /dummy-config/services.yaml subPath: services.yaml readOnly: true type: "configmap" objectName: config targetSelector: main: init-config: {} force-services-config: # Only enable when using forceConfigFromValues enabled: "{{ .Values.forceConfigFromValues }}" mountPath: /app/config/services.yaml subPath: services.yaml readOnly: true type: "configmap" objectName: config widgets-config: # Only enable when not using forceConfigFromValues enabled: "{{ not .Values.forceConfigFromValues }}" mountPath: /dummy-config/widgets.yaml subPath: widgets.yaml readOnly: true type: "configmap" objectName: config targetSelector: main: init-config: {} force-widgets-config: # Only enable when using forceConfigFromValues enabled: "{{ .Values.forceConfigFromValues }}" mountPath: /app/config/widgets.yaml subPath: widgets.yaml readOnly: true type: "configmap" objectName: config custom-css-config: # Only enable when not using forceConfigFromValues enabled: "{{ not .Values.forceConfigFromValues }}" mountPath: /dummy-config/custom.css subPath: custom.css readOnly: true type: "configmap" objectName: config targetSelector: main: init-config: {} force-custom-css-config: # Only enable when using forceConfigFromValues enabled: "{{ .Values.forceConfigFromValues }}" mountPath: /app/config/custom.css subPath: custom.css readOnly: true type: "configmap" objectName: config custom-js-config: # Only enable when not using forceConfigFromValues enabled: "{{ not .Values.forceConfigFromValues }}" mountPath: /dummy-config/custom.js subPath: custom.js readOnly: true type: "configmap" objectName: config targetSelector: main: init-config: {} force-custom-js-config: # Only enable when using forceConfigFromValues enabled: "{{ .Values.forceConfigFromValues }}" mountPath: /app/config/custom.js subPath: custom.js readOnly: true type: "configmap" objectName: config portal: open: enabled: true serviceAccount: main: enabled: true primary: true podOptions: dnsConfig: options: - name: ndots value: "3" configmap: config: enabled: true data: custom.js: "" custom.css: "" kubernetes.yaml: | mode: cluster settings.yaml: | --- # For configuration options and examples, please see: # https://gethomepage.dev/latest/configs/settings providers: openweathermap: openweathermapapikey weatherapi: weatherapiapikey widgets.yaml: | --- # For configuration options and examples, please see: # https://gethomepage.dev/latest/configs/widgets - resources: cpu: true memory: true disk: / - search: provider: duckduckgo target: _blank services.yaml: | --- # For configuration options and examples, please see: # https://gethomepage.dev/latest/configs/services - Arr: - My First Service: href: http://localhost/ description: Homepage is awesome - Media: - My Second Service: href: http://localhost/ description: Homepage is the best - Infra: - My Third Service: href: http://localhost/ description: Homepage is 😎 bookmarks.yaml: | --- # For configuration options and examples, please see: # https://gethomepage.dev/latest/configs/bookmarks - Developer: - Github: - abbr: GH href: https://github.com/ - Social: - Reddit: - abbr: RE href: https://reddit.com/ - Entertainment: - YouTube: - abbr: YT href: https://youtube.com/ - TrueCharts: - TrueCharts: - abbr: TC icon: https://truecharts.org/svg/favicon.svg href: https://truecharts.org description: "TrueCharts Website" - Github: - abbr: GH icon: https://github.com/fluidicon.png href: https://github.com/truecharts description: "TrueCharts GitHub" - Open Collective: - abbr: TC icon: https://opencollective.com/favicon.ico href: https://opencollective.com/truecharts description: "TrueCharts Open Collective" - Discord: - abbr: DC icon: https://t2.gstatic.com/faviconV2?client=SOCIAL&type=FAVICON&fallback_opts=TYPE,SIZE,URL&url=http://discord.com&size=32 href: https://truecharts.org/s/discord description: "TrueCharts Discord" forceConfigFromValues: false rbac: main: enabled: true primary: true clusterWide: true rules: - apiGroups: - "" resources: - namespaces - pods - nodes verbs: - get - list - apiGroups: - extensions - networking.k8s.io resources: - ingresses verbs: - get - list - apiGroups: - traefik.containo.us - traefik.io resources: - ingressroutes verbs: - get - list - apiGroups: - metrics.k8s.io resources: - nodes - pods verbs: - get - list - apiGroups: - apiextensions.k8s.io resources: - customresourcedefinitions/status verbs: - get