From 0cfe96e7858a6cc9ced2eccd485206959710cf32 Mon Sep 17 00:00:00 2001 From: Paul Buetow Date: Thu, 7 Aug 2025 09:59:29 +0300 Subject: add audiobookshelf --- f3s/audiobookshelf/Makefile | 5 ++ f3s/audiobookshelf/helm-chart/Chart.yaml | 5 ++ f3s/audiobookshelf/helm-chart/README.md | 19 +++++ .../helm-chart/templates/deployment.yaml | 53 ++++++++++++++ .../helm-chart/templates/ingress.yaml | 20 ++++++ .../helm-chart/templates/persistent-volumes.yaml | 83 ++++++++++++++++++++++ 6 files changed, 185 insertions(+) create mode 100644 f3s/audiobookshelf/Makefile create mode 100644 f3s/audiobookshelf/helm-chart/Chart.yaml create mode 100644 f3s/audiobookshelf/helm-chart/README.md create mode 100644 f3s/audiobookshelf/helm-chart/templates/deployment.yaml create mode 100644 f3s/audiobookshelf/helm-chart/templates/ingress.yaml create mode 100644 f3s/audiobookshelf/helm-chart/templates/persistent-volumes.yaml diff --git a/f3s/audiobookshelf/Makefile b/f3s/audiobookshelf/Makefile new file mode 100644 index 0000000..49ec90c --- /dev/null +++ b/f3s/audiobookshelf/Makefile @@ -0,0 +1,5 @@ +apply: + helm install audiobookshelf ./helm-chart --namespace services --create-namespace + +delete: + helm uninstall audiobookshelf --namespace services diff --git a/f3s/audiobookshelf/helm-chart/Chart.yaml b/f3s/audiobookshelf/helm-chart/Chart.yaml new file mode 100644 index 0000000..dbd55e0 --- /dev/null +++ b/f3s/audiobookshelf/helm-chart/Chart.yaml @@ -0,0 +1,5 @@ +apiVersion: v2 +name: audiobookshelf +description: A Helm chart for deploying Audiobookshelf. +version: 0.1.0 +appVersion: "latest" diff --git a/f3s/audiobookshelf/helm-chart/README.md b/f3s/audiobookshelf/helm-chart/README.md new file mode 100644 index 0000000..670efa0 --- /dev/null +++ b/f3s/audiobookshelf/helm-chart/README.md @@ -0,0 +1,19 @@ +# Audiobookshelf Helm Chart + +This chart deploys Audiobookshelf. + +## Prerequisites + +Before installing the chart, you must manually create the following directories on your host system to be used by the persistent volumes: + +- `/data/nfs/k3svolumes/audiobookshelf/config` +- `/data/nfs/k3svolumes/audiobookshelf/audiobooks` +- `/data/nfs/k3svolumes/audiobookshelf/podcasts` + +## Installing the Chart + +To install the chart with the release name `my-release`, run the following command: + +```bash +helm install audiobookshelf . --namespace services --create-namespace +``` diff --git a/f3s/audiobookshelf/helm-chart/templates/deployment.yaml b/f3s/audiobookshelf/helm-chart/templates/deployment.yaml new file mode 100644 index 0000000..65e536a --- /dev/null +++ b/f3s/audiobookshelf/helm-chart/templates/deployment.yaml @@ -0,0 +1,53 @@ +apiVersion: apps/v1 +kind: Deployment +metadata: + name: audiobookshelf + namespace: services +spec: + replicas: 1 + selector: + matchLabels: + app: audiobookshelf + template: + metadata: + labels: + app: audiobookshelf + spec: + containers: + - name: audiobookshelf + image: ghcr.io/advplyr/audiobookshelf + ports: + - containerPort: 80 + volumeMounts: + - name: audiobookshelf-config + mountPath: /config + - name: audiobookshelf-audiobooks + mountPath: /audiobooks + - name: audiobookshelf-podcasts + mountPath: /podcasts + volumes: + - name: audiobookshelf-config + persistentVolumeClaim: + claimName: audiobookshelf-config-pvc + - name: audiobookshelf-audiobooks + persistentVolumeClaim: + claimName: audiobookshelf-audiobooks-pvc + - name: audiobookshelf-podcasts + persistentVolumeClaim: + claimName: audiobookshelf-podcasts-pvc +--- +apiVersion: v1 +kind: Service +metadata: + labels: + app: audiobookshelf + name: audiobookshelf-service + namespace: services +spec: + ports: + - name: web + port: 80 + protocol: TCP + targetPort: 80 + selector: + app: audiobookshelf diff --git a/f3s/audiobookshelf/helm-chart/templates/ingress.yaml b/f3s/audiobookshelf/helm-chart/templates/ingress.yaml new file mode 100644 index 0000000..6e4f7ac --- /dev/null +++ b/f3s/audiobookshelf/helm-chart/templates/ingress.yaml @@ -0,0 +1,20 @@ +apiVersion: networking.k8s.io/v1 +kind: Ingress +metadata: + name: audiobookshelf-ingress + namespace: services + annotations: + spec.ingressClassName: traefik + traefik.ingress.kubernetes.io/router.entrypoints: web +spec: + rules: + - host: audiobookshelf.f3s.buetow.org + http: + paths: + - path: / + pathType: Prefix + backend: + service: + name: audiobookshelf-service + port: + number: 80 diff --git a/f3s/audiobookshelf/helm-chart/templates/persistent-volumes.yaml b/f3s/audiobookshelf/helm-chart/templates/persistent-volumes.yaml new file mode 100644 index 0000000..8691d14 --- /dev/null +++ b/f3s/audiobookshelf/helm-chart/templates/persistent-volumes.yaml @@ -0,0 +1,83 @@ +apiVersion: v1 +kind: PersistentVolume +metadata: + name: audiobookshelf-config-pv +spec: + capacity: + storage: 1Gi + volumeMode: Filesystem + accessModes: + - ReadWriteOnce + persistentVolumeReclaimPolicy: Retain + hostPath: + path: /data/nfs/k3svolumes/audiobookshelf/config + type: Directory +--- +apiVersion: v1 +kind: PersistentVolumeClaim +metadata: + name: audiobookshelf-config-pvc + namespace: services +spec: + storageClassName: "" + accessModes: + - ReadWriteOnce + resources: + requests: + storage: 1Gi +--- +apiVersion: v1 +kind: PersistentVolume +metadata: + name: audiobookshelf-audiobooks-pv +spec: + capacity: + storage: 300Gi + volumeMode: Filesystem + accessModes: + - ReadWriteOnce + persistentVolumeReclaimPolicy: Retain + hostPath: + path: /data/nfs/k3svolumes/audiobookshelf/audiobooks + type: Directory +--- +apiVersion: v1 +kind: PersistentVolumeClaim +metadata: + name: audiobookshelf-audiobooks-pvc + namespace: services +spec: + storageClassName: "" + accessModes: + - ReadWriteOnce + resources: + requests: + storage: 300Gi +--- +apiVersion: v1 +kind: PersistentVolume +metadata: + name: audiobookshelf-podcasts-pv +spec: + capacity: + storage: 50Gi + volumeMode: Filesystem + accessModes: + - ReadWriteOnce + persistentVolumeReclaimPolicy: Retain + hostPath: + path: /data/nfs/k3svolumes/audiobookshelf/podcasts + type: Directory +--- +apiVersion: v1 +kind: PersistentVolumeClaim +metadata: + name: audiobookshelf-podcasts-pvc + namespace: services +spec: + storageClassName: "" + accessModes: + - ReadWriteOnce + resources: + requests: + storage: 50Gi -- cgit v1.2.3