add gotenberg, tika and paperless-ngx manifests
All checks were successful
Validate Kubernetes Manifests / kubeconform (pull_request) Successful in 15s

This commit is contained in:
2025-12-28 10:33:05 +05:30
parent e2cec59dcc
commit 4a51c14110
9 changed files with 237 additions and 0 deletions

View File

@@ -0,0 +1,35 @@
---
apiVersion: apps/v1
kind: StatefulSet
metadata:
name: paperless-ngx-db
namespace: tools
spec:
selector:
matchLabels:
app: paperless-ngx-db
serviceName: paperless-ngx-db
replicas: 1
template:
metadata:
labels:
app: paperless-ngx-db
spec:
containers:
- name: paperless-ngx-db
image: docker.io/library/redis:8
ports:
- containerPort: 6379
volumeMounts:
- name: paperless-ngx-db
mountPath: /data
subPath: redis
volumeClaimTemplates:
- metadata:
name: paperless-ngx-db
spec:
accessModes: ["ReadWriteOnce"]
resources:
requests:
storage: 500Mi
storageClassName: longhorn

View File

@@ -0,0 +1,27 @@
---
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: paperless-ngx-ingress
namespace: tools
annotations:
cert-manager.io/cluster-issuer: letsencrypt-cloudflare
traefik.ingress.kubernetes.io/router.middlewares: tools-authelia@kubernetescrd
traefik.ingress.kubernetes.io/router.entrypoints: websecure
spec:
ingressClassName: traefik
tls:
- hosts:
- ngx.akshun-lab.cc
secretName: paperless-ngx-tls
rules:
- host: ngx.akshun-lab.cc
http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: paperless-ngx-service
port:
number: 8000

View File

@@ -0,0 +1,26 @@
---
apiVersion: v1
kind: Service
metadata:
name: paperless-ngx-service
namespace: tools
spec:
selector:
app: paperless-ngx
ports:
- port: 8000
targetPort: 8000
---
apiVersion: v1
kind: Service
metadata:
name: paperless-ngx-db
namespace: tools
spec:
selector:
app: paperless-ngx-db
ports:
- port: 6379
targetPort: 6379
clusterIP: none

View File

@@ -0,0 +1,62 @@
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: paperless-ngx
namespace: tools
spec:
strategy:
type: Recreate
selector:
matchLabels:
app: paperless-ngx
template:
metadata:
labels:
app: paperless-ngx
spec:
containers:
- name: paperless-ngx
image: ghcr.io/paperless-ngx/paperless-ngx:2.20.3
readinessProbe:
exec:
command:
- bash
- -c
- |
(echo >/dev/tcp/paperless-ngx-db.tools.svc.cluster.local/6379)
initialDelaySeconds: 5
periodSeconds: 5
failureThreshold: 3
ports:
- containerPort: 8000
env:
- name: PAPERLESS_REDIS
value: "redis://paperless-ngx-db.tools.svc.cluster.local:6379"
- name: PAPERLESS_URL
values: "https://ngx.akshun-lab.cc"
- name: PAPERLESS_TIME_ZONE
value: "Asia/Kolkata"
- name: PAPERLESS_TIKA_ENABLED
value: "1"
- name: PAPERLESS_TIKA_ENDPOINT
value: "http://tika-service.tools.svc.cluster.local:9998"
- name: PAPERLESS_TIKA_GOTENBERG_ENDPOINT
value: "http://gotenberg-service.tools.svc.cluster.local:3000"
volumeMounts:
- name: data
mountPath: /usr/src/paperless/data
subPath: data
- name: data
mountPath: usr/src/paperless/media
subPath: media
- name: data
mountPath: /usr/src/paperless/export
subPath: export
- name: data
mountPath: /usr/src/paperless/consume
subPath: consume
volumes:
- name: data
persistentVolumeClaim:
claimName: paperless-longhorn

View File

@@ -0,0 +1,14 @@
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: paperless-longhorn
namespace: tools
spec:
accessModes:
- ReadWriteOnce
volumeMode: Filesystem
resources:
requests:
storage: 1Gi
storageClassName: longhorn