Nomploy Nomad Packs

← All packs

jellyfin v0.1.0

Apps

Jellyfin — the free software media system: stream your own movies, TV, music, and photos to any device with no tracking and no fees. Deployed as a single host-networked Nomad service with config and cache volumes and a read-only media volume you fill with your library.

nomad-pack run jellyfin --registry nomploy
1 task http 8096 3 volumes image jellyfin/jellyfin:latest
Variables 11
values.hcl

Save as values.hcl, edit, then run:

nomad-pack run jellyfin -f values.hcl --registry nomploy
# The name of the Nomad job.
job_name = "jellyfin"

# The Nomad namespace to deploy into.
namespace = "default"

# The datacenters to deploy to.
datacenters = ["*"]

# The official Jellyfin container image. Pin a tag in production.
image = "jellyfin/jellyfin:latest"

# Host port for the Jellyfin web UI (Jellyfin's default HTTP port; to use another you must also change it in Dashboard -> Networking after first run).
port = 8096

# Named volume for Jellyfin config, metadata, and its database (/config).
config_volume = "jellyfin_config"

# Named volume for transcoding/cache data (/cache).
cache_volume = "jellyfin_cache"

# Named volume mounted read-only at /media — fill it with your library.
media_volume = "jellyfin_media"

# Optional public URL clients should use (JELLYFIN_PublishedServerUrl). Empty = auto.
published_server_url = ""

# Placement constraints. Pin to the node holding the volumes. On a nomploy cluster: attribute = "$${meta.nomploy_control_plane}", operator = "=", value = "true".
constraints = []

# The task resources (raise cpu for software transcoding).
resources = {
    cpu    = 2000
    memory = 1024
  }
NameTypeDefaultDescription
job_name string
"jellyfin"
The name of the Nomad job.
namespace string
"default"
The Nomad namespace to deploy into.
datacenters list
["*"]
The datacenters to deploy to.
image string
"jellyfin/jellyfin:latest"
The official Jellyfin container image. Pin a tag in production.
port number
8096
Host port for the Jellyfin web UI (Jellyfin's default HTTP port; to use another you must also change it in Dashboard -> Networking after first run).
config_volume string
"jellyfin_config"
Named volume for Jellyfin config, metadata, and its database (/config).
cache_volume string
"jellyfin_cache"
Named volume for transcoding/cache data (/cache).
media_volume string
"jellyfin_media"
Named volume mounted read-only at /media — fill it with your library.
published_server_url string
""
Optional public URL clients should use (JELLYFIN_PublishedServerUrl). Empty = auto.
constraints list
[]
Placement constraints. Pin to the node holding the volumes. On a nomploy cluster: attribute = "$${meta.nomploy_control_plane}", operator = "=", value = "true".
resources object
{
    cpu    = 2000
    memory = 1024
  }
The task resources (raise cpu for software transcoding).
Readme

jellyfin

Jellyfin — the free software media system. Stream your own movies, TV, music, and photos to any device, with no tracking and no fees.

Single host-networked Nomad service (the official jellyfin/jellyfin image, runs as root so the fresh volumes are writable). Config and cache volumes plus a read-only media volume.

Deploy

nomad-pack registry add nomploy https://github.com/Nomploy/nomad-packs
nomad-pack run jellyfin --registry=nomploy

Configure

Variable Default Description
port 8096 Web UI port. See note below.
config_volume jellyfin_config /config — config, metadata, database.
cache_volume jellyfin_cache /cache — transcode/cache.
media_volume jellyfin_media /media, read-only — your library.
published_server_url "" Optional public URL (JELLYFIN_PublishedServerUrl).
image jellyfin/jellyfin:latest Container image. Pin a tag in production.
resources { cpu = 2000, memory = 1024 } Task resources; raise cpu for transcoding.

Notes