From f8006a45951fa77f2da35ae4596081b9be5cbacb Mon Sep 17 00:00:00 2001 From: Alex Mickelson Date: Sun, 15 Feb 2026 17:40:00 -0700 Subject: [PATCH] audiobook --- home-server/nginx.conf | 28 ++--- kubernetes/audiobookshelf/audiobook.yml | 95 ++++++++++++++++ kubernetes/nfs-server/.gitignore | 1 - kubernetes/nfs-server/Dockerfile | 13 --- kubernetes/nfs-server/entrypoint.sh | 24 ---- kubernetes/nfs-server/readme.md | 19 ---- .../proxy-ingress/audiobook-proxy-ingress.yml | 106 +++++++++--------- 7 files changed, 162 insertions(+), 124 deletions(-) create mode 100644 kubernetes/audiobookshelf/audiobook.yml delete mode 100644 kubernetes/nfs-server/.gitignore delete mode 100644 kubernetes/nfs-server/Dockerfile delete mode 100644 kubernetes/nfs-server/entrypoint.sh delete mode 100644 kubernetes/nfs-server/readme.md diff --git a/home-server/nginx.conf b/home-server/nginx.conf index 5f79cda..0738484 100644 --- a/home-server/nginx.conf +++ b/home-server/nginx.conf @@ -94,23 +94,23 @@ server { } } -server { - listen 443 ssl; - listen [::]:443 ssl; - server_name audiobook.alexmickelson.guru; +# server { +# listen 443 ssl; +# listen [::]:443 ssl; +# server_name audiobook.alexmickelson.guru; - location / { - proxy_pass http://audiobookshelf:80; +# location / { +# proxy_pass http://audiobookshelf:80; - proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; - proxy_set_header X-Forwarded-Proto $scheme; - proxy_set_header Host $host; - proxy_set_header Upgrade $http_upgrade; - proxy_set_header Connection "upgrade"; +# proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; +# proxy_set_header X-Forwarded-Proto $scheme; +# proxy_set_header Host $host; +# proxy_set_header Upgrade $http_upgrade; +# proxy_set_header Connection "upgrade"; - proxy_http_version 1.1; - } -} +# proxy_http_version 1.1; +# } +# } # server { # listen 443 ssl; diff --git a/kubernetes/audiobookshelf/audiobook.yml b/kubernetes/audiobookshelf/audiobook.yml new file mode 100644 index 0000000..141627d --- /dev/null +++ b/kubernetes/audiobookshelf/audiobook.yml @@ -0,0 +1,95 @@ +apiVersion: v1 +kind: Namespace +metadata: + name: audiobookshelf +--- +apiVersion: apps/v1 +kind: Deployment +metadata: + name: audiobookshelf + namespace: audiobookshelf +spec: + replicas: 1 + strategy: + type: Recreate + selector: + matchLabels: + app: audiobookshelf + template: + metadata: + labels: + app: audiobookshelf + spec: + containers: + - name: audiobookshelf + image: ghcr.io/advplyr/audiobookshelf:latest + imagePullPolicy: Always + ports: + - containerPort: 80 + hostPort: 13378 + volumeMounts: + - name: audiobooks + mountPath: /audiobooks + - name: audiobooks-libation + mountPath: /audiobooks-libation + - name: config + mountPath: /config + - name: metadata + mountPath: /metadata + volumes: + - name: audiobooks + hostPath: + path: /data/media/audiobooks + type: DirectoryOrCreate + - name: audiobooks-libation + hostPath: + path: /data/media/audiobooks-libation + type: DirectoryOrCreate + - name: config + hostPath: + path: /data/audiobookshelf/config + type: DirectoryOrCreate + - name: metadata + hostPath: + path: /data/audiobookshelf/metadata + type: DirectoryOrCreate +--- +apiVersion: v1 +kind: Service +metadata: + name: audiobookshelf + namespace: audiobookshelf +spec: + selector: + app: audiobookshelf + ports: + - name: http + protocol: TCP + port: 13378 + targetPort: 80 +--- +apiVersion: networking.k8s.io/v1 +kind: Ingress +metadata: + name: audiobookshelf-ingress + namespace: audiobookshelf + annotations: + cert-manager.io/cluster-issuer: cloudflare-issuer +spec: + ingressClassName: nginx + tls: + - hosts: + - audiobook.alexmickelson.guru + secretName: audiobookshelf-tls-cert + rules: + - host: audiobook.alexmickelson.guru + http: + paths: + - path: / + pathType: Prefix + backend: + service: + name: audiobookshelf + port: + number: 13378 +--- diff --git a/kubernetes/nfs-server/.gitignore b/kubernetes/nfs-server/.gitignore deleted file mode 100644 index b59f7e3..0000000 --- a/kubernetes/nfs-server/.gitignore +++ /dev/null @@ -1 +0,0 @@ -test/ \ No newline at end of file diff --git a/kubernetes/nfs-server/Dockerfile b/kubernetes/nfs-server/Dockerfile deleted file mode 100644 index 957dc7d..0000000 --- a/kubernetes/nfs-server/Dockerfile +++ /dev/null @@ -1,13 +0,0 @@ -FROM alpine:latest - -RUN apk add --no-cache nfs-utils bash - -RUN mkdir -p /exports - -COPY entrypoint.sh /usr/local/bin/entrypoint.sh -RUN chmod +x /usr/local/bin/entrypoint.sh - -EXPOSE 2049 20048 - -ENTRYPOINT ["/usr/local/bin/entrypoint.sh"] - diff --git a/kubernetes/nfs-server/entrypoint.sh b/kubernetes/nfs-server/entrypoint.sh deleted file mode 100644 index 6865f18..0000000 --- a/kubernetes/nfs-server/entrypoint.sh +++ /dev/null @@ -1,24 +0,0 @@ -#!/bin/bash -set -e - -ALLOWED_CLIENTS="${ALLOWED_CLIENTS:-*}" - -echo "/exports $ALLOWED_CLIENTS(rw,sync,no_subtree_check,no_root_squash)" > /etc/exports - -rpcbind || true -rpc.statd || true - -echo "Starting NFS server..." - - - -mount -t nfsd nfsd /proc/fs/nfsd - -rpc.nfsd -N 3 -V 4 --grace-time 10 $nfsd_debug_opt & -rpc.mountd -N 2 -N 3 -V 4 --foreground $mountd_debug_opt & - -wait - -# rpc.mountd -N 2 -N 3 -V 4 --foreground - -# wait diff --git a/kubernetes/nfs-server/readme.md b/kubernetes/nfs-server/readme.md deleted file mode 100644 index f5fcc0d..0000000 --- a/kubernetes/nfs-server/readme.md +++ /dev/null @@ -1,19 +0,0 @@ - - - - - - -example docker run - -```bash -docker run --rm -it \ - --name nfs-server \ - --cap-add SYS_ADMIN \ - -e ALLOWED_CLIENTS="127.0.0.1.0/24" \ - -v (pwd)/test:/exports \ - --network host \ - nfs-server -``` - -currently not working, i like the idea of running the nfs server in a docker container, but doing it as a nixos module is probably better \ No newline at end of file diff --git a/kubernetes/proxy-ingress/audiobook-proxy-ingress.yml b/kubernetes/proxy-ingress/audiobook-proxy-ingress.yml index 43b3958..966144d 100644 --- a/kubernetes/proxy-ingress/audiobook-proxy-ingress.yml +++ b/kubernetes/proxy-ingress/audiobook-proxy-ingress.yml @@ -1,53 +1,53 @@ -apiVersion: networking.k8s.io/v1 -kind: Ingress -metadata: - name: audiobookshelf-ingress - namespace: projects - annotations: - cert-manager.io/cluster-issuer: cloudflare-issuer -spec: - ingressClassName: nginx - tls: - - hosts: - - audiobook.alexmickelson.guru - secretName: audiobookshelf-tls-cert - rules: - - host: audiobook.alexmickelson.guru - http: - paths: - - path: / - pathType: Prefix - backend: - service: - name: audiobookshelf - port: - number: 13378 ---- -apiVersion: v1 -kind: Service -metadata: - name: audiobookshelf - namespace: projects -spec: - ports: - - port: 13378 - targetPort: 13378 - protocol: TCP ---- -apiVersion: discovery.k8s.io/v1 -kind: EndpointSlice -metadata: - name: audiobookshelf - namespace: projects - labels: - kubernetes.io/service-name: audiobookshelf -addressType: IPv4 -ports: -- name: http - port: 13378 - protocol: TCP -endpoints: -- addresses: - - 100.122.128.107 - conditions: - ready: true +# apiVersion: networking.k8s.io/v1 +# kind: Ingress +# metadata: +# name: audiobookshelf-ingress +# namespace: projects +# annotations: +# cert-manager.io/cluster-issuer: cloudflare-issuer +# spec: +# ingressClassName: nginx +# tls: +# - hosts: +# - audiobook.alexmickelson.guru +# secretName: audiobookshelf-tls-cert +# rules: +# - host: audiobook.alexmickelson.guru +# http: +# paths: +# - path: / +# pathType: Prefix +# backend: +# service: +# name: audiobookshelf +# port: +# number: 13378 +# --- +# apiVersion: v1 +# kind: Service +# metadata: +# name: audiobookshelf +# namespace: projects +# spec: +# ports: +# - port: 13378 +# targetPort: 13378 +# protocol: TCP +# --- +# apiVersion: discovery.k8s.io/v1 +# kind: EndpointSlice +# metadata: +# name: audiobookshelf +# namespace: projects +# labels: +# kubernetes.io/service-name: audiobookshelf +# addressType: IPv4 +# ports: +# - name: http +# port: 13378 +# protocol: TCP +# endpoints: +# - addresses: +# - 100.122.128.107 +# conditions: +# ready: true