From 4a51c1411051afeca7dfd2e06aa41891e5c4d3e4 Mon Sep 17 00:00:00 2001 From: aggarwalakshun Date: Sun, 28 Dec 2025 10:33:05 +0530 Subject: [PATCH] add gotenberg, tika and paperless-ngx manifests --- .../ipv6/tools/gotenberg/gotenberg-svc.yml | 12 ++++ clusters/ipv6/tools/gotenberg/gotenberg.yml | 30 +++++++++ .../tools/paperless-ngx/paperless-ngx-db.yml | 35 +++++++++++ .../paperless-ngx/paperless-ngx-ingress.yml | 27 ++++++++ .../tools/paperless-ngx/paperless-ngx-svc.yml | 26 ++++++++ .../tools/paperless-ngx/paperless-ngx.yml | 62 +++++++++++++++++++ .../tools/paperless-ngx/paperless-pvc.yml | 14 +++++ clusters/ipv6/tools/tika/tika-service.yml | 12 ++++ clusters/ipv6/tools/tika/tika.yml | 19 ++++++ 9 files changed, 237 insertions(+) create mode 100644 clusters/ipv6/tools/gotenberg/gotenberg-svc.yml create mode 100644 clusters/ipv6/tools/gotenberg/gotenberg.yml create mode 100644 clusters/ipv6/tools/paperless-ngx/paperless-ngx-db.yml create mode 100644 clusters/ipv6/tools/paperless-ngx/paperless-ngx-ingress.yml create mode 100644 clusters/ipv6/tools/paperless-ngx/paperless-ngx-svc.yml create mode 100644 clusters/ipv6/tools/paperless-ngx/paperless-ngx.yml create mode 100644 clusters/ipv6/tools/paperless-ngx/paperless-pvc.yml create mode 100644 clusters/ipv6/tools/tika/tika-service.yml create mode 100644 clusters/ipv6/tools/tika/tika.yml diff --git a/clusters/ipv6/tools/gotenberg/gotenberg-svc.yml b/clusters/ipv6/tools/gotenberg/gotenberg-svc.yml new file mode 100644 index 0000000..df62f37 --- /dev/null +++ b/clusters/ipv6/tools/gotenberg/gotenberg-svc.yml @@ -0,0 +1,12 @@ +apiVersion: v1 +kind: Service +metadata: + name: gotenberg-service + namespace: tools +spec: + selector: + app: gotenberg + type: ClusterIP + ports: + - port: 3000 + targetPort: 3000 diff --git a/clusters/ipv6/tools/gotenberg/gotenberg.yml b/clusters/ipv6/tools/gotenberg/gotenberg.yml new file mode 100644 index 0000000..daebdf7 --- /dev/null +++ b/clusters/ipv6/tools/gotenberg/gotenberg.yml @@ -0,0 +1,30 @@ +apiVersion: apps/v1 +kind: Deployment +metadata: + name: gotenberg + namespace: tools +spec: + selector: + matchLabels: + app: gotenberg + template: + metadata: + labels: + app: gotenberg + spec: + securityContext: + runAsUser: 1001 + containers: + - name: gotenberg + image: gotenberg/gotenberg:8.25 + command: + - sh + - -c + - | + gotenberg --chromium-disable-javascript=true --chromium-allow-list=file:///tmp/.* + ports: + - containerPort: 3000 + securityContext: + readOnlyRootFilesystem: false + allowPrivilegeEscalation: false + privileged: false diff --git a/clusters/ipv6/tools/paperless-ngx/paperless-ngx-db.yml b/clusters/ipv6/tools/paperless-ngx/paperless-ngx-db.yml new file mode 100644 index 0000000..b84e290 --- /dev/null +++ b/clusters/ipv6/tools/paperless-ngx/paperless-ngx-db.yml @@ -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 diff --git a/clusters/ipv6/tools/paperless-ngx/paperless-ngx-ingress.yml b/clusters/ipv6/tools/paperless-ngx/paperless-ngx-ingress.yml new file mode 100644 index 0000000..9c2f97e --- /dev/null +++ b/clusters/ipv6/tools/paperless-ngx/paperless-ngx-ingress.yml @@ -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 diff --git a/clusters/ipv6/tools/paperless-ngx/paperless-ngx-svc.yml b/clusters/ipv6/tools/paperless-ngx/paperless-ngx-svc.yml new file mode 100644 index 0000000..1b68fde --- /dev/null +++ b/clusters/ipv6/tools/paperless-ngx/paperless-ngx-svc.yml @@ -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 diff --git a/clusters/ipv6/tools/paperless-ngx/paperless-ngx.yml b/clusters/ipv6/tools/paperless-ngx/paperless-ngx.yml new file mode 100644 index 0000000..895e5b0 --- /dev/null +++ b/clusters/ipv6/tools/paperless-ngx/paperless-ngx.yml @@ -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 diff --git a/clusters/ipv6/tools/paperless-ngx/paperless-pvc.yml b/clusters/ipv6/tools/paperless-ngx/paperless-pvc.yml new file mode 100644 index 0000000..2a7034c --- /dev/null +++ b/clusters/ipv6/tools/paperless-ngx/paperless-pvc.yml @@ -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 diff --git a/clusters/ipv6/tools/tika/tika-service.yml b/clusters/ipv6/tools/tika/tika-service.yml new file mode 100644 index 0000000..0c666a5 --- /dev/null +++ b/clusters/ipv6/tools/tika/tika-service.yml @@ -0,0 +1,12 @@ +apiVersion: v1 +kind: Service +metadata: + name: tika-service + namespace: tools +spec: + type: ClusterIP + selector: + app: tika + ports: + - port: 9998 + targetPort: 9998 diff --git a/clusters/ipv6/tools/tika/tika.yml b/clusters/ipv6/tools/tika/tika.yml new file mode 100644 index 0000000..ba4bff0 --- /dev/null +++ b/clusters/ipv6/tools/tika/tika.yml @@ -0,0 +1,19 @@ +apiVersion: apps/v1 +kind: Deployment +metadata: + name: tika + namespace: tools +spec: + selector: + matchLabels: + app: tika + template: + metadata: + labels: + app: tika + spec: + containers: + - name: tika + image: apache/tika:3.2.3.0 + ports: + - containerPort: 9998