Kubernetes
There is no published Helm repository or OCI chart. The examples live in the repository under examples/kubernetes/, and use the image ghcr.io/papagolabs/outtake:latest.
In a cluster, Outtake usually reads the Plex media from an NFS share and keeps its clips in S3 and its data in Postgres. The media share is only ever read: clips and the database never live on it.
Example manifests
Two Kustomize stacks run Outtake with SeaweedFS for S3 and a database:
seaweedfs-cnpguses CloudNativePG for Postgres. Install the CloudNativePG operator first.seaweedfs-cockroachuses a single-node CockroachDB started with--insecure. It is for development only, so do not use that topology in production.
Before applying either one:
- Replace
nfs.example.internaland/export/plexwith your Plex media NFS server and export. - Replace the
outtake-s3keys, and the matching identity in SeaweedFS’sconfig.json.
Then apply it:
kubectl apply -k examples/kubernetes/seaweedfs-cnpgor
kubectl apply -k examples/kubernetes/seaweedfs-cockroachExample Helm chart
examples/kubernetes/helm/outtake is an example chart to install from a checkout. Do not helm repo add it. Its README lists the values.
- The one value every install needs is the media: set
media.nfs.serverandmedia.nfs.path, ormedia.existingClaimfor a claim you made. - Set
media.plexMediaRootwhen Plex reports a different prefix for the files, as Media paths describes. - Without anything else enabled, the chart uses the same defaults as Compose: files on a volume and SQLite.
- Enable at most one file backend,
backends.seaweedfsorbackends.rustfs, and at most one database backend,backends.cockroachorbackends.cnpg.
Configuration
Every setting is an OUTTAKE_* environment variable on the container (see Configuration). Set OUTTAKE_PUBLIC_BASE_URL to the URL of your ingress, so Plex login returns there and Outtake answers to that host name.