Skip to content

Emby

Media server.

Runtime Container (Docker Swarm)
Tier Media
Node swarm-media
Image emby/embyserver:4.9.5.0
URL https://emby.lab.riversfamily.uk
Auth Own login — deliberately not behind Authentik
Source ansible/stacks/media/emby/

Configuration

Deliberately not behind forward-auth. Emby's TV and mobile clients authenticate directly against the server; a forward-auth gate on the router would break them, so Emby keeps its own login instead.

GPU transcode is conditional on emby_gpu_enabled (currently false — see Gotchas):

deploy:
  resources:
    reservations:
      generic_resources:
        - discrete_resource_spec:
            kind: NVIDIA-GPU
            value: 1
When enabled, also sets NVIDIA_VISIBLE_DEVICES=all, NVIDIA_DRIVER_CAPABILITIES=all.

Volumes

Volume Path Backing Contents
config /config Local Emby application state and library metadata
media /media Local Media library

Secrets

None.

Gotchas

  • No GPU fitted yet. emby_gpu_enabled resolves from hostvars['swarm-media'].docker_install_nvidia_toolkit, currently false in host_vars/swarm-media.yml. Emby runs CPU-only transcoding until a GPU is physically installed; flip that host var (or remove the override) and re-deploy once it is. See Resources.
  • The GPU reservation requires the swarm-media Docker daemon to advertise the GPU as a node generic resource (node-generic-resources); until the driver and toolkit are installed, this reservation would be unschedulable even if the env vars were flipped on manually.