Research-Stack/4-Infrastructure/kube/manifests/arr-stack.yaml
Brandon Schneider 0d87bcb770 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

142 lines
2.8 KiB
YAML

---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: radarr-config
namespace: media
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 1Gi
storageClassName: local-path
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: radarr
namespace: media
spec:
replicas: 1
selector:
matchLabels:
app: radarr
template:
metadata:
labels:
app: radarr
spec:
nodeSelector:
kubernetes.io/hostname: qfox-1
containers:
- name: radarr
image: lscr.io/linuxserver/radarr:latest
ports:
- containerPort: 7878
env:
- name: PUID
value: "1000"
- name: PGID
value: "100"
volumeMounts:
- name: config
mountPath: /config
- name: media
mountPath: /media/downloads
subPath: downloads
- name: media
mountPath: /media/movies
subPath: movies
volumes:
- name: config
persistentVolumeClaim:
claimName: radarr-config
- name: media
persistentVolumeClaim:
claimName: media-store
---
apiVersion: v1
kind: Service
metadata:
name: radarr
namespace: media
spec:
type: NodePort
ports:
- port: 7878
targetPort: 7878
nodePort: 30086
selector:
app: radarr
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: lidarr-config
namespace: media
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 1Gi
storageClassName: local-path
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: lidarr
namespace: media
spec:
replicas: 1
selector:
matchLabels:
app: lidarr
template:
metadata:
labels:
app: lidarr
spec:
nodeSelector:
kubernetes.io/hostname: qfox-1
containers:
- name: lidarr
image: lscr.io/linuxserver/lidarr:latest
ports:
- containerPort: 8686
env:
- name: PUID
value: "1000"
- name: PGID
value: "100"
volumeMounts:
- name: config
mountPath: /config
- name: media
mountPath: /media/downloads
subPath: downloads
- name: media
mountPath: /media/music
subPath: music
volumes:
- name: config
persistentVolumeClaim:
claimName: lidarr-config
- name: media
persistentVolumeClaim:
claimName: media-store
---
apiVersion: v1
kind: Service
metadata:
name: lidarr
namespace: media
spec:
type: NodePort
ports:
- port: 8686
targetPort: 8686
nodePort: 30087
selector:
app: lidarr