Immich should be a podman quadlet #1

Open
opened 2025-12-10 18:45:43 +00:00 by red · 0 comments
Owner

The complexity of immich made converting it to a quadlet kinda painful, namely the shared env variables between containers

work so far:

apiVersion: v1
kind: Pod
metadata:
  name: immich
spec:
  containers:
    - image: ghcr.io/immich-app/immich-server:release
      livenessProbe:
        timeoutSeconds: 30
      name: immich_server
      ports:
        - containerPort: 2283
          hostPort: 2283
      volumeMounts:
        - mountPath: /data
          name: immich-data
        - mountPath: /etc/localtime
          name: immich-localtime
          readOnly: true
    - image: ghcr.io/immich-app/immich-machine-learning:release
      livenessProbe:
        timeoutSeconds: 30
      name: immich_machine_learning
      volumeMounts:
        - mountPath: /cache
          name: model-cache
    - image: docker.io/valkey/valkey@sha256:81db6d39e1bba3b3ff32bd3a1b19a6d69690f94a3954ec131277b9a26b95b3aa
      livenessProbe:
        exec:
          command:
            - /bin/sh
            - -c
            - redis-cli ping || exit 1
        timeoutSeconds: 30
      name: immich_redis
    - image: ghcr.io/immich-app/postgres@sha256:bcf63357191b76a916ae5eb93464d65c07511da41e3bf7a8416db519b40b1c23
      env:
        - name: POSTGRES_PASSWORD
          value: blahblahblah
        - name: POSTGRES_USER
          value: blah
        - name: POSTGRES_DB
          value: blah
        - name: POSTGRES_INITDB_ARGS
          value: --data-checksums
      name: immich_postgres
      volumeMounts:
        - mountPath: /var/lib/postgresql/data
          name: immich_postgres-var-lib-postgresql-data
  volumes:
    - hostPath:
        path: /var/mnt/nfs/gallery
      name: immich-data
    - hostPath:
        path: /etc/localtime
      name: immich-localtime
    - name: model-cache
      persistentVolumeClaim:
        claimName: model-cache
    - hostPath:
        path: .
      name: immich-pgdata
The complexity of immich made converting it to a quadlet kinda painful, namely the shared env variables between containers work so far: ``` apiVersion: v1 kind: Pod metadata: name: immich spec: containers: - image: ghcr.io/immich-app/immich-server:release livenessProbe: timeoutSeconds: 30 name: immich_server ports: - containerPort: 2283 hostPort: 2283 volumeMounts: - mountPath: /data name: immich-data - mountPath: /etc/localtime name: immich-localtime readOnly: true - image: ghcr.io/immich-app/immich-machine-learning:release livenessProbe: timeoutSeconds: 30 name: immich_machine_learning volumeMounts: - mountPath: /cache name: model-cache - image: docker.io/valkey/valkey@sha256:81db6d39e1bba3b3ff32bd3a1b19a6d69690f94a3954ec131277b9a26b95b3aa livenessProbe: exec: command: - /bin/sh - -c - redis-cli ping || exit 1 timeoutSeconds: 30 name: immich_redis - image: ghcr.io/immich-app/postgres@sha256:bcf63357191b76a916ae5eb93464d65c07511da41e3bf7a8416db519b40b1c23 env: - name: POSTGRES_PASSWORD value: blahblahblah - name: POSTGRES_USER value: blah - name: POSTGRES_DB value: blah - name: POSTGRES_INITDB_ARGS value: --data-checksums name: immich_postgres volumeMounts: - mountPath: /var/lib/postgresql/data name: immich_postgres-var-lib-postgresql-data volumes: - hostPath: path: /var/mnt/nfs/gallery name: immich-data - hostPath: path: /etc/localtime name: immich-localtime - name: model-cache persistentVolumeClaim: claimName: model-cache - hostPath: path: . name: immich-pgdata ```
red referenced this issue from a commit 2025-12-15 22:11:14 +00:00
Sign in to join this conversation.
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
homelab/immich#1
No description provided.