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
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_enabledresolves fromhostvars['swarm-media'].docker_install_nvidia_toolkit, currentlyfalseinhost_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.