-
Notifications
You must be signed in to change notification settings - Fork 32
Expand file tree
/
Copy pathdocker-compose.example.yml
More file actions
145 lines (129 loc) · 5.61 KB
/
docker-compose.example.yml
File metadata and controls
145 lines (129 loc) · 5.61 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
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
# Docker Compose Examples for Plex Generate Previews
#
# Copy this file to docker-compose.yml and modify as needed.
# Choose ONE of the configurations below based on your setup.
#
# All settings (Plex, GPU, processing) are configured in the web UI at
# http://YOUR_IP:8080. settings.json in /config is the source of truth.
#
# Full configuration reference: docs/reference.md
# =============================================================================
# CONFIGURATION 1: GPU (Intel / AMD / NVIDIA)
# =============================================================================
# Covers all three GPU vendors in one service.
# Uncomment/modify the blocks for your hardware.
# =============================================================================
services:
plex-previews-gpu:
image: stevezzau/plex_generate_vid_previews:latest
container_name: plex-generate-previews
restart: unless-stopped
ports:
- "8080:8080"
# --- Intel / AMD GPU (VAAPI) ---
# Both use /dev/dri passthrough. Verify with: ls -la /dev/dri
# GPU device groups (render/video) are auto-detected at startup.
devices:
- /dev/dri:/dev/dri
# --- NVIDIA GPU ---
# Comment out the 'devices' block above and uncomment the deploy block.
# Requires NVIDIA Container Toolkit:
# https://docs.nvidia.com/datacenter/cloud-native/container-toolkit/install-guide.html
#
# deploy:
# resources:
# reservations:
# devices:
# - driver: nvidia
# count: all
# capabilities: [gpu]
environment:
# --- NVIDIA only (uncomment if using NVIDIA) ---
# - NVIDIA_VISIBLE_DEVICES=all
# Use 'all' (or at minimum 'compute,video,utility,graphics') so the
# NVIDIA Vulkan driver is injected into the container. The 'graphics'
# capability is required for Dolby Vision Profile 5 thumbnails (which
# use libplacebo Vulkan tone-mapping) — without it, the NVIDIA Vulkan
# ICD is not mounted and tone-mapping falls back to software rendering.
# - NVIDIA_DRIVER_CAPABILITIES=all
# User/group (match your host user; Unraid: 99/100)
- PUID=1000
- PGID=1000
# Timezone — ensures log timestamps and scheduled jobs use your local time
# - TZ=America/New_York
# Disable built-in auth when behind a reverse proxy or VPN (Authelia, Tailscale, etc.)
# Webhook auth (Radarr/Sonarr) is not affected.
# - AUTH_METHOD=external
volumes:
# Your media files (read-only)
- /path/to/your/media:/media:ro
# Plex application data (read-write for saving BIF files)
- /path/to/plex/config:/plex:rw
# App settings, schedules, and job history
- /path/to/app/config:/config:rw
# Host timezone (works on all Linux variants)
- /etc/localtime:/etc/localtime:ro
# =============================================================================
# CONFIGURATION 2: CPU-Only
# =============================================================================
# For systems without GPU or when GPU acceleration isn't needed.
# =============================================================================
plex-previews-cpu:
image: stevezzau/plex_generate_vid_previews:latest
container_name: plex-generate-previews
restart: unless-stopped
ports:
- "8080:8080"
environment:
- PUID=1000
- PGID=1000
# Timezone — ensures log timestamps and scheduled jobs use your local time
# - TZ=America/New_York
volumes:
- /path/to/your/media:/media:ro
- /path/to/plex/config:/plex:rw
- /path/to/app/config:/config:rw
# Host timezone (works on all Linux variants)
- /etc/localtime:/etc/localtime:ro
# =============================================================================
# CONFIGURATION 3: Unraid
# =============================================================================
# Intel iGPU by default. For NVIDIA, uncomment the runtime line and NVIDIA
# env vars, and remove the devices block.
# Uses Unraid PUID/PGID (nobody:users = 99/100).
# =============================================================================
plex-previews-unraid:
image: stevezzau/plex_generate_vid_previews:latest
container_name: plex-generate-previews
restart: unless-stopped
# For NVIDIA on Unraid, uncomment the next line and remove the devices block:
# runtime: nvidia
ports:
- "8080:8080"
labels:
- net.unraid.docker.webui=http://[IP]:[PORT:8080]/
devices:
# Intel iGPU — verify with: ls -la /dev/dri
- /dev/dri:/dev/dri
environment:
# --- NVIDIA only (uncomment if using NVIDIA, remove devices block) ---
# - NVIDIA_VISIBLE_DEVICES=all
# Use 'all' (or at minimum 'compute,video,utility,graphics') so the
# NVIDIA Vulkan driver is injected. The 'graphics' capability is
# required for Dolby Vision Profile 5 thumbnails (libplacebo Vulkan
# tone-mapping); without it the NVIDIA Vulkan ICD is not mounted.
# - NVIDIA_DRIVER_CAPABILITIES=all
# Unraid permissions (nobody:users)
- PUID=99
- PGID=100
# Timezone — ensures log timestamps and scheduled jobs use your local time
# - TZ=America/New_York
volumes:
# Media share (read-only) — use the same path as your Plex container
- /mnt/user/data/plex:/data/plex:ro
# Plex appdata (read-write for BIF files)
- /mnt/user/appdata/plex/Library/Application Support/Plex Media Server:/plex:rw
# App config storage
- /mnt/user/appdata/plex-generate-previews:/config:rw
# Host timezone (works on all Linux variants)
- /etc/localtime:/etc/localtime:ro