40 lines
1.1 KiB
Django/Jinja
40 lines
1.1 KiB
Django/Jinja
services:
|
|
jellyfin:
|
|
image: jellyfin/jellyfin:latest
|
|
container_name: jellyfin
|
|
restart: unless-stopped
|
|
environment:
|
|
- TZ={{ timezone }}
|
|
- JELLYFIN_PublishedServerUrl=http://{{ ansible_host }}:{{ jellyfin_port }}
|
|
- JELLYFIN_EnableDLNA=true
|
|
- JELLYFIN_EnableUPnP=true
|
|
user: "1000:1000"
|
|
volumes:
|
|
- {{ jellyfin_config_dir }}:/config
|
|
- {{ jellyfin_cache_dir }}:/cache
|
|
- {{ jellyfin_logs_dir }}:/log
|
|
- {{ jellyfin_media_path }}:/media:ro
|
|
- /dev/dri:/dev/dri
|
|
devices:
|
|
- /dev/dri/renderD128:/dev/dri/renderD128
|
|
- /dev/dri/card1:/dev/dri/card1
|
|
ports:
|
|
- "{{ jellyfin_port }}:8096"
|
|
- "1900:1900/udp"
|
|
- "7359:7359/udp"
|
|
network_mode: bridge
|
|
tmpfs:
|
|
- /tmp
|
|
security_opt:
|
|
- no-new-privileges:true
|
|
logging:
|
|
driver: "json-file"
|
|
options:
|
|
max-size: "10m"
|
|
max-file: "3"
|
|
healthcheck:
|
|
test: ["CMD", "curl", "-f", "http://localhost:8096/health"]
|
|
interval: 30s
|
|
timeout: 10s
|
|
retries: 3
|
|
start_period: 30s |