Stub out shelfmark

This commit is contained in:
Astra Logical 2026-06-16 13:25:12 -04:00
parent dc2bbe8743
commit 112566892c
6 changed files with 210 additions and 1 deletions

View file

@ -14,4 +14,4 @@ spec:
volumes:
- name: target-volume
persistentVolumeClaim:
claimName: jellyseerr-data-pvc
claimName: readmeabook-config-pvc

View file

@ -0,0 +1,66 @@
apiVersion: apps/v1
kind: Deployment
metadata:
name: readmeabook
labels:
app: readmeabook
spec:
replicas: 1
selector:
matchLabels:
app: readmeabook
strategy:
type: Recreate
template:
metadata:
labels:
app: readmeabook
spec:
containers:
- name: readmeabook
image: ghcr.io/kikootwo/readmeabook:latest
env:
- name: TZ
value: America/New_York
- name: PUBLIC_URL
value: "https://albatross.mynest.love"
ports:
- containerPort: 3030
protocol: TCP
name: web-ui
volumeMounts:
- mountPath: /media
name: readmeabook-media
- mountPath: /downloads
name: readmeabook-downloads
- mountPath: /app/config
name: readmeabook-config
- mountPath: /app/cache
name: readmeabook-cache
- mountPath: /var/lib/postgresql/data
name: readmeabook-pgdata
subPath: postgres-data
- mountPath: /var/lib/redis
name: readmeabook-redis
restartPolicy: Always
volumes:
- name: readmeabook-media
nfs:
server: robin.home.nest
path: /yarr/media/audiobooks
- name: readmeabook-downloads
nfs:
server: robin.home.nest
path: /yarr/downloads
- name: readmeabook-config
persistentVolumeClaim:
claimName: readmeabook-config-pvc
- name: readmeabook-cache
persistentVolumeClaim:
claimName: readmeabook-cache-pvc
- name: readmeabook-pgdata
persistentVolumeClaim:
claimName: readmeabook-pgdata-pvc
- name: readmeabook-redis
persistentVolumeClaim:
claimName: readmeabook-redis-pvc

View file

@ -0,0 +1,36 @@
apiVersion: traefik.io/v1alpha1
kind: Middleware
metadata:
name: readmeabook-proxy-headers
namespace: default
spec:
headers:
customRequestHeaders:
X-Forwarded-Proto: "https"
---
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: readmeabook-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"
traefik.ingress.kubernetes.io/router.middlewares: default-readmeabook-proxy-headers@kubernetescrd
spec:
tls:
- hosts:
- albatross.mynest.love
secretName: readmeabook-tls
rules:
- host: albatross.mynest.love
http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: readmeabook
port:
name: http-web

View file

@ -0,0 +1,57 @@
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: readmeabook-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
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: readmeabook-cache-pvc
labels:
recurring-job.longhorn.io/source: "enabled"
spec:
accessModes:
- ReadWriteOnce
storageClassName: longhorn
resources:
requests:
storage: 5Gi
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: readmeabook-pgdata-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: 2Gi
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: readmeabook-redis-pvc
labels:
recurring-job.longhorn.io/source: "enabled"
spec:
accessModes:
- ReadWriteOnce
storageClassName: longhorn
resources:
requests:
storage: 1Gi

View file

@ -0,0 +1,14 @@
apiVersion: v1
kind: Service
metadata:
name: readmeabook
labels:
app: readmeabook
spec:
type: ClusterIP
ports:
- name: http-web
port: 80
targetPort: web-ui
selector:
app: readmeabook

View file

@ -0,0 +1,36 @@
apiVersion: apps/v1
kind: Deployment
metadata:
name: shelfmark
namespace: media
spec:
replicas: 1
selector:
matchLabels:
app: shelfmark
template:
metadata:
labels:
app: shelfmark
spec:
containers:
- name: shelfmark
image: calibrain/shelfmark:latest
ports:
- containerPort: 8084
env:
- name: TZ
value: "America/New_York"
volumeMounts:
- name: config
mountPath: /config
# This is where Shelfmark will write finished downloads
- name: ebook-ingress
mountPath: /downloads/books
volumes:
- name: config
persistentVolumeClaim:
claimName: shelfmark-config-pvc
- name: ebook-ingress
persistentVolumeClaim:
claimName: ebook-pipeline-pvc