Skip to content

Emby media server

EmbyMedia

To be able to watch local media directly from my televisions and mobile devices, I rolled out emby media server. Most televisions have a built-in client / app available for emby, check here whether your TV or media player is supported.

Emby

Naturally, this emby installation runs in a docker container on my cluster.

Because the cluster nodes are equipped with VideoCore, I connect them as a device to the docker container.

Volume mount -> /dev/vchiq to /vchiq

Raspberry Pi Specs

Configuration

The Emby server installation on my cluster uses standard ports to make the configuration of the client app as simple as possible, after deploying the container, service and ingress, emby is available at:

HTTP HTTPS

Deployment

apiVersion: apps/v1
kind: Deployment
name: emby-media
namespace: default
spec:
template:
spec:
containers:
- env:
- name: UID
value: "1036"
- name: GID
value: "101"
image: emby/embyserver_arm64v8:latest
imagePullPolicy: Always
name: emby-media
ports:
- containerPort: 8096
name: embyhttp
protocol: TCP
- containerPort: 8920
name: embyhttps
protocol: TCP
volumeMounts:
- mountPath: /config
name: embydata
subPath: config
- mountPath: /data/movies
name: embymedia
subPath: movies
- mountPath: /data/tv-shows
name: embymedia
subPath: tv-shows
- mountPath: /data/Children'smovies
name: embymedia
subPath: Children's films
- mountPath: /data/intro
name: embymedia
subPath: intro
- mountPath: /dev/vchiq
name: vchiq
dnsPolicy: ClusterFirst
imagePullSecrets:
- name: default-token-6qsd5
restartPolicy: Always
schedulerName: default-scheduler
securityContext: {}
terminationGracePeriodSeconds: 30
volumes:
- name: embydata
nfs:
path: /volume1/k3s/data/emby
server: syn04.loevencloud.nl
- name: embymedia
nfs:
path: /volume1/media
server: syn04.loevencloud.nl
- hostPath:
path: /dev/vchiq
type: ""
name: vchiq

Service

apiVersion: v1
kind: Service
name: emby-media
namespace: default
spec:
internalTrafficPolicy: Cluster
ipFamilies:
- IPv4
ipFamilyPolicy: SingleStack
ports:
- name: embyhttp
port: 8096
protocol: TCP
targetPort: 8096
- name: embyhttps
port: 8920
protocol: TCP
targetPort: 8920
type: ClusterIP
status:
loadBalancer: {}

Ingress

apiVersion: networking.k8s.io/v1
kind: Ingress
name: in-emby
namespace: default
spec:
rules:
- host: emby.loevencloud.nl
http:
paths:
- backend:
service:
name: emby-media
port:
number: 8096
pathType: ImplementationSpecific
tls:
- hosts:
- emby.loevencloud.nl
secretName: secret-tls-emby