-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathcompose.yaml
More file actions
89 lines (76 loc) · 2.5 KB
/
compose.yaml
File metadata and controls
89 lines (76 loc) · 2.5 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
name: jellyfin
x-daemonless:
title: "Jellyfin"
icon: ":simple-jellyfin:"
category: "Media Servers"
description: "Volunteer-built media solution that puts you in control — stream to any device from your own server, with no strings attached."
upstream_url: "https://github.com/jellyfin/jellyfin"
web_url: "https://jellyfin.org/"
freshports_url: "https://www.freshports.org/multimedia/jellyfin/"
user: "bsd"
mlock: true
upstream_binary: false
appjail: true
notes: |
## Hardware Acceleration (VAAPI)
Intel iGPU hardware transcoding is supported via VAAPI. The image includes
`libva`, `libva-intel-media-driver`, and `gmmlib`.
**Host setup required** — the GPU must be enabled and a devfs ruleset must
expose the DRI devices into the jail:
1. Install the DRM kernel module and firmware:
```
pkg install drm-kmod libva-intel-media-driver gmmlib
echo 'kld_list="i915kms"' >> /etc/rc.conf
kldload i915kms
```
2. Add a devfs ruleset to `/etc/devfs.rules`:
```
[devfsrules_jails_gpu=61182]
add include $devfsrules_hide_all
add include $devfsrules_unhide_basic
add include $devfsrules_unhide_login
add path 'bpf*' unhide
add path 'dri' unhide
add path 'dri/*' unhide mode 0666
add path 'drm*' unhide mode 0666
```
3. Configure the jail to use ruleset `61182` and enable `allow.mlock`
(already set in the example compose above).
4. In Jellyfin: **Dashboard → Playback → Transcoding** → set Hardware
acceleration to **VAAPI**, device `/dev/dri/renderD128`.
docs:
env:
PUID: "User ID for the application process"
PGID: "Group ID for the application process"
TZ: "Timezone for the container"
volumes:
/config: "Configuration directory"
/cache:
desc: "Cache directory"
optional: true
/tv:
desc: "TV Series library"
optional: true
/movies:
desc: "Movie library"
optional: true
ports:
8096: "Web UI"
services:
jellyfin:
image: ghcr.io/daemonless/jellyfin:latest
container_name: jellyfin
restart: unless-stopped
annotations:
org.freebsd.jail.allow.mlock: "true"
environment:
- PUID=1000
- PGID=1000
- TZ=UTC
volumes:
- /path/to/containers/jellyfin:/config
- /path/to/cache:/cache # optional
- /path/to/tv:/tv # optional
- /path/to/movies:/movies # optional
ports:
- 8096:8096