--- # yaml-language-server: $schema=https://kubernetes-schemas.pages.dev/helm.toolkit.fluxcd.io/helmrelease_v2beta2.json apiVersion: helm.toolkit.fluxcd.io/v2beta2 kind: HelmRelease metadata: name: &app immich-server namespace: default spec: interval: 30m chart: spec: chart: app-template version: 2.5.0 interval: 30m sourceRef: kind: HelmRepository name: bjw-s namespace: flux-system maxHistory: 2 install: createNamespace: true remediation: retries: 3 upgrade: cleanupOnFail: true remediation: retries: 3 uninstall: keepHistory: false dependsOn: - name: redis namespace: database values: defaultPodOptions: enableServiceLinks: false securityContext: runAsUser: 568 runAsGroup: 568 fsGroup: 568 fsGroupChangePolicy: OnRootMismatch topologySpreadConstraints: - maxSkew: 1 topologyKey: kubernetes.io/hostname whenUnsatisfiable: DoNotSchedule labelSelector: matchLabels: app.kubernetes.io/name: *app controllers: main: strategy: RollingUpdate annotations: reloader.stakater.com/auto: "true" configmap.reloader.stakater.com/reload: &configMap immich-configmap secret.reloader.stakater.com/reload: &secret immich-secret initContainers: init-db: image: repository: ghcr.io/onedr0p/postgres-init tag: 16 envFrom: &envFrom - configMapRef: name: *configMap - secretRef: name: *secret containers: main: image: repository: ghcr.io/immich-app/immich-server tag: v1.93.3@sha256:7872201746abe019620e7b5cb64c9a969aca94b1357db2016edfe55c028c66b2 args: ["start-server.sh"] envFrom: *envFrom env: LOG_LEVEL: log # IMMICH_CONFIG_FILE: /config/immich-config.json IMMICH_MEDIA_LOCATION: &mediaLocation /usr/src/app/upload SERVER_PORT: &port 3001 resources: requests: cpu: 100m memory: 250Mi limits: memory: 1000Mi probes: liveness: &probes enabled: true custom: true spec: httpGet: path: /server-info/ping port: 3001 initialDelaySeconds: 0 periodSeconds: 10 timeoutSeconds: 1 failureThreshold: 5 readiness: *probes startup: enabled: false service: main: ports: http: port: *port ingress: main: enabled: true className: nginx annotations: external-dns.alpha.kubernetes.io/enabled: "true" external-dns.alpha.kubernetes.io/target: services.${SECRET_DOMAIN}. hajimari.io/appName: Immich nignx.ingress.kubernetes.io/force-ssl-redirect: "true" nginx.ingress.kubernetes.io/proxy-body-size: "0" nginx.ingress.kubernetes.io/upstream-hash-by: "$client_ip" hosts: - host: &host photos.${SECRET_CLUSTER_DOMAIN} paths: - path: / service: name: main port: http tls: - hosts: - *host persistence: config: enabled: true type: configMap name: immich-server-config globalMounts: - path: /config library: type: nfs server: "192.168.9.10" path: /mnt/storage/apps/immich globalMounts: - path: *mediaLocation geocoding-dump: type: emptyDir globalMounts: - path: /usr/src/app/.reverse-geocoding-dump transformers-cache: type: emptyDir globalMounts: - path: /usr/src/app/.transformers_cache