initial migration
This commit is contained in:
51
apps/immich/ingress.yaml
Normal file
51
apps/immich/ingress.yaml
Normal file
@@ -0,0 +1,51 @@
|
||||
apiVersion: traefik.containo.us/v1alpha1
|
||||
kind: Middleware
|
||||
metadata:
|
||||
name: stripprefix
|
||||
spec:
|
||||
stripPrefix:
|
||||
prefixes:
|
||||
- /api
|
||||
---
|
||||
apiVersion: traefik.containo.us/v1alpha1
|
||||
kind: Middleware
|
||||
metadata:
|
||||
name: websocket
|
||||
spec:
|
||||
headers:
|
||||
customRequestHeaders:
|
||||
X-Forwarded-Proto: "https"
|
||||
# enable websockets
|
||||
Upgrade: "websocket"
|
||||
---
|
||||
apiVersion: traefik.containo.us/v1alpha1
|
||||
kind: IngressRoute
|
||||
metadata:
|
||||
name: immich-ingressroute
|
||||
|
||||
spec:
|
||||
entryPoints:
|
||||
- websecure
|
||||
routes:
|
||||
- match: Host(`immich.kluster.moll.re`) && PathPrefix(`/api/`)
|
||||
kind: Rule
|
||||
services:
|
||||
- name: immich-server
|
||||
port: 3001
|
||||
passHostHeader: true
|
||||
middlewares:
|
||||
- name: stripprefix
|
||||
- name: websocket
|
||||
|
||||
- match: Host(`immich.kluster.moll.re`) && PathPrefix(`/`)
|
||||
kind: Rule
|
||||
services:
|
||||
- name: immich-web
|
||||
port: 3000
|
||||
passHostHeader: true
|
||||
middlewares:
|
||||
- name: websocket
|
||||
|
||||
tls:
|
||||
certResolver: default-tls
|
||||
|
36
apps/immich/pvc.yaml
Normal file
36
apps/immich/pvc.yaml
Normal file
@@ -0,0 +1,36 @@
|
||||
---
|
||||
apiVersion: v1
|
||||
kind: PersistentVolume
|
||||
metadata:
|
||||
name: immich-nfs
|
||||
labels:
|
||||
directory: immich
|
||||
spec:
|
||||
storageClassName: fast
|
||||
capacity:
|
||||
storage: "50Gi"
|
||||
volumeMode: Filesystem
|
||||
accessModes:
|
||||
- ReadWriteOnce
|
||||
nfs:
|
||||
path: /kluster/immich
|
||||
# path: /kluster/immich
|
||||
server: 192.168.1.157
|
||||
---
|
||||
apiVersion: v1
|
||||
kind: PersistentVolumeClaim
|
||||
metadata:
|
||||
name: immich-nfs
|
||||
spec:
|
||||
storageClassName: fast
|
||||
accessModes:
|
||||
- ReadWriteOnce
|
||||
resources:
|
||||
requests:
|
||||
storage: "50Gi"
|
||||
selector:
|
||||
matchLabels:
|
||||
directory: immich
|
||||
|
||||
|
||||
|
136
apps/immich/values.yaml
Normal file
136
apps/immich/values.yaml
Normal file
@@ -0,0 +1,136 @@
|
||||
## This chart relies on the common library chart from bjw-s
|
||||
## You can find it at https://github.com/bjw-s/helm-charts/tree/main/charts/library/common
|
||||
## Refer there for more detail about the supported values
|
||||
|
||||
# These entries are shared between all the Immich components
|
||||
|
||||
env:
|
||||
REDIS_HOSTNAME: '{{ printf "%s-redis-master" .Release.Name }}'
|
||||
DB_HOSTNAME: "{{ .Release.Name }}-postgresql"
|
||||
DB_USERNAME: "{{ .Values.postgresql.global.postgresql.auth.username }}"
|
||||
DB_DATABASE_NAME: "{{ .Values.postgresql.global.postgresql.auth.database }}"
|
||||
# -- You should provide your own secret outside of this helm-chart and use `postgresql.global.postgresql.auth.existingSecret` to provide credentials to the postgresql instance
|
||||
DB_PASSWORD: "{{ .Values.postgresql.global.postgresql.auth.password }}"
|
||||
TYPESENSE_ENABLED: "{{ .Values.typesense.enabled }}"
|
||||
TYPESENSE_API_KEY: "{{ .Values.typesense.env.TYPESENSE_API_KEY }}"
|
||||
TYPESENSE_HOST: '{{ printf "%s-typesense" .Release.Name }}'
|
||||
IMMICH_WEB_URL: '{{ printf "http://%s-web:3000" .Release.Name }}'
|
||||
IMMICH_SERVER_URL: '{{ printf "http://%s-server:3001" .Release.Name }}'
|
||||
IMMICH_MACHINE_LEARNING_URL: '{{ printf "http://%s-machine-learning:3003" .Release.Name }}'
|
||||
|
||||
image:
|
||||
tag: v1.80.0
|
||||
|
||||
immich:
|
||||
persistence:
|
||||
# Main data store for all photos shared between different components.
|
||||
library:
|
||||
# Automatically creating the library volume is not supported by this chart
|
||||
# You have to specify an existing PVC to use
|
||||
existingClaim: immich-nfs
|
||||
|
||||
# Dependencies
|
||||
|
||||
postgresql:
|
||||
enabled: true
|
||||
global:
|
||||
postgresql:
|
||||
auth:
|
||||
username: immich
|
||||
database: immich
|
||||
password: immich
|
||||
|
||||
redis:
|
||||
enabled: true
|
||||
architecture: standalone
|
||||
auth:
|
||||
enabled: false
|
||||
|
||||
typesense:
|
||||
enabled: true
|
||||
env:
|
||||
TYPESENSE_DATA_DIR: /tsdata
|
||||
TYPESENSE_API_KEY: typesense
|
||||
persistence:
|
||||
tsdata:
|
||||
# Enabling typesense persistence is recommended to avoid slow reindexing
|
||||
enabled: true
|
||||
accessMode: ReadWriteOnce
|
||||
size: 1Gi
|
||||
# storageClass: storage-class
|
||||
image:
|
||||
repository: docker.io/typesense/typesense
|
||||
tag: 0.24.0
|
||||
pullPolicy: IfNotPresent
|
||||
|
||||
# Immich components
|
||||
|
||||
server:
|
||||
enabled: true
|
||||
image:
|
||||
repository: ghcr.io/immich-app/immich-server
|
||||
pullPolicy: IfNotPresent
|
||||
|
||||
microservices:
|
||||
enabled: true
|
||||
env:
|
||||
REVERSE_GEOCODING_DUMP_DIRECTORY: /geodata-cache
|
||||
persistence:
|
||||
geodata-cache:
|
||||
enabled: true
|
||||
size: 1Gi
|
||||
# Optional: Set this to pvc to avoid downloading the geodata every start.
|
||||
type: emptyDir
|
||||
accessMode: ReadWriteMany
|
||||
# storageClass: your-class
|
||||
image:
|
||||
repository: ghcr.io/immich-app/immich-server
|
||||
pullPolicy: IfNotPresent
|
||||
|
||||
machine-learning:
|
||||
enabled: true
|
||||
image:
|
||||
repository: ghcr.io/immich-app/immich-machine-learning
|
||||
pullPolicy: IfNotPresent
|
||||
env:
|
||||
TRANSFORMERS_CACHE: /cache
|
||||
persistence:
|
||||
cache:
|
||||
enabled: true
|
||||
size: 10Gi
|
||||
# Optional: Set this to pvc to avoid downloading the ML models every start.
|
||||
type: emptyDir
|
||||
accessMode: ReadWriteMany
|
||||
# storageClass: your-class
|
||||
|
||||
web:
|
||||
enabled: true
|
||||
image:
|
||||
repository: ghcr.io/immich-app/immich-web
|
||||
pullPolicy: IfNotPresent
|
||||
persistence:
|
||||
library:
|
||||
enabled: false
|
||||
|
||||
proxy:
|
||||
enabled: true
|
||||
image:
|
||||
repository: ghcr.io/immich-app/immich-proxy
|
||||
pullPolicy: IfNotPresent
|
||||
|
||||
persistence:
|
||||
library:
|
||||
enabled: false
|
||||
|
||||
ingress:
|
||||
main:
|
||||
enabled: false
|
||||
annotations:
|
||||
# proxy-body-size is set to 0 to remove the body limit on file uploads
|
||||
nginx.ingress.kubernetes.io/proxy-body-size: "0"
|
||||
hosts:
|
||||
- host: immich.local
|
||||
paths:
|
||||
- path: "/"
|
||||
tls: []
|
||||
|
Reference in New Issue
Block a user