--- apiVersion: apps/v1 kind: Deployment metadata: name: paperless-ai labels: app: paperless-ai spec: replicas: 1 selector: matchLabels: app: paperless-ai template: metadata: labels: app: paperless-ai spec: nodeSelector: kubernetes.io/hostname: nas.homenet 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: 512Mi cpu: 500m limits: memory: 1024Mi cpu: 2000m #livenessProbe: # httpGet: # path: / # port: 8000 # initialDelaySeconds: 30 # periodSeconds: 10 #readinessProbe: # httpGet: # path: / # port: 8000 # initialDelaySeconds: 5 # periodSeconds: 5 #volumeMounts: # - name: data # mountPath: /app/data volumes: - name: data persistentVolumeClaim: claimName: paperless-ai-data --- 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: v1 kind: PersistentVolumeClaim metadata: name: paperless-ai-data namespace: paperless spec: accessModes: - ReadWriteOnce storageClassName: hostpath resources: requests: storage: 10Gi --- apiVersion: networking.k8s.io/v1 kind: Ingress metadata: name: paperless-ai-ingress 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: ai-docs.hexor.cy http: paths: - path: / pathType: Prefix backend: service: name: paperless-ai port: number: 3000 tls: - secretName: docs-tls hosts: - '*.hexor.cy'