Files
feedc0de 317a632f4b
Validate, publish and promote Paperless-ngx / chart (push) Successful in 20s
Preserve staged Paperless imports across pod replacements
2026-10-28 14:04:43 +01:00

34 lines
1.8 KiB
Markdown

# Paperless-ngx Helm chart
This independent chart packages the upstream Paperless-ngx image without bundling
PostgreSQL or Valkey. It declares the Paperless Deployment, Service, Ingress,
probes, Secret references, and optional PVCs. The chart Git tag follows the
upstream application release (`v3.3.2`); later chart-only commits append Git
describe's count and hash. The default image tag comes from `appVersion`.
Supply existing Secret names for the Paperless key and PostgreSQL password.
The chart never renders credentials. Set `persistence.data.existingClaim` and
`persistence.runtime.existingClaim` to retain existing claims. The shared data
claim may also be mounted by a separate scanner release. Scheduling affinity,
tolerations, OCR worker count, and cluster hostname are values, not chart
constants. The homelab deployment is in
[homelab-gitops/apps/paperless](https://code.brunner.ninja/feedc0de/homelab-gitops/src/branch/main/apps/paperless).
Uploads and PDF-edit inputs are staged in the data claim's `scratch` subdirectory,
mounted at `/tmp/paperless`, so a pod replacement does not erase queued inputs.
Use persistent Valkey storage too: the database task list is history, not a
replacement for lost broker messages. Drain active tasks before upgrades; Celery
does not automatically resume every task interrupted after it has started.
```sh
helm repo add brunner.ninja https://brunner.ninja/charts
helm repo update brunner.ninja
helm upgrade --install paperless brunner.ninja/paperless-ngx \
--namespace paperless-ngx --create-namespace -f values.yaml --wait --timeout 15m
```
For local testing run `./test.sh`; `./install.sh values.yaml` uses the current
Kubernetes context and the chart in this checkout. CI publishes the chart,
then promotes only its chart version to GitOps. Required Actions secrets are
`PACKAGE_USERNAME`, `PACKAGE_TOKEN`, and `GITOPS_TOKEN`.