Immich is a self-hosted photo and video backup solution.
For immich, there are multiple helm deployments:
For redis and postgres, there are multiple helm charts:
Install with:
helm repo add bjw-s oci://ghcr.io/bjw-s/helm/
helm install immich-server bjw-s/app-template -f values.yaml
See examples from other people.
Name | Repo | Stars | Version | Timestamp |
---|---|---|---|---|
immich-server | rafaribe/home-ops | 64 | 3.7.3 | 3 days ago |
immich-server | budimanjojo/home-cluster | 187 | 3.7.3 | 5 days ago |
immich-server | truxnell/home-cluster | 142 | 1.5.1 | a year ago |
See the most popular values for this chart:
Key | Types |
---|---|
persistence.library.globalMounts[].path (15) /usr/src/app/upload | string |
string | |
string | |
persistence.library.existingClaim (9) immich-nfs | string |
persistence.library.path (8) /volume1/dev/photos | string |
persistence.library.server (8) ${LOCAL_LAN_NAS} | string |
boolean | |
persistence.library.advancedMounts.main.main[].path (1) /usr/src/app/upload | string |
string | |
persistence.library.mountPath (1) /usr/src/app/upload | string |
persistence.transformers-cache.globalMounts[].path (4) /usr/src/app/.transformers_cache | string |
string | |
boolean | |
persistence.data.globalMounts[].path (3) /usr/src/app/upload | string |
boolean | |
persistence.data.existingClaim (2) immich-nfs-pvc | string |
persistence.data.accessMode (1) ReadWriteOnce | string |
boolean | |
string | |
persistence.data.storageClass (1) openebs-hostpath | string |
persistence.geocoding-dump.globalMounts[].path (3) /usr/src/app/.reverse-geocoding-dump | string |
string | |
boolean | |
string | |
persistence.config.accessMode (1) ReadWriteOnce | string |
boolean | |
persistence.config.name (1) immich-configmap | string |
string | |
persistence.config.storageClass (1) openebs-hostpath | string |
persistence.config.type (1) configMap | string |
persistence.media.globalMounts[].path (2) /usr/src/app/external | string |
persistence.media.path (2) /volume2/photos/shared | string |
persistence.media.server (2) ${SECRET_NFS_DOMAIN} | string |
string | |
persistence.memories.globalMounts[].path (1) /mnt/memories | string |
persistence.memories.path (1) /mnt/user/Photos | string |
persistence.memories.server (1) ${CORE_NFS_SERVER:=nas0} | string |
string | |
persistence.photos.globalMounts[].path (1) /usr/src/app/upload | string |
persistence.photos.path (1) /volume1/photos | string |
persistence.photos.server (1) ${NAS0_IP} | string |
string | |
ingress.main.hosts[].host (10) photos.${SECRET_DOMAIN} | string |
string | |
string | |
string | |
string | |
string | |
ingress.main.tls[].hosts[] (9) - photos.${SECRET_DOMAIN} | string |
ingress.main.tls[].secretName (3) immich-tls | string |
boolean | |
ingress.main.className (7) internal | string |
string | |
ingress.main.annotations."external-dns.alpha.kubernetes.io/target" (4) external.${SECRET_DOMAIN} | string |
string | |
string | |
string | |
string | |
string | |
ingress.main.annotations."gethomepage.dev/widget.key" (3) {{`{{HOMEPAGE_VAR_IMMICH_TOKEN}}`}} | string |
string | |
ingress.main.annotations."gethomepage.dev/widget.url" (3) https://img.${SECRET_DOMAIN} | string |
string | |
ingress.main.annotations."hajimari.io/icon" (2) heroicons:photo | string |
string | |
string | |
string | |
string | |
string | |
ingress.main.annotations."traefik.ingress.kubernetes.io/router.middlewares" (1) networking-traefik-middleware-chain-direct@kubernetescrd | string |
string | |
ingress.app.hosts[].host (9) photos.${SECRET_DOMAIN} | string |
string | |
string | |
string | |
string | |
ingress.app.className (8) external | string |
string | |
ingress.app.annotations."external-dns.alpha.kubernetes.io/target" (4) external.${SECRET_PUBLIC_DOMAIN} | string |
ingress.app.annotations."gethomepage.dev/description" (4) Photo management | string |
string | |
string | |
string | |
string | |
ingress.app.annotations."gethomepage.dev/widget.key" (3) {{ `{{HOMEPAGE_VAR_IMMICH_TOKEN}}` }} | string |
string | |
ingress.app.annotations."gethomepage.dev/widget.url" (3) http://immich-server.media.svc.cluster.local:3001 | string |
ingress.app.annotations."hajimari.io/icon" (3) heroicons:photo | string |
string | |
ingress.app.annotations."nginx.ingress.kubernetes.io/configuration-snippet" (2) chunked_transfer_encoding off;
| string |
string | |
string | |
string | |
string | |
ingress.app.annotations."cert-manager.io/cluster-issuer" (1) letsencrypt-production | string |
ingress.app.annotations."gethomepage.dev/widget.fields" (1) ["photos", "videos", "storage"] | string |
string | |
string | |
string | |
ingress.app.annotations."hajimari.io/info" (1) Manage Photos | string |
ingress.app.annotations."nginx.ingress.kubernetes.io/whitelist-source-range" (1) 192.168.0.0/16,172.16.0.0/12,10.0.0.0/8
| string |
string | |
boolean | |
ingress.app.tls[].hosts[] (3) - photos.${SECRET_PUBLIC_DOMAIN} | string |
ingress.immich-server.annotations."external-dns.alpha.kubernetes.io/target" (2) external.${SECRET_DOMAIN} | string |
string | |
string | |
string | |
string | |
string | |
ingress.immich-server.annotations."hajimari.io/icon" (1) simple-icons:immich | string |
string | |
string | |
string | |
string | |
string | |
ingress.immich-server.hosts[].host (2) photos.${SECRET_DOMAIN} | string |
string | |
string | |
string | |
ingress.immich-server.tls[].hosts[] (2) - photos.${SECRET_DOMAIN} | string |
string | |
string | |
string | |
string | |
string | |
ingress.immich-server-internal.hosts[].host (1) photos-int.${SECRET_DOMAIN} | string |
string | |
string | |
string | |
ingress.immich-server-internal.tls[].hosts[] (1) - photos-int.${SECRET_DOMAIN} | string |
ingress.public.annotations."external-dns.alpha.kubernetes.io/target" (1) ingress.${PUBLIC_DOMAIN} | string |
string | |
ingress.public.annotations."nginx.ingress.kubernetes.io/configuration-snippet" (1) sub_filter </head>
'</head><script defer src="https://analytics.thiagoalmeida.xyz/script.js" data-website-id="086445c0-1f67-46c4-9246-bd1f74278421"></script>';
sub_filter_once on;
| string |
string | |
string | |
string | |
boolean | |
ingress.public.hosts[].host (1) photos.${PUBLIC_DOMAIN} | string |
string | |
string | |
string | |
service.app.controller (10) immich-server | string |
number | |
boolean | |
number | |
number | |
service.main.controller (6) immich-server | string |
service.main.annotations."io.cilium/lb-ipam-ips" (1) 192.168.10.18 | string |
service.main.type (1) LoadBalancer | string |
string | |
number | |
string | |
string | |
string | |
string | |
string | |
controllers.immich-server.containers.app.image.repository (7) ghcr.io/immich-app/immich-server | string |
string | |
string | |
string | |
string | |
number | |
string | |
number | |
boolean | |
boolean | |
number | |
string | |
number | |
number | |
number | |
number | |
boolean | |
boolean | |
number | |
string | |
number | |
number | |
number | |
number | |
boolean | |
boolean | |
number | |
string | |
number | |
number | |
number | |
number | |
number | |
controllers.immich-server.containers.app.env.IMMICH_MEDIA_LOCATION (2) /media/library/photos | string |
controllers.immich-server.containers.app.env.TZ (2) ${CLUSTER_TIMEZONE} | string |
string | |
controllers.immich-server.containers.app.env.DB_HOSTNAME (1) immich-db-rw.media.svc.cluster.local | string |
string | |
string | |
string | |
string | |
string | |
number | |
string | |
string | |
number | |
boolean | |
string | |
boolean | |
string | |
string | |
controllers.immich-server.containers.main.image.repository (3) ghcr.io/immich-app/immich-server | string |
string | |
boolean | |
boolean | |
number | |
string | |
number | |
number | |
number | |
number | |
boolean | |
boolean | |
number | |
string | |
number | |
number | |
number | |
number | |
boolean | |
number | |
number | |
string | |
number | |
number | |
number | |
boolean | |
string | |
string | |
number | |
string | |
string | |
controllers.immich-server.containers.main.env.IMMICH_MEDIA_LOCATION (2) /usr/src/app/upload | string |
number | |
string | |
string | |
controllers.immich-server.containers.main.env.DB_URL.valueFrom.secretKeyRef.name (1) immich-database-pguser-immich | string |
boolean | |
string | |
number | |
controllers.immich-server.pod.topologySpreadConstraints[].topologyKey (4) kubernetes.io/hostname | string |
string | |
string | |
string | |
string | |
number | |
string | |
number | |
number | |
number | |
controllers.immich-server.strategy (5) RollingUpdate | string |
number | |
string | |
string | |
controllers.immich-server.initContainers.01-init-db.image.repository (1) ghcr.io/onedr0p/postgres-init | string |
number | |
string | |
string | |
controllers.main.containers.main.image.repository (6) ghcr.io/immich-app/immich-server | string |
string | |
string | |
string | |
string | |
boolean | |
boolean | |
number | |
string | |
number | |
number | |
number | |
number | |
boolean | |
boolean | |
number | |
string | |
number | |
number | |
number | |
number | |
boolean | |
number | |
number | |
controllers.main.containers.main.args[] (1) - start-server.sh | string |
string | |
controllers.main.containers.main.env.IMMICH_CONFIG_FILE (1) /config/immich-config.json | string |
controllers.main.containers.main.env.IMMICH_MEDIA_LOCATION (1) /usr/src/app/upload | string |
string | |
string | |
controllers.main.containers.main.env.NODE_OPTIONS (1) --max-old-space-size=8192 | string |
number | |
controllers.main.containers.main.env.TZ (1) ${TIMEZONE} | string |
string | |
string | |
controllers.main.containers.main.env[].valueFrom.secretKeyRef.name (1) immich-cluster-pguser-immich | string |
string | |
string | |
string | |
controllers.main.containers.immich-server.image.repository (2) ghcr.io/immich-app/immich-server | string |
string | |
number | |
number | |
string | |
controllers.main.containers.config-sync.env.LABEL (1) app.kubernetes.io/config-owner | string |
string | |
string | |
boolean | |
string | |
string | |
controllers.main.containers.config-sync.image.repository (1) ghcr.io/kiwigrid/k8s-sidecar | string |
controllers.main.containers.config-sync.image.tag (1) 1.28.0@sha256:4166a019eeafd1f0fef4d867dc5f224f18d84ec8681dbb31f3ca258ecf07bcf2 | string |
string | |
string | |
string | |
string | |
string | |
string | |
string | |
string | |
controllers.main.initContainers.01-init-db.image.repository (4) ghcr.io/onedr0p/postgres-init | string |
number | |
string | |
string | |
controllers.main.initContainers.init-config.env.LABEL (1) app.kubernetes.io/config-owner | string |
string | |
string | |
boolean | |
string | |
string | |
controllers.main.initContainers.init-config.image.repository (1) ghcr.io/kiwigrid/k8s-sidecar | string |
controllers.main.initContainers.init-config.image.tag (1) 1.28.0@sha256:4166a019eeafd1f0fef4d867dc5f224f18d84ec8681dbb31f3ca258ecf07bcf2 | string |
string | |
string | |
string | |
string | |
string | |
controllers.main.initContainers.init-db.image.repository (1) ghcr.io/onedr0p/postgres-init | string |
number | |
controllers.main.strategy (4) RollingUpdate | string |
number | |
controllers.main.pod.securityContext.runAsGroup (2) ${CONTAINER_GID} | string, number |
controllers.main.pod.securityContext.runAsUser (2) ${CONTAINER_UID} | string, number |
number | |
string | |
boolean | |
string | |
number | |
controllers.main.pod.topologySpreadConstraints[].topologyKey (2) kubernetes.io/hostname | string |
string | |
boolean | |
string | |
string | |
controllers.immich.containers.app.image.repository (3) ghcr.io/immich-app/immich-server | string |
controllers.immich.containers.app.image.tag (3) v1.129.0@sha256:7122354defac839a7ecf541395907c21805f6a2b60b67ee476e66b162f1a355d | string |
string | |
controllers.immich.containers.app.env.TZ (2) ${TIMEZONE} | string |
number | |
boolean | |
boolean | |
number | |
string | |
number | |
number | |
number | |
number | |
boolean | |
boolean | |
number | |
string | |
number | |
number | |
number | |
number | |
boolean | |
boolean | |
number | |
string | |
number | |
number | |
number | |
number | |
string | |
string | |
string | |
boolean | |
string | |
boolean | |
boolean | |
number | |
string | |
number | |
number | |
number | |
string | |
number | |
controllers.immich.pod.topologySpreadConstraints[].topologyKey (1) kubernetes.io/hostname | string |
string | |
controllers.immich.strategy (3) RollingUpdate | string |
string | |
string | |
string | |
string | |
controllers.immich.initContainers.01-init-db.image.repository (1) ghcr.io/onedr0p/postgres-init | string |
number | |
controllers.immich.initContainers.02-init-extensions.command[] (1) - /bin/bash | string |
controllers.immich.initContainers.02-init-extensions.env[].name (1) PGDATABASE | string |
string | |
controllers.immich.initContainers.02-init-extensions.env[].valueFrom.secretKeyRef.key (1) INIT_POSTGRES_SUPER_PASS | string |
controllers.immich.initContainers.02-init-extensions.env[].valueFrom.secretKeyRef.name (1) immich-db | string |
string | |
controllers.immich.initContainers.02-init-extensions.image.repository (1) ghcr.io/onedr0p/postgres-init | string |
number | |
string | |
string | |
controllers.immich.initContainers.init-db.image.repository (1) ghcr.io/onedr0p/postgres-init | string |
number | |
number, string | |
string | |
number, string | |
number, string | |
number | |
boolean | |
string | |
number | |
defaultPodOptions.topologySpreadConstraints[].topologyKey (3) kubernetes.io/hostname | string |
string | |
string | |
string | |
string | |
string | |
string | |
string | |
string | |
string | |
string | |
args[] (1) - ./start-server.sh | string |
command (1) /bin/sh | string |
string | |
number | |
controller.strategy (1) RollingUpdate | string |
envFrom[].configMapRef.name (1) immich-configmap | string |
string | |
image.repository (1) ghcr.io/immich-app/immich-server | string |
image.tag (1) v1.89.0@sha256:b5aa4023c63b904136e859b4c3f4c1d34272b7c5f7ee65f50f12378d6039e9e7 | string |
initContainers.01-init-db.envFrom[].configMapRef.name (1) immich-configmap | string |
string | |
initContainers.01-init-db.image (1) ghcr.io/onedr0p/postgres-init:15.5 | string |
initContainers.01-init-db.imagePullPolicy (1) IfNotPresent | string |
string | |
initContainers.init-db.image (1) ghcr.io/onedr0p/postgres-initdb:14.8@sha256:0141cf427c47f2d534711a3f9e8c5f9008bc6b585463ccd9288cf0f027e20deb | string |
initContainers.init-db.imagePullPolicy (1) IfNotPresent | string |
boolean | |
serviceAccount.name (1) immich | string |
string | |
number | |
topologySpreadConstraints[].topologyKey (1) kubernetes.io/hostname | string |
topologySpreadConstraints[].whenUnsatisfiable (1) DoNotSchedule | string |