From faacf921af6378f48a82e5c73d934fd1a66b02cf Mon Sep 17 00:00:00 2001 From: KnightArtorias Date: Sat, 20 Jun 2026 21:17:01 -0400 Subject: [PATCH] Use shelfmark instead of RMAB --- services/shelfmark/shelfmark-deployment.yaml | 67 ++++++++++++++++++++ services/shelfmark/shelfmark-ingress.yaml | 25 ++++++++ services/shelfmark/shelfmark-pvcs.yaml | 14 ++++ services/shelfmark/shelfmark-service.yaml | 14 ++++ 4 files changed, 120 insertions(+) create mode 100644 services/shelfmark/shelfmark-deployment.yaml create mode 100644 services/shelfmark/shelfmark-ingress.yaml create mode 100644 services/shelfmark/shelfmark-pvcs.yaml create mode 100644 services/shelfmark/shelfmark-service.yaml diff --git a/services/shelfmark/shelfmark-deployment.yaml b/services/shelfmark/shelfmark-deployment.yaml new file mode 100644 index 0000000..7793269 --- /dev/null +++ b/services/shelfmark/shelfmark-deployment.yaml @@ -0,0 +1,67 @@ +apiVersion: apps/v1 +kind: Deployment +metadata: + name: shelfmark + namespace: default + annotations: + reloader.stakater.com/auto: "true" +spec: + replicas: 1 + strategy: + type: Recreate + selector: + matchLabels: + app: shelfmark + template: + metadata: + labels: + app: shelfmark + spec: + containers: + - name: shelfmark + image: ghcr.io/calibrain/shelfmark:latest + env: + - name: PUID + value: "1000" + - name: PGID + value: "1000" + - name: TZ + value: America/New_York + - name: DISABLE_LOCAL_AUTH + value: "true" + - name: OIDC_ENABLE + value: "true" + - name: OIDC_ISSUER + value: "https://sso.mynest.love/realms/nest" + - name: OIDC_CLIENT_ID + value: "shelfmark" + - name: OIDC_ADMIN_GROUP + value: "admin" + ports: + - containerPort: 8084 + name: web-ui + volumeMounts: + - mountPath: /config + name: shelfmark-config + - mountPath: /books + name: calibre-ingest + - mountPath: /audiobooks + name: audiobookshelf + - mountPath: /downloads + name: downloads + volumes: + - name: shelfmark-config + persistentVolumeClaim: + claimName: shelfmark-config-pvc + - name: calibre-ingest + nfs: + server: robin.home.nest + path: /yarr/media/books/calibre-ingest + - name: audiobookshelf + nfs: + server: robin.home.nest + path: /yarr/media/audiobooks + - name: downloads + nfs: + server: robin.home.nest + path: /yarr/downloads diff --git a/services/shelfmark/shelfmark-ingress.yaml b/services/shelfmark/shelfmark-ingress.yaml new file mode 100644 index 0000000..290c7fd --- /dev/null +++ b/services/shelfmark/shelfmark-ingress.yaml @@ -0,0 +1,25 @@ +apiVersion: networking.k8s.io/v1 +kind: Ingress +metadata: + name: shelfmark-ingress + namespace: default + annotations: + cert-manager.io/cluster-issuer: "letsencrypt-prod" + traefik.ingress.kubernetes.io/router.entrypoints: websecure + traefik.ingress.kubernetes.io/router.tls: "true" +spec: + tls: + - hosts: + - magpie.mynest.love + secretName: shelfmark-tls + rules: + - host: magpie.mynest.love + http: + paths: + - path: / + pathType: Prefix + backend: + service: + name: shelfmark + port: + name: http-web diff --git a/services/shelfmark/shelfmark-pvcs.yaml b/services/shelfmark/shelfmark-pvcs.yaml new file mode 100644 index 0000000..1e20135 --- /dev/null +++ b/services/shelfmark/shelfmark-pvcs.yaml @@ -0,0 +1,14 @@ +apiVersion: v1 +kind: PersistentVolumeClaim +metadata: + name: shelfmark-config-pvc + labels: + recurring-job.longhorn.io/source: "enabled" + recurring-job-group.longhorn.io/app-config-group: "enabled" +spec: + accessModes: + - ReadWriteOnce + storageClassName: longhorn + resources: + requests: + storage: 1Gi diff --git a/services/shelfmark/shelfmark-service.yaml b/services/shelfmark/shelfmark-service.yaml new file mode 100644 index 0000000..2f4e7fe --- /dev/null +++ b/services/shelfmark/shelfmark-service.yaml @@ -0,0 +1,14 @@ +apiVersion: v1 +kind: Service +metadata: + labels: + app: shelfmark + name: shelfmark +spec: + type: ClusterIP + ports: + - name: http-web + port: 80 + targetPort: web-ui + selector: + app: shelfmark