diff --git a/paperless.yaml b/paperless.yaml new file mode 100644 index 0000000..f4d15a2 --- /dev/null +++ b/paperless.yaml @@ -0,0 +1,333 @@ +--- +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 +--- +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 +--- +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 +--- +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 + diff --git a/redis.yaml b/redis.yaml new file mode 100644 index 0000000..58cdf59 --- /dev/null +++ b/redis.yaml @@ -0,0 +1,81 @@ +--- +apiVersion: apps/v1 +kind: Deployment +metadata: + annotations: + kompose.cmd: kompose convert -f redis_docker.yaml + kompose.version: 1.35.0 (9532ceef3) + labels: + app: redis + name: redis +spec: + replicas: 1 + selector: + matchLabels: + app: redis + strategy: + type: Recreate + template: + metadata: + annotations: + kompose.cmd: kompose convert -f redis_docker.yaml + kompose.version: 1.35.0 (9532ceef3) + labels: + app: redis + spec: + containers: + - image: redis:alpine + name: redis + ports: + - containerPort: 6379 + protocol: TCP + volumeMounts: + - mountPath: /data + name: redis-data-volume + restartPolicy: Always + volumes: + - persistentVolumeClaim: + claimName: redis-data-pvc + name: redis-data-volume +--- +apiVersion: v1 +kind: Service +metadata: + labels: + app: redis + name: redis-svc +spec: + ports: + - name: "6379" + port: 6379 + targetPort: 6379 + selector: + app: redis +--- +apiVersion: v1 +kind: PersistentVolume +metadata: + name: redis-data-pv +spec: + capacity: + storage: 100Gi + accessModes: + - ReadWriteOnce + persistentVolumeReclaimPolicy: Retain + storageClassName: "" + nfs: + path: /mnt/raid/00_meta/05_service_config/redis/ + server: 192.168.1.146 +--- +apiVersion: v1 +kind: PersistentVolumeClaim +metadata: + name: redis-data-pvc +spec: + accessModes: + - ReadWriteOnce + resources: + requests: + storage: 100Gi + volumeName: redis-data-pv + storageClassName: ""