--- apiVersion: apps/v1 kind: Deployment metadata: name: immich-server spec: replicas: 1 selector: matchLabels: app: immich-server template: metadata: labels: app: immich-server spec: containers: - name: immich-server image: ghcr.io/immich-app/immich-server:release imagePullPolicy: Always ports: - containerPort: 2283 env: - name: UPLOAD_LOCATION value: /usr/src/app/upload - name: DB_PASSWORD value: postgres - name: DB_USERNAME value: postgres - name: DB_DATABASE_NAME value: immich - name: REDIS_HOST value: redis - name: REDIS_PORT value: "6379" - name: TZ value: Asia/Nicosia volumeMounts: - mountPath: /usr/src/app/upload name: upload-storage - mountPath: /GPHOTO name: gphoto-storage - mountPath: /etc/localtime name: localtime readOnly: true nodeSelector: kubernetes.io/hostname: nas.homenet volumes: - name: upload-storage persistentVolumeClaim: claimName: immich-upload-pvc - name: gphoto-storage persistentVolumeClaim: claimName: immich-gphoto-pvc - name: localtime hostPath: path: /etc/localtime type: File --- apiVersion: apps/v1 kind: Deployment metadata: name: immich-machine-learning spec: replicas: 1 selector: matchLabels: app: immich-ml template: metadata: labels: app: immich-ml spec: containers: - name: immich-ml image: ghcr.io/immich-app/immich-machine-learning:release imagePullPolicy: Always env: - name: TZ value: Asia/Nicosia volumeMounts: - mountPath: /cache name: model-cache nodeSelector: kubernetes.io/hostname: nas.homenet volumes: - name: model-cache emptyDir: {} --- apiVersion: apps/v1 kind: Deployment metadata: name: redis spec: replicas: 1 selector: matchLabels: app: redis template: metadata: labels: app: redis spec: containers: - name: redis image: redis:6.2-alpine readinessProbe: exec: command: ["redis-cli", "ping"] nodeSelector: kubernetes.io/hostname: nas.homenet --- apiVersion: apps/v1 kind: Deployment metadata: name: database spec: replicas: 1 selector: matchLabels: app: database template: metadata: labels: app: database spec: securityContext: fsGroup: 999 containers: - name: immich-postgres image: tensorchord/pgvecto-rs:pg14-v0.2.0 securityContext: runAsUser: 999 runAsGroup: 999 env: - name: POSTGRES_PASSWORD value: postgres - name: POSTGRES_USER value: postgres - name: POSTGRES_DB value: immich - name: POSTGRES_INITDB_ARGS value: '--data-checksums' - name: TZ value: Asia/Nicosia command: ["postgres"] args: - "-c" - "shared_preload_libraries=vectors.so" - "-c" - "search_path='\"$user\", public, vectors'" - "-c" - "log_destination=stderr" - "-c" - "max_wal_size=2GB" - "-c" - "shared_buffers=512MB" - "-c" - "wal_compression=on" volumeMounts: - mountPath: /var/lib/postgresql/data name: db-storage nodeSelector: kubernetes.io/hostname: nas.homenet volumes: - name: db-storage persistentVolumeClaim: claimName: immich-db-pvc