Skip to content

Commit

Permalink
✨ (gotify): Add Gotify chart
Browse files Browse the repository at this point in the history
  • Loading branch information
gabe565 committed Jun 5, 2023
1 parent 98e6d8c commit 069ab28
Show file tree
Hide file tree
Showing 10 changed files with 295 additions and 0 deletions.
1 change: 1 addition & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -50,6 +50,7 @@ helm delete my-<chart-name>
| [Home Assistant <img src='https://raw.githubusercontent.com/esphome/esphome-docs/019178551126f2d6a588a1f9ef50f60453041531/images/logo.svg' alt='esphome icon' width='18px' align='right' loading='lazy'>](charts/esphome/) | ESPHome is a system to control your ESP8266/ESP32 by simple yet powerful configuration files and control them remotely through Home Automation systems. |
| [Flame <img src='https://raw.githubusercontent.com/pawelmalak/flame/4ed29fe276b4282c67415f9788660df2a3a69b5c/client/public/icons/apple-touch-icon-180x180.png' alt='flame icon' width='18px' align='right' loading='lazy'>](charts/flame/) | Flame is self-hosted startpage for your server. Easily manage your apps and bookmarks with built-in editors. |
| [Generic Device Plugin ](charts/generic-device-plugin/) | The generic-device-plugin enables allocating generic Linux devices, such as serial devices, the FUSE device, or video cameras, to Kubernetes Pods |
| [Gotify <img src='https://raw.githubusercontent.com/gabe565/charts/main/charts/gotify/icon.svg' alt='gotify icon' width='18px' align='right' loading='lazy'>](charts/gotify/) | A simple server for sending and receiving messages in real-time per WebSocket. (Includes a sleek web-ui) |
| [Hammond <img src='https://raw.githubusercontent.com/akhilrex/hammond/84cba2c7f26f6d3f81c49b132110b24ac97c7b49/ui/public/touch-icon.png' alt='hammond icon' width='18px' align='right' loading='lazy'>](charts/hammond/) | A self-hosted vehicle expense tracking system with support for multiple users. |
| [Headscale <img src='https://raw.githubusercontent.com/juanfont/headscale/56a7b1e34952c3e0306a134b2be9b4277f5d8d6e/docs/logo/headscale3-dots.svg' alt='headscale icon' width='18px' align='right' loading='lazy'>](charts/headscale/) | An open source, self-hosted implementation of the Tailscale control server. |
| [Healthchecks <img src='https://raw.githubusercontent.com/gabe565/charts/main/charts/healthchecks/icon.svg' alt='healthchecks icon' width='18px' align='right' loading='lazy'>](charts/healthchecks/) | A cron monitoring tool written in Python & Django |
Expand Down
26 changes: 26 additions & 0 deletions charts/gotify/.helmignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
# 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
icon.svg
9 changes: 9 additions & 0 deletions charts/gotify/Chart.lock
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
dependencies:
- name: common
repository: https://bjw-s.github.io/helm-charts
version: 1.5.1
- name: postgresql
repository: https://charts.bitnami.com/bitnami
version: 12.5.6
digest: sha256:501e0817d535d5251e38b423e8b9fab9568852f5aef4325d56631224f3454001
generated: "2023-06-05T15:53:35.699119-05:00"
31 changes: 31 additions & 0 deletions charts/gotify/Chart.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
apiVersion: v2
name: gotify
description: A simple server for sending and receiving messages in real-time per WebSocket. (Includes a sleek web-ui)
home: https://charts.gabe565.com/charts/gotify/
icon: https://raw.githubusercontent.com/gabe565/charts/main/charts/gotify/icon.svg
type: application
version: 0.0.1
# renovate datasource=docker depName=ghcr.io/gotify/server
appVersion: 2.2.4
kubeVersion: ">=1.22.0-0"
keywords:
- notifications
dependencies:
- name: common
repository: https://bjw-s.github.io/helm-charts
version: 1.5.1
- name: postgresql
version: 12.5.6
repository: https://charts.bitnami.com/bitnami
condition: postgresql.enabled
sources:
- https://github.com/gotify/server
annotations:
artifacthub.io/changes: |-
- kind: added
description: Initial release
artifacthub.io/links: |-
- name: App Source
url: https://github.com/gotify/server
- name: Chart Source
url: https://github.com/gabe565/charts/tree/main/charts/gotify
103 changes: 103 additions & 0 deletions charts/gotify/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,103 @@
# Gotify

<img src="https://raw.githubusercontent.com/gabe565/charts/main/charts/gotify/icon.svg" align="right" width="92" alt="gotify logo">

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

A simple server for sending and receiving messages in real-time per WebSocket. (Includes a sleek web-ui)

**Homepage:** <https://charts.gabe565.com/charts/gotify/>

**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=gotify&version=0.0.1)**

## Source Code

* <https://github.com/gotify/server>

## Requirements

Kubernetes: `>=1.22.0-0`

## Dependencies

| Repository | Name | Version |
|------------|------|---------|
| <https://bjw-s.github.io/helm-charts> | common | 1.5.1 |
| <https://charts.bitnami.com/bitnami> | postgresql | 12.5.6 |

