From 87775a1731c8ed674ab790f54ab9d3fdab45c207 Mon Sep 17 00:00:00 2001 From: Alex Lebens Date: Sun, 16 Nov 2025 19:38:04 -0600 Subject: [PATCH] add listenarr --- .../cl01tl/applications/homepage/values.yaml | 18 +++++--- .../cl01tl/applications/listenarr/Chart.yaml | 20 ++++++++ .../listenarr/templates/http-route.yaml | 28 +++++++++++ .../templates/persistent-volume-claim.yaml | 17 +++++++ .../templates/persistent-volume.yaml | 23 ++++++++++ .../cl01tl/applications/listenarr/values.yaml | 46 +++++++++++++++++++ clusters/cl01tl/services/blocky/values.yaml | 1 + hosts/ps08rp/blocky/config.yml | 1 + hosts/ps09rp/blocky/config.yml | 1 + 9 files changed, 149 insertions(+), 6 deletions(-) create mode 100644 clusters/cl01tl/applications/listenarr/Chart.yaml create mode 100644 clusters/cl01tl/applications/listenarr/templates/http-route.yaml create mode 100644 clusters/cl01tl/applications/listenarr/templates/persistent-volume-claim.yaml create mode 100644 clusters/cl01tl/applications/listenarr/templates/persistent-volume.yaml create mode 100644 clusters/cl01tl/applications/listenarr/values.yaml diff --git a/clusters/cl01tl/applications/homepage/values.yaml b/clusters/cl01tl/applications/homepage/values.yaml index 4214397d5..7b6c004bd 100644 --- a/clusters/cl01tl/applications/homepage/values.yaml +++ b/clusters/cl01tl/applications/homepage/values.yaml @@ -667,12 +667,6 @@ homepage: href: https://huntarr.alexlebens.net siteMonitor: http://huntarr.huntarr:80 statusStyle: dot - - CWA Downloader: - icon: sh-calibre.webp - description: Calibre Web Automated Book Downloader - href: https://calibre-downloader.alexlebens.net - siteMonitor: http://calibre-web-automated-downloader.calibre-web-automated:8084 - statusStyle: dot - Tdarr: icon: sh-tdarr.webp description: Media transcoding and health checks @@ -682,6 +676,18 @@ homepage: widget: type: tdarr url: http://tdarr-web.tdarr:8265 + - Listenarr: + icon: sh-name: listenarr.webp + description: Listenarr Audiobooks downloader + href: https://listenarr.alexlebens.net + siteMonitor: http://listenarr.listenarr:80 + statusStyle: dot + - CWA Downloader: + icon: sh-calibre.webp + description: Calibre Web Automated Book Downloader + href: https://calibre-downloader.alexlebens.net + siteMonitor: http://calibre-web-automated-downloader.calibre-web-automated:8084 + statusStyle: dot - Other Homes: - Dev: icon: sh-homepage.webp diff --git a/clusters/cl01tl/applications/listenarr/Chart.yaml b/clusters/cl01tl/applications/listenarr/Chart.yaml new file mode 100644 index 000000000..7c136f0fa --- /dev/null +++ b/clusters/cl01tl/applications/listenarr/Chart.yaml @@ -0,0 +1,20 @@ +apiVersion: v2 +name: listenarr +version: 1.0.0 +description: Listenarr +keywords: + - listenarr + - audiobooks +home: https://wiki.alexlebens.dev/ +sources: + - https://github.com/therobbiedavis/Listenarr + - https://hub.docker.com/r/therobbiedavis/listenarr + - https://github.com/bjw-s-labs/helm-charts/tree/main/charts/other/app-template +maintainers: + - name: alexlebens +dependencies: + - name: app-template + alias: kiwix + repository: https://bjw-s-labs.github.io/helm-charts/ + version: 4.4.0 +appVersion: 0.2.35 diff --git a/clusters/cl01tl/applications/listenarr/templates/http-route.yaml b/clusters/cl01tl/applications/listenarr/templates/http-route.yaml new file mode 100644 index 000000000..73bdae8c0 --- /dev/null +++ b/clusters/cl01tl/applications/listenarr/templates/http-route.yaml @@ -0,0 +1,28 @@ +apiVersion: gateway.networking.k8s.io/v1 +kind: HTTPRoute +metadata: + name: http-route-listenarr + namespace: {{ .Release.Namespace }} + labels: + app.kubernetes.io/name: http-route-listenarr + app.kubernetes.io/instance: {{ .Release.Name }} + app.kubernetes.io/part-of: {{ .Release.Name }} +spec: + parentRefs: + - group: gateway.networking.k8s.io + kind: Gateway + name: traefik-gateway + namespace: traefik + hostnames: + - listenarr.alexlebens.net + rules: + - matches: + - path: + type: PathPrefix + value: / + backendRefs: + - group: '' + kind: Service + name: listenarr + port: 80 + weight: 100 diff --git a/clusters/cl01tl/applications/listenarr/templates/persistent-volume-claim.yaml b/clusters/cl01tl/applications/listenarr/templates/persistent-volume-claim.yaml new file mode 100644 index 000000000..96a4a3e48 --- /dev/null +++ b/clusters/cl01tl/applications/listenarr/templates/persistent-volume-claim.yaml @@ -0,0 +1,17 @@ +apiVersion: v1 +kind: PersistentVolumeClaim +metadata: + name: listenarr-nfs-storage + namespace: {{ .Release.Namespace }} + labels: + app.kubernetes.io/name: listenarr-nfs-storage + app.kubernetes.io/instance: {{ .Release.Name }} + app.kubernetes.io/part-of: {{ .Release.Name }} +spec: + volumeName: listenarr-nfs-storage + storageClassName: nfs-client + accessModes: + - ReadWriteMany + resources: + requests: + storage: 1Gi diff --git a/clusters/cl01tl/applications/listenarr/templates/persistent-volume.yaml b/clusters/cl01tl/applications/listenarr/templates/persistent-volume.yaml new file mode 100644 index 000000000..a22ee2ab0 --- /dev/null +++ b/clusters/cl01tl/applications/listenarr/templates/persistent-volume.yaml @@ -0,0 +1,23 @@ +apiVersion: v1 +kind: PersistentVolume +metadata: + name: listenarr-nfs-storage + namespace: {{ .Release.Namespace }} + labels: + app.kubernetes.io/name: listenarr-nfs-storage + app.kubernetes.io/instance: {{ .Release.Name }} + app.kubernetes.io/part-of: {{ .Release.Name }} +spec: + persistentVolumeReclaimPolicy: Retain + storageClassName: nfs-client + capacity: + storage: 1Gi + accessModes: + - ReadWriteMany + nfs: + path: /volume2/Storage/Audiobooks + server: synologybond.alexlebens.net + mountOptions: + - vers=4 + - minorversion=1 + - noac diff --git a/clusters/cl01tl/applications/listenarr/values.yaml b/clusters/cl01tl/applications/listenarr/values.yaml new file mode 100644 index 000000000..1382247c3 --- /dev/null +++ b/clusters/cl01tl/applications/listenarr/values.yaml @@ -0,0 +1,46 @@ +listenarr: + controllers: + main: + type: deployment + replicas: 1 + strategy: Recreate + revisionHistoryLimit: 3 + containers: + main: + image: + repository: ghcr.io/kiwix/kiwix-serve + tag: canary-0.2.35 + pullPolicy: IfNotPresent + env: + - name: LISTENARR_PUBLIC_URL + value: https://listenarr.alexlebens.net + resources: + requests: + cpu: 50m + memory: 128Mi + service: + main: + controller: main + ports: + http: + port: 80 + targetPort: 5000 + protocol: HTTP + persistence: + config: + storageClass: ceph-block + accessMode: ReadWriteOnce + size: 5Gi + retain: true + advancedMounts: + main: + main: + - path: /app/config + readOnly: false + media: + existingClaim: listenarr-nfs-storage + advancedMounts: + main: + main: + - path: /data + readOnly: true diff --git a/clusters/cl01tl/services/blocky/values.yaml b/clusters/cl01tl/services/blocky/values.yaml index 9130e448b..6aef653d8 100644 --- a/clusters/cl01tl/services/blocky/values.yaml +++ b/clusters/cl01tl/services/blocky/values.yaml @@ -135,6 +135,7 @@ blocky: kronic IN CNAME traefik-cl01tl lidarr IN CNAME traefik-cl01tl lidatube IN CNAME traefik-cl01tl + listenarr IN CNAME traefik-cl01tl mail IN CNAME traefik-cl01tl n8n IN CNAME traefik-cl01tl ntfy IN CNAME traefik-cl01tl diff --git a/hosts/ps08rp/blocky/config.yml b/hosts/ps08rp/blocky/config.yml index 044bebae2..95453fd67 100644 --- a/hosts/ps08rp/blocky/config.yml +++ b/hosts/ps08rp/blocky/config.yml @@ -111,6 +111,7 @@ customDNS: kronic IN CNAME traefik-cl01tl lidarr IN CNAME traefik-cl01tl lidatube IN CNAME traefik-cl01tl + listenarr IN CNAME traefik-cl01tl mail IN CNAME traefik-cl01tl n8n IN CNAME traefik-cl01tl ntfy IN CNAME traefik-cl01tl diff --git a/hosts/ps09rp/blocky/config.yml b/hosts/ps09rp/blocky/config.yml index 044bebae2..95453fd67 100644 --- a/hosts/ps09rp/blocky/config.yml +++ b/hosts/ps09rp/blocky/config.yml @@ -111,6 +111,7 @@ customDNS: kronic IN CNAME traefik-cl01tl lidarr IN CNAME traefik-cl01tl lidatube IN CNAME traefik-cl01tl + listenarr IN CNAME traefik-cl01tl mail IN CNAME traefik-cl01tl n8n IN CNAME traefik-cl01tl ntfy IN CNAME traefik-cl01tl