Skip to content

Commit

Permalink
✨ (paperless-ngx): Initial Paperless-ngx chart release
Browse files Browse the repository at this point in the history
  • Loading branch information
gabe565 committed Apr 3, 2023
1 parent b2d46e2 commit 4986ce5
Show file tree
Hide file tree
Showing 9 changed files with 384 additions and 0 deletions.
1 change: 1 addition & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -61,6 +61,7 @@ helm delete my-<chart-name>
| [monica <img src='https://raw.githubusercontent.com/monicahq/monica/main/public/img/monica.svg' alt='monica icon' width='18px' align='right' loading='lazy'>](charts/monica/) | Personal CRM. Remember everything about your friends, family and business relationships. |
| [nightscout <img src='https://raw.githubusercontent.com/gabe565/charts/main/charts/nightscout/icon.svg' alt='nightscout icon' width='18px' align='right' loading='lazy'>](charts/nightscout/) | Web-based CGM (Continuous Glucose Monitor) to allow multiple caregivers to remotely view a patient's glucose data in real time. |
| [obico <img src='https://raw.githubusercontent.com/gabe565/charts/main/charts/obico/icon.svg' alt='obico icon' width='18px' align='right' loading='lazy'>](charts/obico/) | Obico is a community-built, open-source smart 3D printing platform used by makers, enthusiasts, and tinkerers around the world. |
| [paperless-ngx <img src='https://raw.githubusercontent.com/paperless-ngx/paperless-ngx/b948750d558b58018d1d3393db145d162d44fceb/src-ui/src/assets/logo-notext.svg' alt='paperless-ngx icon' width='18px' align='right' loading='lazy'>](charts/paperless-ngx/) | A community-supported supercharged version of paperless: scan, index and archive all your physical documents |
| [pictshare <img src='https://camo.githubusercontent.com/6efdab1c63d518fafc5e735001c5ed45e7cbd4958952cdd972e2630eee881d97/68747470733a2f2f7069637473686172652e6e65742f706868796e6a2e706e67' alt='pictshare icon' width='18px' align='right' loading='lazy'>](charts/pictshare/) | PictShare is an open source image, mp4, pastebin hosting service with a simple resizing and upload API that you can host yourself. |
| [podgrab ](charts/podgrab/) | A self-hosted podcast manager to download episodes as soon as they become live. |
| [portfolio <img src='https://raw.githubusercontent.com/gabe565/portfolio/0f0e80ce2f29e9382a64e7fc6fe2ed1a9993971b/public/android-chrome-512x512.png' alt='portfolio icon' width='18px' align='right' loading='lazy'>](charts/portfolio/) | My personal portfolio website |
Expand Down
25 changes: 25 additions & 0 deletions charts/paperless-ngx/.helmignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
# Patterns to ignore when building packages.
# This supports shell glob matching, relative path matching, and
# negation (prefixed with !). Only one pattern per line.
.DS_Store
# Common VCS dirs
.git/
.gitignore
.bzr/
.bzrignore
.hg/
.hgignore
.svn/
# Common backup files
*.swp
*.bak
*.tmp
*.orig
*~
# Various IDEs
.project
.idea/
*.tmproj
.vscode/
# helm-docs templates
*.gotmpl
15 changes: 15 additions & 0 deletions charts/paperless-ngx/Chart.lock
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
dependencies:
- name: common
repository: https://bjw-s.github.io/helm-charts
version: 1.3.2
- name: postgresql
repository: https://charts.bitnami.com/bitnami
version: 12.2.7
- name: mariadb
repository: https://charts.bitnami.com/bitnami
version: 11.5.6
- name: redis
repository: https://charts.bitnami.com/bitnami
version: 17.9.3
digest: sha256:a163eb2cae9db042f8170763a4b0e47bde0f5fe4555da8ccc3b601c9b87bc9fb
generated: "2023-04-03T14:16:14.615262-05:00"
42 changes: 42 additions & 0 deletions charts/paperless-ngx/Chart.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
apiVersion: v2
name: paperless-ngx
description: "A community-supported supercharged version of paperless: scan, index and archive all your physical documents"
home: https://charts.gabe565.com/charts/paperless-ngx/
icon: https://raw.githubusercontent.com/paperless-ngx/paperless-ngx/b948750d558b58018d1d3393db145d162d44fceb/src-ui/src/assets/logo-notext.svg
type: application
version: 0.1.0
# renovate datasource=docker depName=ghcr.io/paperless-ngx/paperless-ngx
appVersion: 1.13.0
kubeVersion: ">=1.22.0-0"
keywords:
- documents
- ocr
- paper
dependencies:
- name: common
repository: https://bjw-s.github.io/helm-charts
version: 1.3.2
- name: postgresql
version: 12.2.7
repository: https://charts.bitnami.com/bitnami
condition: postgresql.enabled
- name: mariadb
version: 11.5.6
repository: https://charts.bitnami.com/bitnami
condition: mariadb.enabled
- name: redis
repository: https://charts.bitnami.com/bitnami
version: 17.9.3
condition: redis.enabled
sources:
- https://github.com/paperless-ngx/paperless-ngx
annotations:
artifacthub.io/alternativeName: paperless
artifacthub.io/changes: |-
- kind: added
description: Initial release
artifacthub.io/links: |-
- name: App Source
url: https://github.com/paperless-ngx/paperless-ngx
- name: Chart Source
url: https://github.com/gabe565/charts/tree/main/charts/paperless-ngx
108 changes: 108 additions & 0 deletions charts/paperless-ngx/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,108 @@
# paperless-ngx

