Research-Stack/4-Infrastructure/kube/manifests/ebook2audiobook.yaml
Brandon Schneider 1b816fafe7 feat(infra): media stack, Vaultwarden, Cloudflare tunnel, OIDC providers, Caddy TLS
- Media stack deployed: qBittorrent, Sonarr, Radarr, Lidarr, Prowlarr, Bazarr,
  Navidrome, Audiobookshelf, Jellyfin, Homarr, Kavita, MeTube, SuggestArr, BoxArr
- Romm, ebook2audiobook (GPU CUDA), TrailBase, FlareSolverr deployed
- Vaultwarden + Vaultwarden-API deployed
- Caddy reverse proxy on racknerd with Let's Encrypt TLS at *.researchstack.info
- Authentik 7 OIDC providers + 12 proxy providers for SSO
- NVIDIA GPU support enabled on k3s (device plugin + containerd runtime)
- Cloudflare tunnel created (DNS on Porkbun)

Build: 3313 jobs, 0 errors (lake build Compiler)
2026-05-31 11:01:39 -05:00

126 lines
2.5 KiB
YAML

---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: e2a-ebooks
namespace: media
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 50Gi
storageClassName: local-path
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: e2a-audiobooks
namespace: media
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 100Gi
storageClassName: local-path
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: e2a-models
namespace: media
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 30Gi
storageClassName: local-path
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: e2a-voices
namespace: media
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 10Gi
storageClassName: local-path
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: ebook2audiobook
namespace: media
spec:
replicas: 1
selector:
matchLabels:
app: ebook2audiobook
template:
metadata:
labels:
app: ebook2audiobook
spec:
nodeSelector:
kubernetes.io/hostname: qfox-1
containers:
- name: e2a
image: athomasson2/ebook2audiobook:cu128
ports:
- containerPort: 7860
env:
- name: GRADIO_SERVER_NAME
value: "0.0.0.0"
resources:
limits:
nvidia.com/gpu: 1
memory: "16Gi"
cpu: "4"
requests:
memory: "4Gi"
cpu: "1"
volumeMounts:
- name: ebooks
mountPath: /app/ebooks
- name: audiobooks
mountPath: /app/audiobooks
- name: models
mountPath: /app/models
- name: voices
mountPath: /app/voices
- name: tmp
mountPath: /app/tmp
volumes:
- name: ebooks
persistentVolumeClaim:
claimName: e2a-ebooks
- name: audiobooks
persistentVolumeClaim:
claimName: e2a-audiobooks
- name: models
persistentVolumeClaim:
claimName: e2a-models
- name: voices
persistentVolumeClaim:
claimName: e2a-voices
- name: tmp
emptyDir: {}
---
apiVersion: v1
kind: Service
metadata:
name: ebook2audiobook
namespace: media
spec:
type: NodePort
ports:
- port: 7860
targetPort: 7860
nodePort: 30103
selector:
app: ebook2audiobook