apiVersion: apps/v1 kind: Deployment metadata: name: paperless namespace: default spec: replicas: 1 selector: matchLabels: app: paperless strategy: type: Recreate template: metadata: labels: app: paperless spec: affinity: nodeAffinity: preferredDuringSchedulingIgnoredDuringExecution: - preference: matchExpressions: - key: kubernetes.io/hostname operator: In values: - iris weight: 100 containers: - env: - name: PUID value: '1000' - name: PGID value: '1000' - name: PAPERLESS_URL value: http://paperless.haven - name: PAPERLESS_TIME_ZONE value: America/Sao_Paulo - name: PAPERLESS_OCR_LANGUAGE value: por - name: PAPERLESS_OCR_LANGUAGES value: por - name: PAPERLESS_OCR_USER_ARGS value: '{"invalidate_digital_signatures": true}' - name: PAPERLESS_DBHOST value: postgresql.haven - name: PAPERLESS_DBNAME valueFrom: secretKeyRef: key: PAPERLESS_DBNAME name: paperless-secret - name: PAPERLESS_DBUSER valueFrom: secretKeyRef: key: PAPERLESS_DBUSER name: paperless-secret - name: PAPERLESS_DBPASSWORD valueFrom: secretKeyRef: key: PAPERLESS_DBPASSWORD name: paperless-secret - name: PAPERLESS_REDIS value: redis://redis.haven:6379 - name: PAPERLESS_PORT value: '8000' - name: PAPERLESS_SECRET_KEY valueFrom: secretKeyRef: key: PAPERLESS_SECRET_KEY name: paperless-secret image: ghcr.io/paperless-ngx/paperless-ngx:latest imagePullPolicy: Always name: paperless ports: - containerPort: 8000 name: paperless-port protocol: TCP resources: limits: cpu: '4' memory: 1Gi requests: cpu: 100m memory: 256Mi terminationMessagePath: /dev/termination-log terminationMessagePolicy: File volumeMounts: - mountPath: /usr/src/paperless/data name: paperless-data subPath: data - mountPath: /usr/src/paperless/media name: paperless-data subPath: media - mountPath: /usr/src/paperless/export name: paperless-data subPath: export - mountPath: /usr/src/paperless/consume name: paperless-data subPath: consume dnsPolicy: ClusterFirst restartPolicy: Always schedulerName: default-scheduler securityContext: {} terminationGracePeriodSeconds: 30 volumes: - name: paperless-data persistentVolumeClaim: claimName: paperless-data apiVersion: v1 kind: Service metadata: name: paperless namespace: default spec: internalTrafficPolicy: Cluster ipFamilies: - IPv4 ipFamilyPolicy: SingleStack ports: - port: 8000 protocol: TCP targetPort: paperless-port selector: app: paperless sessionAffinity: None type: ClusterIP apiVersion: networking.k8s.io/v1 kind: Ingress metadata: name: paperless namespace: default spec: ingressClassName: nginx rules: - host: paperless.haven http: paths: - backend: service: name: paperless port: number: 8000 path: / pathType: Prefix apiVersion: v1 kind: PersistentVolumeClaim metadata: name: paperless-data namespace: default spec: accessModes: - ReadWriteMany resources: limits: storage: 15Gi requests: storage: 5Gi storageClassName: nfs-client volumeMode: Filesystem