Files
homeserver/kubernetes/paperless-ngx/manifest.yaml
Taqi Tahmid 2ee0c95869
All checks were successful
ci/woodpecker/push/demo-workflow Pipeline was successful
kubernetes: add and update new and existing projects
2025-10-05 16:32:56 +03:00

196 lines
4.0 KiB
YAML

apiVersion: v1
kind: Namespace
metadata:
name: paperless-ngx
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: redis-data
namespace: paperless-ngx
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 1Gi
---
apiVersion: v1
kind: ConfigMap
metadata:
name: paperless-config
namespace: paperless-ngx
data:
PAPERLESS_REDIS: "redis://redis:6379"
PAPERLESS_URL: "https://${PAPERLESS_HOST}"
PAPERLESS_TIME_ZONE: "Europe/Helsinki"
PAPERLESS_OCR_LANGUAGE: "eng"
PAPERLESS_SECRET_KEY: "change-me-to-a-secure-secret-key"
PAPERLESS_CSRF_TRUSTED_ORIGINS: "https://${PAPERLESS_HOST}"
PAPERLESS_USE_X_FORWARD_HOST: "true"
PAPERLESS_USE_X_FORWARD_PORT: "true"
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: paperless-data
namespace: paperless-ngx
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 5Gi
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: paperless-media
namespace: paperless-ngx
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 5Gi
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: redis
namespace: paperless-ngx
spec:
replicas: 1
selector:
matchLabels:
app: redis
template:
metadata:
labels:
app: redis
spec:
containers:
- name: redis
image: redis:7
ports:
- containerPort: 6379
volumeMounts:
- name: redis-data
mountPath: /data
resources:
requests:
memory: "128Mi"
cpu: "50m"
limits:
memory: "256Mi"
cpu: "200m"
volumes:
- name: redis-data
persistentVolumeClaim:
claimName: redis-data
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: paperless-ngx
namespace: paperless-ngx
spec:
replicas: 1
selector:
matchLabels:
app: paperless-ngx
template:
metadata:
labels:
app: paperless-ngx
spec:
containers:
- name: paperless-ngx
image: ghcr.io/paperless-ngx/paperless-ngx:latest
ports:
- containerPort: 8000
envFrom:
- configMapRef:
name: paperless-config
volumeMounts:
- name: paperless-data
mountPath: /usr/src/paperless/data
- name: paperless-media
mountPath: /usr/src/paperless/media
resources:
requests:
memory: "512Mi"
cpu: "200m"
limits:
memory: "2Gi"
cpu: "1000m"
livenessProbe:
httpGet:
path: /
port: 8000
initialDelaySeconds: 60
periodSeconds: 30
readinessProbe:
httpGet:
path: /
port: 8000
initialDelaySeconds: 30
periodSeconds: 10
volumes:
- name: paperless-data
persistentVolumeClaim:
claimName: paperless-data
- name: paperless-media
persistentVolumeClaim:
claimName: paperless-media
---
apiVersion: v1
kind: Service
metadata:
name: redis
namespace: paperless-ngx
spec:
selector:
app: redis
ports:
- port: 6379
targetPort: 6379
---
apiVersion: v1
kind: Service
metadata:
name: paperless-ngx
namespace: paperless-ngx
spec:
selector:
app: paperless-ngx
ports:
- port: 8000
targetPort: 8000
type: ClusterIP
---
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: paperless-ngx-ingress
namespace: paperless-ngx
annotations:
cert-manager.io/cluster-issuer: "acme-issuer"
spec:
ingressClassName: nginx
tls:
- hosts:
- "${PAPERLESS_HOST}"
secretName: paperless-tls
rules:
- host: "${PAPERLESS_HOST}"
http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: paperless-ngx
port:
number: 8000