<img src="https://raw.githubusercontent.com/paperless-ngx/paperless-ngx/b948750d558b58018d1d3393db145d162d44fceb/src-ui/src/assets/logo-notext.svg" align="right" width="92" alt="paperless-ngx logo">

![Version: 0.1.0](https://img.shields.io/badge/Version-0.1.0-informational?style=flat)
![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat)
![AppVersion: 1.13.0](https://img.shields.io/badge/AppVersion-1.13.0-informational?style=flat)

A community-supported supercharged version of paperless: scan, index and archive all your physical documents

**Homepage:** <https://charts.gabe565.com/charts/paperless-ngx/>

**This chart is not maintained by the upstream project and any issues with the chart should be raised
[here](https://github.com/gabe565/charts/issues/new?assignees=gabe565&labels=bug&template=bug_report.yaml&name=paperless-ngx&version=0.1.0)**

## Source Code

* <https://github.com/paperless-ngx/paperless-ngx>

## Requirements

Kubernetes: `>=1.22.0-0`

## Dependencies

| Repository | Name | Version |
|------------|------|---------|
| <https://bjw-s.github.io/helm-charts> | common | 1.3.2 |
| <https://charts.bitnami.com/bitnami> | mariadb | 11.5.6 |
| <https://charts.bitnami.com/bitnami> | postgresql | 12.2.7 |
| <https://charts.bitnami.com/bitnami> | redis | 17.9.3 |

## TL;DR

```console
helm repo add gabe565 https://charts.gabe565.com
helm repo update
helm install paperless-ngx gabe565/paperless-ngx
```

## Installing the Chart

To install the chart with the release name `paperless-ngx`

```console
helm install paperless-ngx gabe565/paperless-ngx
```

## Uninstalling the Chart

To uninstall the `paperless-ngx` deployment

```console
helm uninstall paperless-ngx
```

The command removes all the Kubernetes components associated with the chart **including persistent volumes** and deletes the release.

## Configuration

Read through the [values.yaml](./values.yaml) file. It has several commented out suggested values.
Other values may be used from the [values.yaml](https://github.com/bjw-s/helm-charts/tree/main/charts/library/common/values.yaml) from the [bjw-s common library](https://github.com/bjw-s/helm-charts/tree/main/charts/library/common).

Specify each parameter using the `--set key=value[,key=value]` argument to `helm install`.

```console
helm install paperless-ngx \
--set env.TZ="America/New York" \
gabe565/paperless-ngx
```

Alternatively, a YAML file that specifies the values for the above parameters can be provided while installing the chart.

```console
helm install paperless-ngx gabe565/paperless-ngx -f values.yaml
```

## Custom configuration

### Database Installation

Paperless-ngx supports PostgreSQL and MariaDB.
This chart can install PostgreSQL or MariaDB and configure Paperless-ngx automatically.
See each database section in [`values.yaml`](./values.yaml) for configuration examples.

## Values

**Important**: When deploying an application Helm chart you can add more values from the bjw-s common library chart [here](https://github.com/bjw-s/helm-charts/tree/main/charts/library/common)

| Key | Type | Default | Description |
|-----|------|---------|-------------|
| env | object | See [values.yaml](./values.yaml) | Environment variables [[ref]](https://docs.paperless-ngx.com/configuration/) |
| env.TZ | string | `"UTC"` | Set the container timezone |
| image.pullPolicy | string | `"IfNotPresent"` | Image pull policy |
| image.repository | string | `"ghcr.io/paperless-ngx/paperless-ngx"` | Image repository |
| image.tag | string | `"1.13.0"` | Image tag |
| ingress.main | object | See [values.yaml](./values.yaml) | Enable and configure ingress settings for the chart under this key. |
| mariadb | object | See [values.yaml](./values.yaml) | Enable and configure mariadb database subchart under this key. If enabled, the app's db envs will be set for you. [[ref]](https://github.com/bitnami/charts/tree/main/bitnami/mariadb) |
| persistence.consume | object | See [values.yaml](./values.yaml) | Configure consume volume settings for the chart under this key. |
| persistence.data | object | See [values.yaml](./values.yaml) | Configure data volume settings for the chart under this key. |
| persistence.export | object | See [values.yaml](./values.yaml) | Configure export volume settings for the chart under this key. |
| persistence.media | object | See [values.yaml](./values.yaml) | Configure media volume settings for the chart under this key. |
| postgresql | object | See [values.yaml](./values.yaml) | Enable and configure postgresql database subchart under this key. If enabled, the app's db envs will be set for you. [[ref]](https://github.com/bitnami/charts/tree/main/bitnami/postgresql) |
| redis | object | See [values.yaml](./values.yaml) | Enable and configure redis subchart under this key. If enabled, the app's Redis env will be set for you. [[ref]](https://github.com/bitnami/charts/tree/main/bitnami/redis) |
| service.main | object | See [values.yaml](./values.yaml) | Configures service settings for the chart. |

---
Autogenerated from chart metadata using [helm-docs](https://github.com/norwoodj/helm-docs)
13 changes: 13 additions & 0 deletions charts/paperless-ngx/README_CONFIG.md.gotmpl
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
{{- define "custom.custom.configuration.header" -}}
## Custom configuration
{{- end -}}

{{- define "custom.custom.configuration" -}}
{{ template "custom.custom.configuration.header" . }}

### Database Installation

Paperless-ngx supports PostgreSQL and MariaDB.
This chart can install PostgreSQL or MariaDB and configure Paperless-ngx automatically.
See each database section in [`values.yaml`](./values.yaml) for configuration examples.
{{- end -}}
1 change: 1 addition & 0 deletions charts/paperless-ngx/templates/NOTES.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
{{- include "bjw-s.common.lib.chart.notes" . -}}
50 changes: 50 additions & 0 deletions charts/paperless-ngx/templates/common.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
{{/* Append the hardcoded settings */}}
{{- define "healthchecks.harcodedValues" -}}
env:
PAPERLESS_TIME_ZONE: {{ .Values.env.TZ }}
PAPERLESS_PORT: {{ quote .Values.service.main.ports.http.port }}

{{- with .Values.ingress.main }}
{{- if and .enabled .hosts }}
PAPERLESS_URL: http{{ if .tls }}s{{ end }}://{{ (first .hosts).host }}
{{- end }}
{{- end }}

{{- if .Values.postgresql.enabled }}
{{- with .Values.postgresql }}
PAPERLESS_DBENGINE: postgresql
PAPERLESS_DBHOST: {{ $.Release.Name }}-postgresql
PAPERLESS_DBNAME: {{ .auth.database }}
PAPERLESS_DBUSER: {{ default "postgres" .auth.username }}
PAPERLESS_DBPASS:
secretKeyRef:
name: {{ $.Release.Name }}-postgresql
key: {{ if not .auth.password }}postgres-{{ end }}password
{{- end }}
{{- else if .Values.mariadb.enabled }}
{{- with .Values.mariadb}}
PAPERLESS_DBENGINE: mariadb
PAPERLESS_DBHOST: {{ $.Release.Name }}-mariadb
PAPERLESS_DBNAME: {{ .auth.database }}
PAPERLESS_DBUSER: {{ .auth.username }}
PAPERLESS_DBPASS:
secretKeyRef:
name: {{ $.Release.Name }}-mariadb
key: mariadb-password
{{- end }}
{{- end }}

{{- if .Values.redis.enabled }}
{{- with .Values.redis }}
A_REDIS_PASSWORD:
secretKeyRef:
name: {{ $.Release.Name }}-redis
key: redis-password
PAPERLESS_REDIS: redis://:$(A_REDIS_PASSWORD)@{{ $.Release.Name }}-redis-master
{{- end }}
{{- end }}
{{- end -}}
{{- $_ := merge .Values (include "healthchecks.harcodedValues" . | fromYaml) -}}

{{/* Render the templates */}}
{{ include "bjw-s.common.loader.all" . }}
129 changes: 129 additions & 0 deletions charts/paperless-ngx/values.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,129 @@
#
# IMPORTANT NOTE
#
# This chart inherits from our common library chart. You can check the default values/options here:
# https://github.com/bjw-s/helm-charts/blob/main/charts/library/common/values.yaml
#

image:
# -- Image repository
repository: ghcr.io/paperless-ngx/paperless-ngx
# -- Image pull policy
pullPolicy: IfNotPresent
# -- Image tag
tag: 1.13.0

# -- Environment variables [[ref]](https://docs.paperless-ngx.com/configuration/)
# @default -- See [values.yaml](./values.yaml)
env:
# -- Set the container timezone
TZ: UTC
# PAPERLESS_SECRET_KEY: ""

service:
# -- Configures service settings for the chart.
# @default -- See [values.yaml](./values.yaml)
main:
ports:
http:
port: 8000

ingress:
# -- Enable and configure ingress settings for the chart under this key.
# @default -- See [values.yaml](./values.yaml)
main:
enabled: false
annotations:
nginx.ingress.kubernetes.io/proxy-body-size: 64m
# hosts:
# - host: chart-example.local
# paths:
# - path: /
# tls:
# - secretName: chart-example.local
# hosts:
# - chart-example.local

persistence:
# -- Configure data volume settings for the chart under this key.
# @default -- See [values.yaml](./values.yaml)
data:
enabled: false
retain: true
mountPath: /usr/src/paperless/data
# storageClass: ""
# accessMode: ReadWriteOnce
# size: 1Gi
# -- Configure media volume settings for the chart under this key.
# @default -- See [values.yaml](./values.yaml)
media:
enabled: false
retain: true
mountPath: /usr/src/paperless/media
# storageClass: ""
# accessMode: ReadWriteOnce
# size: 8Gi
# -- Configure export volume settings for the chart under this key.
# @default -- See [values.yaml](./values.yaml)
export:
enabled: true
retain: true
mountPath: /usr/src/paperless/export
# storageClass: ""
# accessMode: ReadWriteOnce
# size: 1Gi
# -- Configure consume volume settings for the chart under this key.
# @default -- See [values.yaml](./values.yaml)
consume:
enabled: true
retain: true
mountPath: /usr/src/paperless/consume
# storageClass: ""
# accessMode: ReadWriteOnce
# size: 4Gi

# -- Enable and configure postgresql database subchart under this key.
# If enabled, the app's db envs will be set for you.
# [[ref]](https://github.com/bitnami/charts/tree/main/bitnami/postgresql)
# @default -- See [values.yaml](./values.yaml)
postgresql:
enabled: false
auth:
database: paperless
postgresPassword: changeme
primary:
persistence:
enabled: false
# storageClass: ""
# size: 8Gi

# -- Enable and configure mariadb database subchart under this key.
# If enabled, the app's db envs will be set for you.
# [[ref]](https://github.com/bitnami/charts/tree/main/bitnami/mariadb)
# @default -- See [values.yaml](./values.yaml)
mariadb:
enabled: false
auth:
database: paperless
username: paperless
password: changeme
rootPassword: changeme
primary:
persistence:
enabled: false
# storageClass: ""
# size: 8Gi

# -- Enable and configure redis subchart under this key.
# If enabled, the app's Redis env will be set for you.
# [[ref]](https://github.com/bitnami/charts/tree/main/bitnami/redis)
# @default -- See [values.yaml](./values.yaml)
redis:
enabled: true
auth:
enabled: true
master:
persistence:
enabled: false
replica:
replicaCount: 0

0 comments on commit 4986ce5

Please sign in to comment.