## TL;DR

```console
helm repo add gabe565 https://charts.gabe565.com
helm repo update
helm install gotify gabe565/gotify
```

## Installing the Chart

To install the chart with the release name `gotify`

```console
helm install gotify gabe565/gotify
```

## Uninstalling the Chart

To uninstall the `gotify` deployment

```console
helm uninstall gotify
```

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 gotify \
--set env.TZ="America/New York" \
gabe565/gotify
```

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

```console
helm install gotify gabe565/gotify -f values.yaml
```

## Custom configuration

N/A

## 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://gotify.net/docs/config#environment-variables) |
| env.GOTIFY_DEFAULTUSER_NAME | string | `"admin"` | Default admin username |
| env.GOTIFY_DEFAULTUSER_PASS | string | `"admin"` | Default admin password |
| env.GOTIFY_REGISTRATION | string | `"false"` | Allow registration |
| env.TZ | string | `"UTC"` | Set the container timezone |
| image.pullPolicy | string | `"IfNotPresent"` | image pull policy |
| image.repository | string | `"ghcr.io/gotify/server"` | image repository |
| image.tag | string | `"2.2.4"` | image tag |
| ingress.main | object | See [values.yaml](./values.yaml) | Enable and configure ingress settings for the chart under this key. |
| persistence | object | See [values.yaml](./values.yaml) | Configure persistence settings for the chart under this key. |
| podSecurityContext.fsGroup | int | `65534` | Volume binds will be granted to `nobody` group |
| podSecurityContext.runAsGroup | int | `65534` | Run as `nobody` group |
| podSecurityContext.runAsUser | int | `65534` | Run as `nobody` user |
| postgresql | object | See [values.yaml](./values.yaml) | Enable and configure postgresql database subchart under this key. [[ref]](https://github.com/bitnami/charts/tree/master/bitnami/postgresql) |
| service | 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/gotify/README_CONFIG.md.gotmpl
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
{{- define "custom.chart.name" -}}
Gotify
{{- end -}}

{{- define "custom.custom.configuration.header" -}}
## Custom configuration
{{- end -}}

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

N/A
{{- end -}}
1 change: 1 addition & 0 deletions charts/gotify/icon.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
1 change: 1 addition & 0 deletions charts/gotify/templates/NOTES.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
{{- include "bjw-s.common.lib.chart.notes" . -}}
29 changes: 29 additions & 0 deletions charts/gotify/templates/common.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
{{/* Append the hardcoded settings */}}
{{- define "gotify.harcodedValues" -}}
env:
GOTIFY_SERVER_PORT: {{ .Values.service.main.ports.http.port }}

{{- with .Values.postgresql }}
{{- if .enabled }}
GOTIFY_DATABASE_DIALECT: postgres
DATABASE_PASSWORD:
secretKeyRef:
name: {{ $.Release.Name }}-postgresql
key: {{ if not .auth.password }}postgres-{{ end }}password
GOTIFY_DATABASE_CONNECTION: >-
host={{ $.Release.Name }}-postgresql
port=5432
user={{ default "postgres" .auth.username }}
dbname={{ .auth.database }}
password=$(DATABASE_PASSWORD)
sslmode=disable
{{- else }}
GOTIFY_DATABASE_DIALECT: sqlite3
GOTIFY_DATABASE_CONNECTION: /app/data/gotify.db
{{- end }}
{{- end }}
{{- end -}}
{{- $_ := merge .Values (include "gotify.harcodedValues" . | fromYaml) -}}

{{/* Render the templates */}}
{{ include "bjw-s.common.loader.all" . }}
81 changes: 81 additions & 0 deletions charts/gotify/values.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,81 @@
#
# 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/gotify/server
# -- image pull policy
pullPolicy: IfNotPresent
# -- image tag
tag: 2.2.4

# -- Environment variables. [[ref]](https://gotify.net/docs/config#environment-variables)
# @default -- See [values.yaml](./values.yaml)
env:
# -- Set the container timezone
TZ: UTC
# -- Default admin username
GOTIFY_DEFAULTUSER_NAME: admin
# -- Default admin password
GOTIFY_DEFAULTUSER_PASS: admin
# -- Allow registration
GOTIFY_REGISTRATION: "false"

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

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

# -- Configure persistence settings for the chart under this key.
# @default -- See [values.yaml](./values.yaml)
persistence:
data:
enabled: false
mountPath: /app/data
retain: true
# storageClass: ""
# accessMode: ReadWriteOnce
# size: 1Gi

podSecurityContext:
# -- Run as `nobody` user
runAsUser: 65534
# -- Run as `nobody` group
runAsGroup: 65534
# -- Volume binds will be granted to `nobody` group
fsGroup: 65534

# -- Enable and configure postgresql database subchart under this key.
# [[ref]](https://github.com/bitnami/charts/tree/master/bitnami/postgresql)
# @default -- See [values.yaml](./values.yaml)
postgresql:
enabled: false
auth:
database: gotify
postgresPassword: changeme
primary:
persistence:
enabled: false
# storageClass: ""
# size: 8Gi

0 comments on commit 069ab28

Please sign in to comment.