summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPaul Buetow <paul@buetow.org>2025-08-07 09:59:29 +0300
committerPaul Buetow <paul@buetow.org>2025-08-07 09:59:29 +0300
commit0cfe96e7858a6cc9ced2eccd485206959710cf32 (patch)
tree036e3b44859d091f040f8f96bc9403a6cb269f00
parent03f631a0ecbef2afe4c34cda72871deae5649388 (diff)
add audiobookshelf
-rw-r--r--f3s/audiobookshelf/Makefile5
-rw-r--r--f3s/audiobookshelf/helm-chart/Chart.yaml5
-rw-r--r--f3s/audiobookshelf/helm-chart/README.md19
-rw-r--r--f3s/audiobookshelf/helm-chart/templates/deployment.yaml53
-rw-r--r--f3s/audiobookshelf/helm-chart/templates/ingress.yaml20
-rw-r--r--f3s/audiobookshelf/helm-chart/templates/persistent-volumes.yaml83
6 files changed, 185 insertions, 0 deletions
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