add media services

This commit is contained in:
2025-03-19 20:00:55 +01:00
parent 923cc6dd52
commit ce802a4891
25 changed files with 523 additions and 0 deletions

View File

@@ -0,0 +1,30 @@
# Flaresolverr Deployment
apiVersion: apps/v1
kind: Deployment
metadata:
name: flaresolverr
namespace: jellyfin
spec:
replicas: 1
selector:
matchLabels:
app: flaresolverr
template:
metadata:
labels:
app: flaresolverr
spec:
containers:
- name: flaresolverr
image: ghcr.io/flaresolverr/flaresolverr:latest
ports:
- containerPort: 8191
env:
- name: LOG_LEVEL
value: "info"
- name: LOG_HTML
value: "false"
- name: CAPTCHA_SOLVER
value: "none"
- name: TZ
value: "Europe/Rome"

View File

@@ -0,0 +1,25 @@
# Optional Flaresolverr Ingress
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: flaresolverr-ingress
namespace: jellyfin
annotations:
cert-manager.io/cluster-issuer: letsencrypt-prod
nginx.ingress.kubernetes.io/ssl-redirect: "true"
spec:
tls:
- hosts:
- flaresolverr.beatrice.wtf
secretName: flaresolverr-tls
rules:
- host: flaresolverr.beatrice.wtf
http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: flaresolverr
port:
number: 80

View File

@@ -0,0 +1,14 @@
# Flaresolverr Service
apiVersion: v1
kind: Service
metadata:
name: flaresolverr
namespace: jellyfin
spec:
selector:
app: flaresolverr
ports:
- name: http
protocol: TCP
port: 80
targetPort: 8191

View File

@@ -0,0 +1,13 @@
# PVC for Jackett "blackhole" (downloads) folder
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: jackett-blackhole
namespace: jellyfin
spec:
accessModes:
- ReadWriteMany
storageClassName: longhorn
resources:
requests:
storage: 10Gi

View File

@@ -0,0 +1,13 @@
# PVC for Jackett configuration
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: jackett-config
namespace: jellyfin
spec:
accessModes:
- ReadWriteOnce
storageClassName: longhorn
resources:
requests:
storage: 10Gi

View File

@@ -0,0 +1,44 @@
# Jackett Deployment
apiVersion: apps/v1
kind: Deployment
metadata:
name: jackett
namespace: jellyfin
spec:
replicas: 1
selector:
matchLabels:
app: jackett
template:
metadata:
labels:
app: jackett
spec:
containers:
- name: jackett
image: lscr.io/linuxserver/jackett:latest
ports:
- containerPort: 9117
env:
- name: PUID
value: "1000"
- name: PGID
value: "1000"
- name: TZ
value: "Etc/UTC"
- name: AUTO_UPDATE
value: "true"
- name: RUN_OPTS
value: ""
volumeMounts:
- name: config
mountPath: /config
- name: blackhole
mountPath: /downloads
volumes:
- name: config
persistentVolumeClaim:
claimName: jackett-config
- name: blackhole
persistentVolumeClaim:
claimName: jackett-blackhole

View File

@@ -0,0 +1,25 @@
# Optional Jackett Ingress
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: jackett-ingress
namespace: jellyfin
annotations:
cert-manager.io/cluster-issuer: letsencrypt-prod
nginx.ingress.kubernetes.io/ssl-redirect: "true"
spec:
tls:
- hosts:
- jackett.beatrice.wtf
secretName: jackett-tls
rules:
- host: jackett.beatrice.wtf
http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: jackett
port:
number: 80

View File

@@ -0,0 +1,14 @@
# Jackett Service
apiVersion: v1
kind: Service
metadata:
name: jackett
namespace: jellyfin
spec:
selector:
app: jackett
ports:
- name: http
protocol: TCP
port: 80
targetPort: 9117

View File

@@ -0,0 +1,13 @@
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
resources:
- namespace.yaml
- jackett-blackhole-pvc.yaml
- jackett-config-pvc.yaml
- jackett-deploy.yaml
- jackett-svc.yaml
- jackett-ingress.yaml
- flaresolverr-deploy.yaml
- flaresolverr-svc.yaml
- flaresolverr-ingress.yaml

View File

@@ -0,0 +1,4 @@
apiVersion: v1
kind: Namespace
metadata:
name: jellyfin