Fix immich

This commit is contained in:
2025-08-29 23:37:44 +02:00
parent 76b0fa3286
commit a4f5edabb3
7 changed files with 113 additions and 68 deletions

View File

@@ -1,30 +0,0 @@
apiVersion: postgresql.cnpg.io/v1
kind: Cluster
metadata:
name: immich-cluster
spec:
imageName: ghcr.io/tensorchord/cloudnative-vectorchord:17.5-0.3.0
instances: 1
storage:
size: 4Gi
postgresql:
shared_preload_libraries:
- "vchord.so"
---
apiVersion: postgresql.cnpg.io/v1
kind: Database
metadata:
name: immich
spec:
name: immich
owner: immich
cluster:
name: immich-cluster
extensions:
- name: vector
ensure: present
- name: vchord
ensure: present
- name: earthdistance
ensure: present

34
apps/immich/database.yaml Normal file
View File

@@ -0,0 +1,34 @@
apiVersion: postgresql.cnpg.io/v1
kind: Database
metadata:
name: immich
namespace: postgres
spec:
name: immich
owner: immich
cluster:
name: postgres-cluster
extensions:
- name: vector
ensure: present
- name: vchord
ensure: present
- name: cube
ensure: present
- name: earthdistance
ensure: present
---
apiVersion: cert-manager.io/v1
kind: Certificate
metadata:
name: postgres-immich
spec:
secretName: postgres-immich
usages:
- client auth
# same as pg user
commonName: immich
issuerRef:
name: postgres-ca
kind: ClusterIssuer
group: cert-manager.io

View File

@@ -2,12 +2,14 @@ apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization kind: Kustomization
helmCharts: helmCharts:
- repo: oci://ghcr.io/immich-app/immich-charts - repo: oci://ghcr.io/immich-app/immich-charts
name: immich name: immich
releaseName: immich releaseName: immich
version: 0.9.3 namespace: immich
valuesFile: values.yaml version: 0.9.3
valuesFile: values.yaml
resources: resources:
- pvc.yaml - pvc.yaml
- cluster.yaml - database.yaml
- oidc.yaml

32
apps/immich/oidc.yaml Normal file
View File

@@ -0,0 +1,32 @@
apiVersion: external-secrets.io/v1
kind: ExternalSecret
metadata:
name: immich-oidc
spec:
refreshInterval: 24h
secretStoreRef:
name: bitwarden
kind: ClusterSecretStore
target:
template:
engineVersion: v2
data:
"config.yaml": |-
oauth:
enabled: true
buttonText: Login with OAuth
clientId: "{{ .clientId }}"
clientSecret: "{{ .clientSecret }}"
defaultStorageQuota: 0
issuerUrl: https://authentik.sdg.moe/application/o/immich/.well-known/openid-configuration
scope: openid email profile
signingAlgorithm: RS256
profileSigningAlgorithm: none
storageLabelClaim: preferred_username
storageQuotaClaim: immich_quota
autoLaunch: true
passwordLogin:
enabled: false
dataFrom:
- extract:
key: immich-sso

View File

@@ -6,46 +6,42 @@ immich:
existingClaim: pictures existingClaim: pictures
redis: redis:
enabled: true enabled: true
server: server:
ingress: ingress:
main: main:
enabled: true enabled: true
className: cilium
annotations: annotations:
cert-manager.io/cluster-issuer: letsencrypt cert-manager.io/cluster-issuer: letsencrypt
acme.cert-manager.io/http01-edit-in-place: "true" acme.cert-manager.io/http01-edit-in-place: "true"
# proxy-body-size is set to 0 to remove the body limit on file uploads # proxy-body-size is set to 0 to remove the body limit on file uploads
nginx.ingress.kubernetes.io/proxy-body-size: "0" nginx.ingress.kubernetes.io/proxy-body-size: "0"
hosts: hosts:
- host: immich.sdg.moe - host: immich.sdg.moe
paths: paths:
- path: "/" - path: /
tls: tls:
- secretName: immich-tls - secretName: immich-tls
hosts: hosts:
- immich.sdg.moe - immich.sdg.moe
machine-learning: machine-learning:
persistence: persistence:
cache: cache:
type: pvc type: pvc
#
# env: env:
# DB_HOSTNAME: DB_URL: postgres://immich@postgres-cluster-rw.postgres/immich?sslcert=/pg/tls.crt&sslkey=/pg/tls.key&sslrootcert=/pg/ca.crt
# valueFrom: IMMICH_CONFIG_FILE: /config/config.yaml
# secretKeyRef: persistence:
# name: database-immich-user pg:
# key: HOST enabled: true
# DB_USERNAME: type: secret
# valueFrom: name: postgres-immich
# secretKeyRef: defaultMode: 0640
# name: database-immich-user
# key: LOGIN config:
# DB_PASSWORD: enabled: true
# valueFrom: type: secret
# secretKeyRef: name: immich-oidc
# name: database-immich-user
# key: PASSWORD
# DB_DATABASE_NAME:
# valueFrom:
# secretKeyRef:
# name: database-immich-user
# key: DATABASE_NAME

View File

@@ -9,6 +9,9 @@ spec:
storage: storage:
size: 10Gi size: 10Gi
backup:
retentionPolicy: 7d
certificates: certificates:
serverCASecret: postgres-server-cert serverCASecret: postgres-server-cert
serverTLSSecret: postgres-server-cert serverTLSSecret: postgres-server-cert
@@ -18,10 +21,13 @@ spec:
pg_hba: pg_hba:
- hostssl all all all cert - hostssl all all all cert
backup: # this is needed for immich
retentionPolicy: 7d shared_preload_libraries:
- "vchord.so"
imageName: ghcr.io/tensorchord/cloudnative-vectorchord:17.5-0.3.0
# this is here because no `Role` crd exsists yet.
# this is here because no `Role` crd exists yet.
# see https://github.com/cloudnative-pg/cloudnative-pg/issues/5341 # see https://github.com/cloudnative-pg/cloudnative-pg/issues/5341
managed: managed:
roles: roles:
@@ -34,3 +40,6 @@ spec:
- name: gitea - name: gitea
login: true login: true
disablePassword: true disablePassword: true
- name: immich
login: true
disablePassword: true

View File

@@ -44,11 +44,13 @@ externalIPs:
ingressController: ingressController:
enabled: true enabled: true
default: true
loadbalancerMode: shared loadbalancerMode: shared
service: service:
annotations: annotations:
lbipam.cilium.io/ips: 192.168.0.201 lbipam.cilium.io/ips: 192.168.0.201
gatewayAPI: gatewayAPI:
enabled: true enabled: true
operator: operator: