Merge pull request #20 from aggarwalakshun/paperless

feat: add paperless-ngx deployment, services, and persistent volume claims
This commit is contained in:
aggarwalakshun
2025-04-18 05:32:26 +05:30
committed by GitHub
4 changed files with 143 additions and 0 deletions

View File

@@ -0,0 +1,28 @@
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: paperless-ngx-db
namespace: default
spec:
selector:
matchLabels:
app: paperless-ngx-db
template:
metadata:
labels:
app: paperless-ngx-db
spec:
containers:
- name: paperless-ngx-db
image: docker.io/library/redis:7
ports:
- containerPort: 6379
volumeMounts:
- name: redis
mountPath: /data
volumes:
- name: redis
persistentVolumeClaim:
claimName: longhorn-paperless-redis

View File

@@ -0,0 +1,29 @@
---
apiVersion: v1
kind: Service
metadata:
name: paperless-ngx-service
namespace: default
spec:
type: NodePort
selector:
app: paperless-ngx
ports:
- port: 8000
targetPort: 8000
nodePort: 8001
protocol: TCP
---
apiVersion: v1
kind: Service
metadata:
name: paperless-ngx-db-service
namespace: default
spec:
selector:
app: paperless-ngx-db
ports:
- protocol: TCP
port: 6379
targetPort: 6379

View File

@@ -0,0 +1,59 @@
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: paperless-ngx
namespace: default
spec:
selector:
matchLabels:
app: paperless-ngx
template:
metadata:
labels:
app: paperless-ngx
spec:
initContainers:
- name: wait-for-db
image: busybox
command:
- sh
- -c
- |
until nc -z -v -w30 paperless-ngx-db-service 6379; do
echo "Waiting for database to be ready..."
sleep 2
done
containers:
- name: paperless-ngx
image: ghcr.io/paperless-ngx/paperless-ngx:2.15.1
ports:
- containerPort: 8000
env:
- name: PAPERLESS_REDIS
value: "redis://paperless-ngx-db-service:6379"
- name: PAPERLESS_URL
value: "https://ngx.akshun-lab.uk"
- name: PAPERLESS_CSRF_TRUSTED_ORIGINS
value: "https://*.akshun-lab.uk"
- name: PAPERLESS_CORS_ALLOWED_HOSTS
value: "https://ngx.akshun-lab.uk"
- name: PAPERLESS_TIME_ZONE
value: "Asia/Kolkata"
volumeMounts:
- 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
volumes:
- name: data
persistentVolumeClaim:
claimName: longhorn-paperless-data

View File

@@ -0,0 +1,27 @@
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: longhorn-paperless-data
namespace: default
spec:
accessModes:
- ReadWriteMany
storageClassName: longhorn
resources:
requests:
storage: 1Gi
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: longhorn-paperless-redis
namespace: default
spec:
accessModes:
- ReadWriteMany
storageClassName: longhorn
resources:
requests:
storage: 1Gi