init
This commit is contained in:
20
README.md
Normal file
20
README.md
Normal 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
17
docker-compose.yaml
Normal 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
42
k8s/deploy.yaml
Normal 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
18
k8s/ingress.yaml
Normal 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
35
k8s/pvc/pvc.yaml
Normal 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
10
k8s/service.yaml
Normal file
@@ -0,0 +1,10 @@
|
||||
apiVersion: v1
|
||||
kind: Service
|
||||
metadata:
|
||||
name: jf-web
|
||||
spec:
|
||||
selector:
|
||||
app: jf
|
||||
ports:
|
||||
- port: 8096
|
||||
targetPort: 8096
|
||||
Reference in New Issue
Block a user