From 43c0fdf2f237b261d64b61f9fb2770ff873f9163 Mon Sep 17 00:00:00 2001 From: AB Date: Wed, 21 Jan 2026 02:21:22 +0200 Subject: [PATCH] paperless-ai deploy --- k8s/apps/paperless/kustomization.yaml | 1 + k8s/apps/paperless/paperless-ai.yaml | 93 +++++++++++++++++++++++++++ 2 files changed, 94 insertions(+) create mode 100644 k8s/apps/paperless/paperless-ai.yaml diff --git a/k8s/apps/paperless/kustomization.yaml b/k8s/apps/paperless/kustomization.yaml index 9a82041..d20340d 100644 --- a/k8s/apps/paperless/kustomization.yaml +++ b/k8s/apps/paperless/kustomization.yaml @@ -4,6 +4,7 @@ kind: Kustomization resources: - app.yaml - external-secrets.yaml + - paperless-ai.yaml helmCharts: - name: paperless-ngx diff --git a/k8s/apps/paperless/paperless-ai.yaml b/k8s/apps/paperless/paperless-ai.yaml new file mode 100644 index 0000000..ffa090f --- /dev/null +++ b/k8s/apps/paperless/paperless-ai.yaml @@ -0,0 +1,93 @@ +--- +apiVersion: apps/v1 +kind: Deployment +metadata: + name: paperless-ai + namespace: paperless + labels: + app: paperless-ai +spec: + replicas: 1 + selector: + matchLabels: + app: paperless-ai + template: + metadata: + labels: + app: paperless-ai + spec: + containers: + - name: paperless-ai + image: clusterzx/paperless-ai:latest + imagePullPolicy: Always + ports: + - containerPort: 3000 + name: http + env: + - name: NODE_ENV + value: production + - name: PAPERLESS_AI_PORT + value: "3000" + resources: + requests: + memory: 256Mi + cpu: 100m + limits: + memory: 512Mi + cpu: 500m + livenessProbe: + httpGet: + path: /health + port: 3000 + initialDelaySeconds: 30 + periodSeconds: 10 + readinessProbe: + httpGet: + path: /health + port: 3000 + initialDelaySeconds: 5 + periodSeconds: 5 +--- +apiVersion: v1 +kind: Service +metadata: + name: paperless-ai + namespace: paperless + labels: + app: paperless-ai +spec: + type: ClusterIP + ports: + - port: 3000 + targetPort: 3000 + protocol: TCP + name: http + selector: + app: paperless-ai +--- +apiVersion: networking.k8s.io/v1 +kind: Ingress +metadata: + name: paperless-ai-ingress + namespace: paperless + annotations: + ingressClassName: traefik + cert-manager.io/cluster-issuer: letsencrypt + traefik.ingress.kubernetes.io/router.middlewares: kube-system-https-redirect@kubernetescrd + acme.cert-manager.io/http01-edit-in-place: "true" +spec: + rules: + - host: docs.hexor.cy + http: + paths: + - path: /ai + pathType: Prefix + backend: + service: + name: paperless-ai + port: + number: 3000 + tls: + - secretName: paperless-ai-tls + hosts: + - docs.hexor.cy