diff options
Diffstat (limited to 'bundles/immich/files/kube.yaml')
| -rw-r--r-- | bundles/immich/files/kube.yaml | 104 |
1 files changed, 104 insertions, 0 deletions
diff --git a/bundles/immich/files/kube.yaml b/bundles/immich/files/kube.yaml new file mode 100644 index 0000000..523c073 --- /dev/null +++ b/bundles/immich/files/kube.yaml @@ -0,0 +1,104 @@ +apiVersion: v1 +kind: Pod +metadata: + name: immich + labels: + traefik.enable: true + traefik.http.routers.immich.tls: true + traefik.http.routers.immich.tls.certresolver: le + traefik.http.routers.immich.entrypoints: http,https + traefik.http.routers.immich.rule: Host(`photos.gzr.im`) + traefik.http.routers.immich.service: immich + traefik.http.services.immich.loadbalancer.server.port: 2283 + + # TODO: https://immich.app/docs/features/monitoring + # https://github.com/immich-app/immich/blob/v1.121.0/docker/prometheus.yml + # + # metrics + # traefik.http.routers.immich-metrics.entrypoints: metrics + # traefik.http.routers.immich-metrics.rule: Path(`/metrics/immich`) + # traefik.http.routers.immich-metrics.middlewares: replacepath-metrics +spec: + restartPolicy: Always + dnsPolicy: Default + containers: + - name: immich + image: ghcr.io/immich-app/immich-server:v1.140.1 + envFrom: + - secretRef: + name: immich + env: + - name: IMMICH_CONFIG_FILE + value: /immich.yaml + ports: + - containerPort: 2283 + protocol: TCP + # NOTE: required to make tv app work + hostPort: 2283 + volumeMounts: + - name: config + mountPath: /immich.yaml + - name: data + mountPath: /usr/src/app/upload + - name: media + mountPath: /media + readOnly: true + # resources: + # limits: + # cpu: 300m + # memory: 512Mi + - name: redis + image: docker.io/redis:6.2-alpine@sha256:eaba718fecd1196d88533de7ba49bf903ad33664a92debb24660a922ecd9cac8 + livenessProbe: + exec: + command: ["sh", "-c", "redis-cli ping || exit 1"] + - name: postgres + image: docker.io/tensorchord/pgvecto-rs:pg14-v0.2.0@sha256:90724186f0a3517cf6914295b5ab410db9ce23190a2d9d0b9dd6463e3fa298f0 + envFrom: + - secretRef: + name: immich + env: + - name: POSTGRES_INITDB_ARGS + value: --data-checksums + volumeMounts: + - name: pg-data + mountPath: /var/lib/postgresql/data + livenessProbe: + exec: + command: + - /bin/sh + - -c + - pg_isready --dbname='${DB_DATABASE_NAME}' --username='${DB_USERNAME}' || exit 1 + # ; Chksum="$$(psql --dbname='${DB_DATABASE_NAME}' --username='${DB_USERNAME}' --tuples-only --no-align --command='SELECT COALESCE(SUM(checksum_failures), 0) FROM pg_stat_database')"; echo "checksum failure count is $$Chksum"; [ "$$Chksum" = '0' ] || exit 1 + command: + - docker-entrypoint.sh + - -c + - shared_preload_libraries=vectors.so + - -c + - search_path="$$user", public, vectors + - -c + - logging_collector=on + - -c + - max_wal_size=2GB + - -c + - shared_buffers=512MB + - -c + - wal_compression=on + + volumes: + - name: config + hostPath: + path: /var/lib/immich/immich.yaml + type: File + - name: data + hostPath: + path: /var/lib/immich/app + type: DirectoryOrCreate + - name: pg-data + hostPath: + path: /var/lib/immich/db + type: DirectoryOrCreate + - name: media + hostPath: + path: /media/hayasui/media + type: Directory |