This commit is contained in:
ducoterra
2020-03-15 17:15:07 -04:00
commit 32fdbe0321
6 changed files with 142 additions and 0 deletions

20
README.md Normal file
View File

@@ -0,0 +1,20 @@
# Jellyfin
## Setup
```bash
docker pull jellyfin/jellyfin:latest
mkdir -p /srv/jellyfin/{config,cache}
docker run -d -v /srv/jellyfin/config:/config -v /srv/jellyfin/cache:/cache -v /media:/media --net=host jellyfin/jellyfin:latest
```
## Copy lots of files
```bash
# Copy lots of specific files
find *.m4v | xargs -I {} echo \'{}\'
find ./*.m4v | xargs -I {} --v=2 kubectl cp \'{}\' jellyfin jf-59959d4895-p8gbx:/media/
# view file size
find ./*.m4v | xargs -I {} ls -lah {}
```

17
docker-compose.yaml Normal file
View File

@@ -0,0 +1,17 @@
version: '3'
services:
jf:
image: jellyfin/jellyfin:latest
volumes:
- ./media:/media
- jf-data:/config
- jf-cache:/cache
ports:
- "8080:8096"
- "8443:8920"
- "1900:1900"
volumes:
jf-data:
jf-cache:

42
k8s/deploy.yaml Normal file
View File

@@ -0,0 +1,42 @@
apiVersion: apps/v1
kind: Deployment
metadata:
name: jf
spec:
selector:
matchLabels:
app: jf
template:
metadata:
labels:
app: jf
spec:
containers:
- name: jf
image: jellyfin/jellyfin:latest
volumeMounts:
- mountPath: /media
name: jf-media
- mountPath: /config
name: jf-config
- mountPath: /cache
name: jf-cache
resources:
limits:
memory: "2Gi"
cpu: "2"
requests:
memory: "500Mi"
cpu: "1m"
ports:
- containerPort: 8096
volumes:
- name: jf-media
persistentVolumeClaim:
claimName: jellyfin-media
- name: jf-config
persistentVolumeClaim:
claimName: jellyfin-config
- name: jf-cache
persistentVolumeClaim:
claimName: jellyfin-cache

18
k8s/ingress.yaml Normal file
View File

@@ -0,0 +1,18 @@
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
annotations:
ingress.kubernetes.io/ssl-redirect: "true"
name: jf
spec:
tls:
- hosts:
- jf.ducoterra.net
secretName: letsencrypt
rules:
- host: jf.ducoterra.net
http:
paths:
- backend:
serviceName: jf-web
servicePort: 8096

35
k8s/pvc/pvc.yaml Normal file
View File

@@ -0,0 +1,35 @@
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: jellyfin-media
spec:
storageClassName: nfs-encrypted
accessModes:
- ReadWriteMany
resources:
requests:
storage: 512Gi
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: jellyfin-cache
spec:
storageClassName: nfs-encrypted
accessModes:
- ReadWriteMany
resources:
requests:
storage: 32Gi
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: jellyfin-config
spec:
storageClassName: nfs-encrypted
accessModes:
- ReadWriteMany
resources:
requests:
storage: 32Gi

10
k8s/service.yaml Normal file
View File

@@ -0,0 +1,10 @@
apiVersion: v1
kind: Service
metadata:
name: jf-web
spec:
selector:
app: jf
ports:
- port: 8096
targetPort: 8096