Skip to content

Commit 4c1ad3e

Browse files
committed
feat(app): add audiobookshelf application
Signed-off-by: Vegard Hagen <[email protected]>
1 parent 4f694ce commit 4c1ad3e

File tree

8 files changed

+150
-0
lines changed

8 files changed

+150
-0
lines changed
Lines changed: 79 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,79 @@
1+
apiVersion: apps/v1
2+
kind: Deployment
3+
metadata:
4+
name: audiobookshelf
5+
namespace: audiobookshelf
6+
labels:
7+
app: audiobookshelf
8+
spec:
9+
replicas: 1
10+
selector:
11+
matchLabels:
12+
app: audiobookshelf
13+
strategy:
14+
type: Recreate
15+
template:
16+
metadata:
17+
namespace: audiobookshelf
18+
labels:
19+
app: audiobookshelf
20+
spec:
21+
nodeSelector:
22+
topology.kubernetes.io/zone: euclid
23+
securityContext:
24+
runAsNonRoot: true
25+
runAsUser: 2501
26+
runAsGroup: 2501
27+
fsGroup: 2501
28+
fsGroupChangePolicy: OnRootMismatch
29+
seccompProfile:
30+
type: RuntimeDefault
31+
containers:
32+
- name: audiobookshelf
33+
image: ghcr.io/advplyr/audiobookshelf:2.21.0 # renovate: docker=ghcr.io/advplyr/audiobookshelf
34+
securityContext:
35+
allowPrivilegeEscalation: false
36+
readOnlyRootFilesystem: true
37+
capabilities:
38+
drop: [ "ALL" ]
39+
ports:
40+
- name: http
41+
containerPort: 80
42+
envFrom:
43+
- configMapRef:
44+
name: common-env
45+
optional: true
46+
volumeMounts:
47+
- name: audiobookshelf
48+
mountPath: /config
49+
subPath: config
50+
- name: audiobookshelf
51+
mountPath: /metadata
52+
subPath: metadata
53+
- name: audiobooks
54+
mountPath: /audiobooks
55+
- name: podcasts
56+
mountPath: /podcasts
57+
- name: tmp
58+
mountPath: /tmp
59+
resources:
60+
requests:
61+
cpu: 50m
62+
memory: 384Mi
63+
limits:
64+
cpu: 1000m
65+
memory: 512Mi
66+
volumes:
67+
- name: audiobookshelf
68+
persistentVolumeClaim:
69+
claimName: audiobookshelf
70+
- name: audiobooks
71+
nfs:
72+
server: 192.168.1.117
73+
path: /mnt/pool-0/data/media/audiobooks
74+
- name: podcasts
75+
nfs:
76+
server: 192.168.1.117
77+
path: /mnt/pool-0/data/media/podcasts
78+
- name: tmp
79+
emptyDir: { }
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
apiVersion: gateway.networking.k8s.io/v1
2+
kind: HTTPRoute
3+
metadata:
4+
name: audiobookshelf
5+
namespace: audiobookshelf
6+
spec:
7+
parentRefs:
8+
- name: internal
9+
namespace: gateway
10+
hostnames:
11+
- "audiobookshelf.stonegarden.dev"
12+
- "abs.stonegarden.dev"
13+
rules:
14+
- matches:
15+
- path:
16+
type: PathPrefix
17+
value: /
18+
backendRefs:
19+
- name: audiobookshelf
20+
port: 80
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
apiVersion: kustomize.config.k8s.io/v1beta1
2+
kind: Kustomization
3+
4+
configMapGenerator:
5+
- name: common-env
6+
namespace: audiobookshelf
7+
literals:
8+
- TZ=Europe/Oslo
9+
10+
resources:
11+
- ns.yaml
12+
- pvc.yaml
13+
- svc.yaml
14+
- http-route.yaml
15+
- deployment.yaml
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
apiVersion: v1
2+
kind: Namespace
3+
metadata:
4+
name: audiobookshelf
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
apiVersion: v1
2+
kind: PersistentVolumeClaim
3+
metadata:
4+
name: audiobookshelf
5+
namespace: audiobookshelf
6+
spec:
7+
storageClassName: proxmox-csi
8+
volumeName: pv-audiobookshelf
9+
accessModes:
10+
- ReadWriteOnce
11+
resources:
12+
requests:
13+
storage: 4G
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
apiVersion: v1
2+
kind: Service
3+
metadata:
4+
name: audiobookshelf
5+
namespace: audiobookshelf
6+
spec:
7+
type: ClusterIP
8+
selector:
9+
app: audiobookshelf
10+
ports:
11+
- name: web
12+
port: 80
13+
targetPort: http

k8s/apps/media/project.yaml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,8 @@ spec:
1111
server: '*'
1212
- namespace: 'arr'
1313
server: '*'
14+
- namespace: 'audiobookshelf'
15+
server: '*'
1416
- namespace: 'plex'
1517
server: '*'
1618
- namespace: 'jellyfin'

tofu/kubernetes/kubernetes_volumes.auto.tfvars

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,10 @@ kubernetes_volumes = {
1919
node = "euclid"
2020
size = "1G"
2121
}
22+
pv-audiobookshelf = {
23+
node = "euclid"
24+
size = "4G"
25+
}
2226
pv-remark42 = {
2327
node = "euclid"
2428
size = "1G"

0 commit comments

Comments
 (0)