apiVersion: v1 kind: PersistentVolumeClaim metadata: name: paperless-ngx namespace: paperless-ngx labels: app.kubernetes.io/name: data app.kubernetes.io/component: paperless-ngx app.kubernetes.io/instance: paperless-ngx app.kubernetes.io/part-of: paperless-ngx spec: accessModes: - ReadWriteOnce resources: requests: storage: 20Gi --- apiVersion: v1 kind: Service metadata: labels: app.kubernetes.io/name: paperless-ngx app.kubernetes.io/component: paperless-ngx app.kubernetes.io/instance: paperless-ngx app.kubernetes.io/part-of: paperless-ngx name: paperless-ngx namespace: paperless-ngx spec: ports: - name: http port: 8000 selector: app.kubernetes.io/name: paperless-ngx app.kubernetes.io/component: paperless-ngx app.kubernetes.io/instance: paperless-ngx type: ClusterIP --- apiVersion: apps/v1 kind: StatefulSet metadata: name: paperless-ngx namespace: paperless-ngx labels: app.kubernetes.io/name: paperless-ngx app.kubernetes.io/component: paperless-ngx app.kubernetes.io/instance: paperless-ngx app.kubernetes.io/part-of: paperless-ngx spec: serviceName: paperless-ngx selector: matchLabels: app.kubernetes.io/name: paperless-ngx app.kubernetes.io/component: paperless-ngx app.kubernetes.io/instance: paperless-ngx template: metadata: labels: app.kubernetes.io/name: paperless-ngx app.kubernetes.io/component: paperless-ngx app.kubernetes.io/instance: paperless-ngx spec: containers: - name: paperless-ngx image: ghcr.io/paperless-ngx/paperless-ngx:1.11.3 imagePullPolicy: IfNotPresent env: - name: PAPERLESS_REDIS value: redis://redis:6379 - name: PAPERLESS_TIKA_ENABLED value: '1' - name: PAPERLESS_TIKA_GOTENBERG_ENDPOINT value: http://gotenberg:3000 - name: PAPERLESS_TIKA_ENDPOINT value: http://tika:9998 - name: PAPERLESS_ALLOWED_HOSTS value: '*' - name: PAPERLESS_ENABLE_HTTP_REMOTE_USER value: '1' - name: PAPERLESS_ENABLE_FLOWER value: 'true' ports: - name: http containerPort: 8000 - name: flower containerPort: 5555 startupProbe: httpGet: port: 8000 path: / failureThreshold: 30 timeoutSeconds: 3 periodSeconds: 3 initialDelaySeconds: 10 readinessProbe: httpGet: port: 8000 path: / failureThreshold: 5 timeoutSeconds: 10 periodSeconds: 30 securityContext: runAsNonRoot: true readOnlyRootFilesystem: true runAsUser: 1000 runAsGroup: 1000 volumeMounts: - name: cmd mountPath: /usr/local/bin/paperless_cmd.sh subPath: paperless_cmd.sh - 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 - name: tmp mountPath: /tmp - name: run mountPath: /run/supervisord - name: logs mountPath: /var/log/supervisord subPath: supervisord securityContext: fsGroup: 1000 volumes: - name: cmd configMap: name: paperless-cmd defaultMode: 0755 - name: data persistentVolumeClaim: claimName: paperless-ngx - name: logs empytDir: - name: tmp emptyDir: medium: Memory - name: run emptyDir: medium: Memory