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:
immich-server from bjw-s/helm/ is more popular with 18 repositories.
Install with:
helm repo add app-template oci://ghcr.io/bjw-s-labs/helm/app-template
helm install immich-server app-template/app-template -f values.yaml
See examples from other people.
Name | Repo | Stars | Version | Timestamp |
---|---|---|---|---|
immich-server | budimanjojo/home-cluster | 196 | 4.0.1 | 16 hours ago |
immich-server | ahinko/home-ops | 218 | 3.7.3 | 10 days ago |
immich-server | drag0n141/home-ops | 37 | 3.7.3 | 19 days ago |
See the most popular values for this chart:
Key | Types |
---|---|
persistence.library.globalMounts[].path (6) /usr/src/app/upload | string |
string | |
string | |
persistence.library.existingClaim (3) immich-nfs | string |
persistence.library.path (3) /mnt/data/photos | string |
persistence.library.server (3) nas01.${SECRET_DOMAIN_INT} | string |
boolean | |
boolean | |
persistence.geocoding-dump.globalMounts[].path (2) /usr/src/app/.reverse-geocoding-dump | string |
string | |
boolean | |
persistence.transformers-cache.globalMounts[].path (2) /usr/src/app/.transformers_cache | string |
string | |
boolean | |
persistence.data.existingClaim (1) immich-data | string |
persistence.data.globalMounts[].path (1) /usr/src/app/upload | string |
string | |
number | |
number | |
service.main.controller (2) immich-server | string |
number | |
route.app.hostnames[] (4) - photos.hemma.dev | string |
route.app.parentRefs[].name (4) external | string |
route.app.parentRefs[].namespace (4) kube-system | string |
string | |
route.app.rules[].backendRefs[].name (4) immich-server | string |
number | |
route.main.hostnames[] (1) - photos.${SECRET_DOMAIN_0} | string |
route.main.parentRefs[].name (1) external | string |
route.main.parentRefs[].namespace (1) networking-system | string |
number | |
route.main.rules[].backendRefs[].name (1) immich-server | string |
number | |
string | |
string | |
controllers.immich-server.containers.app.image.repository (3) ghcr.io/immich-app/immich-server | string |
string | |
string | |
string | |
string | |
string | |
number | |
string | |
controllers.immich-server.containers.app.env.DB_HOSTNAME (1) postgres16-rw.databases.svc.cluster.local | string |
string | |
string | |
number | |
string | |
string | |
controllers.immich-server.containers.app.env.IMMICH_MEDIA_LOCATION (1) /usr/src/app/upload | string |
string | |
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 | |
controllers.immich-server.containers.main.env.DB_URL.valueFrom.secretKeyRef.name (1) immich-database-pguser-immich | string |
string | |
string | |
controllers.immich-server.containers.main.image.repository (1) ghcr.io/immich-app/immich-server | string |
string | |
boolean | |
boolean | |
boolean | |
number | |
number | |
string | |
string | |
string | |
string | |
string | |
string | |
string | |
string | |
controllers.immich-server.initContainers.01-init-db.image.repository (1) ghcr.io/home-operations/postgres-init | string |
string | |
boolean | |
string | |
string | |
number | |
controllers.immich-server.pod.topologySpreadConstraints[].topologyKey (1) kubernetes.io/hostname | string |
string | |
controllers.immich-server.strategy (1) RollingUpdate | string |
controllers.immich-server.type (1) statefulset | string |
string | |
string | |
controllers.immich.containers.app.env.TZ (3) ${TIMEZONE} | string |
string | |
string | |
controllers.immich.containers.app.env.DB_URL.valueFrom.secretKeyRef.name (1) immich-pguser-immich | string |
number | |
string | |
string | |
controllers.immich.containers.app.image.repository (3) ghcr.io/immich-app/immich-server | string |
controllers.immich.containers.app.image.tag (3) v1.132.3@sha256:6680d88486251b0264a78a1934fe82eef875555aa6d84d703a0980328a5d5c31 | string |
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 | |
controllers.immich.strategy (3) RollingUpdate | string |
boolean | |
number | |
string | |
number | |
number | |
string | |
number | |
controllers.immich.pod.topologySpreadConstraints[].topologyKey (1) topology.kubernetes.io/zone | string |
string | |
string | |
number | |
number | |
string | |
number | |
number | |
boolean | |
defaultPodOptions.securityContext.supplementalGroups[] (1) - "1000" | number |
boolean | |
string | |
number | |
defaultPodOptions.topologySpreadConstraints[].topologyKey (1) kubernetes.io/hostname | string |
string | |
string | |
string | |
string | |
string | |
string | |
string | |
ingress.app.className (2) external | string |
ingress.app.hosts[].host (2) photos.${SECRET_DOMAIN} | string |
string | |
string | |
string | |
string | |
string | |
string | |
ingress.app.annotations."external-dns.alpha.kubernetes.io/target" (1) ipv4.${SECRET_DOMAIN} | string |
ingress.app.annotations."gethomepage.dev/description" (1) Photo management and backup | string |
string | |
string | |
ingress.app.annotations."gethomepage.dev/icon" (1) sh-immich.svg | string |
string | |
ingress.app.annotations."nginx.ingress.kubernetes.io/configuration-snippet" (1) chunked_transfer_encoding off;
| string |
string | |
string | |
string | |
string | |
ingress.app.annotations."traefik.ingress.kubernetes.io/router.middlewares" (1) networking-traefik-middleware-chain-no-rate-limit@kubernetescrd | string |
ingress.app.tls[].hosts[] (1) - photos.${SECRET_DOMAIN} | string |
ingress.app.tls[].secretName (1) ${SECRET_DOMAIN/./-}-production-tls | string |