--- apiVersion: apps/v1 kind: Deployment metadata: labels: app: paperless name: paperless spec: replicas: 1 selector: matchLabels: app: paperless strategy: type: Recreate 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: configMapKeyRef: key: MYSQL_USER name: mariadb-secrets-env - name: PAPERLESS_DBPASS valueFrom: configMapKeyRef: 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: ghcr.io/paperless-ngx/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