k8s/paperless.yaml

339 lines
7.7 KiB
YAML

---
apiVersion: apps/v1
kind: StatefulSet
metadata:
labels:
app: paperless
name: paperless
spec:
replicas: 1
selector:
matchLabels:
app: paperless
template:
metadata:
labels:
app: paperless
spec:
containers:
- image: ghcr.io/paperless-ngx/paperless-ngx:latest
env:
- name: PAPERLESS_PORT
value: "8000"
- name: PAPERLESS_REDIS
value: "redis://redis-svc:6379"
- name: PAPERLESS_DBENGINE
value: "mariadb"
- name: PAPERLESS_DBHOST
value: "mariadb-svc"
- name: PAPERLESS_DBPORT
value: "3306"
- name: PAPERLESS_TIKA_ENABLED
value: "1"
- name: PAPERLESS_TIKA_GOTENBERG_ENDPOINT
value: "http://paperless-gotenberg-svc:3000"
- name: PAPERLESS_TIKA_ENDPOINT
value: "http://paperless-tika-svc:9998"
- name: PAPERLESS_DEBUG
value: "true"
- name: PAPERLESS_ALLOWED_HOSTS
value: "paperless.xn--2dkua.xn--tckwe,paperless.argentumcation.com,localhost,192.168.1.153"
- name: PAPERLESS_CSRF_TRUSTED_ORIGINS
value: "https://paperless.xn--2dkua.xn--tckwe,https://paperless.argentumcation.com,http://localhost,http://192.168.1.153"
- name: PAPERLESS_CORS_ALLOWED_HOSTS
value: "https://paperless.xn--2dkua.xn--tckwe,https://paperless.argentumcation.com,http://localhost,http://192.168.1.153"
- name: PAPERLESS_DBUSER
valueFrom:
secretKeyRef:
key: MYSQL_USER
name: mariadb-secrets-env
- name: PAPERLESS_DBPASS
valueFrom:
secretKeyRef:
key: MYSQL_PASSWORD
name: mariadb-secrets-env
livenessProbe:
exec:
command:
- curl
- -f
- http://localhost:8000
failureThreshold: 5
periodSeconds: 120
timeoutSeconds: 10
name: paperless
ports:
- containerPort: 8000
protocol: TCP
volumeMounts:
- mountPath: /usr/src/paperless/data
name: paperless-data-volume
- mountPath: /usr/src/paperless/media
name: paperless-media-volume
- mountPath: /usr/src/paperless/export
name: paperless-export-volume
- mountPath: /usr/src/paperless/consume
name: paperless-consume-volume
restartPolicy: Always
volumes:
- name: paperless-data-volume
persistentVolumeClaim:
claimName: paperless-data-pvc
- name: paperless-media-volume
persistentVolumeClaim:
claimName: paperless-media-pvc
- name: paperless-export-volume
persistentVolumeClaim:
claimName: paperless-export-pvc
- name: paperless-consume-volume
persistentVolumeClaim:
claimName: paperless-consume-pvc
---
apiVersion: apps/v1
kind: Deployment
metadata:
labels:
app: gotenberg
name: gotenberg
spec:
replicas: 1
selector:
matchLabels:
app: gotenberg
template:
metadata:
labels:
app: gotenberg
spec:
containers:
- args:
- gotenberg
- --chromium-disable-javascript=true
- --chromium-allow-list=file:///tmp/.*
image: docker.io/gotenberg/gotenberg:7.6
name: paperless-gotenberg
restartPolicy: Always
---
apiVersion: apps/v1
kind: Deployment
metadata:
labels:
app: tika
name: tika
spec:
replicas: 1
selector:
matchLabels:
app: tika
template:
metadata:
labels:
app: tika
spec:
containers:
- image: docker.io/apache/tika:latest
name: paperless-tika
restartPolicy: Always
---
apiVersion: v1
kind: Service
metadata:
labels:
app: paperless
name: paperless-svc
spec:
ports:
- name: "8000"
port: 8000
targetPort: 8000
selector:
app: paperless
---
apiVersion: v1
kind: Service
metadata:
labels:
app: paperless
name: paperless-gotenberg-svc
spec:
ports:
- name: "3000"
port: 3000
targetPort: 3000
selector:
app: paperless
---
apiVersion: v1
kind: Service
metadata:
labels:
app: paperless
name: paperless-tika-svc
spec:
ports:
- name: "9998"
port: 9998
targetPort: 9998
selector:
app: paperless
---
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: paperless-http
annotations:
traefik.ingress.kubernetes.io/router.entrypoints: web
spec:
rules:
- host: paperless.reticulum.lan
http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: paperless-svc
port:
number: 8000
- host: paperless.argentumcation.com
http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: paperless-svc
port:
number: 8000
- host: paperless.xn--2dkua.xn--tckwe
http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: paperless-svc
port:
number: 8000
---
apiVersion: v1
kind: PersistentVolume
metadata:
name: paperless-data-pv
spec:
capacity:
storage: 100Gi
accessModes:
- ReadWriteOnce
persistentVolumeReclaimPolicy: Retain
storageClassName: ""
nfs:
path: /mnt/raid/00_meta/02_services/paperless/data
server: 192.168.1.146
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
labels:
app: paperless-data-pvc
name: paperless-data-pvc
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 100Mi
volumeName: paperless-data-pv
storageClassName: ""
---
apiVersion: v1
kind: PersistentVolume
metadata:
name: paperless-media-pv
spec:
capacity:
storage: 100Gi
accessModes:
- ReadWriteOnce
persistentVolumeReclaimPolicy: Retain
storageClassName: ""
nfs:
path: /mnt/raid/40_etc/41_docs/paperless/media
server: 192.168.1.146
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
labels:
app: paperless-media-pvc
name: paperless-media-pvc
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 100Mi
volumeName: paperless-media-pv
storageClassName: ""
---
apiVersion: v1
kind: PersistentVolume
metadata:
name: paperless-export-pv
spec:
capacity:
storage: 100Gi
accessModes:
- ReadWriteOnce
persistentVolumeReclaimPolicy: Retain
storageClassName: ""
nfs:
path: /mnt/raid/40_etc/41_docs/paperless/export
server: 192.168.1.146
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
labels:
app: paperless-export-pvc
name: paperless-export-pvc
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 100Mi
storageClassName: ""
volumeName: paperless-export-pv
---
apiVersion: v1
kind: PersistentVolume
metadata:
name: paperless-consume-pv
spec:
capacity:
storage: 100Gi
accessModes:
- ReadWriteOnce
persistentVolumeReclaimPolicy: Retain
storageClassName: ""
nfs:
path: /mnt/raid/40_etc/41_docs/paperless/consume
server: 192.168.1.146
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
labels:
app: paperless-consume-pvc
name: paperless-consume-pvc
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 100Mi
storageClassName: ""
volumeName: paperless-consume-pv