belle/photoprism/manifest.yml

178 lines
3.9 KiB
YAML

apiVersion: v1
kind: Namespace
metadata:
name: photoprism
---
apiVersion: v1
kind: Secret
metadata:
name: photoprism-secrets
namespace: photoprism
stringData:
PHOTOPRISM_ADMIN_PASSWORD: "Akzq#20!"
PHOTOPRISM_DATABASE_DSN: root:Akzq#20!@tcp(mariadb:3306)/photoprism?charset=utf8mb4,utf8&parseTime=true
---
apiVersion: apps/v1
kind: StatefulSet
metadata:
name: photoprism
namespace: photoprism
spec:
selector:
matchLabels:
app: photoprism
serviceName: photoprism
replicas: 1
template:
metadata:
labels:
app: photoprism
spec:
containers:
- name: photoprism
image: photoprism/photoprism:latest
env:
- name: PHOTOPRISM_UPLOAD_NSFW
value: "true"
- name: PHOTOPRISM_DETECT_NSFW
value: "true"
- name: PHOTOPRISM_DEBUG
value: "true"
- name: PHOTOPRISM_DATABASE_DRIVER
value: mariadb
- name: PHOTOPRISM_HTTP_HOST
value: 0.0.0.0
- name: PHOTOPRISM_HTTP_PORT
value: "2342"
envFrom:
- secretRef:
name: photoprism-secrets
optional: false
ports:
- containerPort: 2342
name: http
volumeMounts:
- mountPath: /photoprism/originals
name: originals
- mountPath: /photoprism/import
name: import
- mountPath: /photoprism/storage
name: storage
readinessProbe:
httpGet:
path: /api/v1/status
port: 2342
volumes:
- name: originals
hostPath:
path: /data/photoprism/originals
type: Directory
- name: import
hostPath:
path: /data/photoprism/import
type: Directory
- name: storage
hostPath:
path: /data/photoprism/storage
type: Directory
---
apiVersion: v1
kind: Service
metadata:
name: photoprism
namespace: photoprism
spec:
ports:
- name: http
port: 80
protocol: TCP
targetPort: 2342
selector:
app: photoprism
type: ClusterIP
---
apiVersion: v1
kind: Service
metadata:
namespace: photoprism
name: mariadb
spec:
ports:
- port: 3306
selector:
app: mariadb
clusterIP: None
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: mariadb
namespace: photoprism
spec:
selector:
matchLabels:
app: mariadb
strategy:
type: Recreate
template:
metadata:
labels:
app: mariadb
spec:
containers:
- image: mariadb
name: mariadb
env:
- name: MARIADB_ROOT_PASSWORD
value: "Akzq#20!"
- name: MARIADB_DATABASE
value: "photoprism"
ports:
- containerPort: 3306
name: mariadb
volumeMounts:
- name: mariadb-persistent-storage
mountPath: /var/lib/mariadb
volumes:
- name: mariadb-persistent-storage
persistentVolumeClaim:
claimName: mariadb-pv-claim
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: mariadb-pv-claim
namespace: photoprism
spec:
storageClassName: data-hostpath
volumeMode: Filesystem
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 100Gi
---
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: ingress-routes-photoprism
namespace: photoprism
annotations:
cert-manager.io/cluster-issuer: "letsencrypt-prod"
spec:
tls:
- hosts:
- photo.jsnet.io
secretName: tls-secret-photoprism
rules:
- host: photo.jsnet.io
http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: photoprism
port:
number: 80