apiVersion: v1 kind: Service metadata: name: paperless namespace: paperless labels: app.kubernetes.io/name: paperless spec: selector: app.kubernetes.io/name: paperless ports: - name: http port: 8000 targetPort: http --- apiVersion: apps/v1 kind: Deployment metadata: name: paperless namespace: paperless labels: app.kubernetes.io/name: paperless spec: replicas: 1 strategy: type: Recreate selector: matchLabels: app.kubernetes.io/name: paperless template: metadata: labels: app.kubernetes.io/name: paperless spec: enableServiceLinks: false containers: - name: paperless image: ghcr.io/paperless-ngx/paperless-ngx:3.2.1 ports: - name: http containerPort: 8000 env: - name: PAPERLESS_URL value: https://papers.forust.xyz - name: PAPERLESS_ALLOWED_HOSTS value: papers.forust.xyz,papers.workstation.internal - name: PAPERLESS_CSRF_TRUSTED_ORIGINS value: https://papers.forust.xyz,https://papers.workstation.internal - name: PAPERLESS_TIME_ZONE value: Europe/Bratislava - name: PAPERLESS_REDIS value: redis://paperless-valkey:6379 - name: PAPERLESS_DBENGINE value: postgresql - name: PAPERLESS_DBHOST value: postgres.database.svc.cluster.local - name: PAPERLESS_DBNAME value: paperless - name: PAPERLESS_DBUSER value: paperless - name: PAPERLESS_DBPASS valueFrom: secretKeyRef: name: paperless-secrets key: PAPERLESS_DB_PASSWORD - name: PAPERLESS_OCR_LANGUAGE value: rus+eng - name: PAPERLESS_OCR_LANGUAGES value: rus - name: PAPERLESS_TASK_WORKERS value: "1" - name: PAPERLESS_ADMIN_USER value: admin - name: PAPERLESS_SECRET_KEY valueFrom: secretKeyRef: name: paperless-secrets key: PAPERLESS_SECRET_KEY - name: PAPERLESS_ADMIN_PASSWORD valueFrom: secretKeyRef: name: paperless-secrets key: PAPERLESS_ADMIN_PASSWORD volumeMounts: - name: documents mountPath: /usr/src/paperless/data subPath: data - name: documents mountPath: /usr/src/paperless/media subPath: media - name: documents mountPath: /usr/src/paperless/export subPath: export - name: documents mountPath: /usr/src/paperless/consume subPath: consume startupProbe: httpGet: path: / port: http httpHeaders: - name: Host value: papers.workstation.internal failureThreshold: 60 periodSeconds: 10 timeoutSeconds: 5 readinessProbe: httpGet: path: / port: http httpHeaders: - name: Host value: papers.workstation.internal periodSeconds: 10 timeoutSeconds: 5 livenessProbe: httpGet: path: / port: http httpHeaders: - name: Host value: papers.workstation.internal periodSeconds: 30 timeoutSeconds: 5 resources: requests: cpu: 100m memory: 512Mi limits: cpu: "2" memory: 2Gi volumes: - name: documents persistentVolumeClaim: claimName: paperless-data --- apiVersion: v1 kind: PersistentVolumeClaim metadata: name: paperless-data namespace: paperless spec: accessModes: - ReadWriteOnce storageClassName: local-path-retain resources: requests: storage: 50Gi --- apiVersion: v1 kind: Service metadata: name: paperless-valkey namespace: paperless labels: app.kubernetes.io/name: paperless-valkey spec: selector: app.kubernetes.io/name: paperless-valkey ports: - name: redis port: 6379 targetPort: redis --- apiVersion: apps/v1 kind: Deployment metadata: name: paperless-valkey namespace: paperless labels: app.kubernetes.io/name: paperless-valkey spec: replicas: 1 strategy: type: Recreate selector: matchLabels: app.kubernetes.io/name: paperless-valkey template: metadata: labels: app.kubernetes.io/name: paperless-valkey spec: containers: - name: valkey image: valkey/valkey:9.0.3-alpine args: - valkey-server - --save - "" - --appendonly - "no" ports: - name: redis containerPort: 6379 readinessProbe: exec: command: ["valkey-cli", "ping"] periodSeconds: 10 livenessProbe: exec: command: ["valkey-cli", "ping"] periodSeconds: 30 resources: requests: cpu: 25m memory: 64Mi limits: cpu: 250m memory: 256Mi