Files
Docker-Compose/TV_Containers/jellyfin/compose.yaml
T

56 lines
1.9 KiB
YAML

services:
jellyfin:
image: jellyfin/jellyfin
container_name: jellyfin
# --- run as unprivileged, no escalation ---
user: "1000:1000"
security_opt:
- no-new-privileges:true
cap_drop:
- ALL
read_only: true
tmpfs:
- /tmp:size=512m
#ports:
#- 8096:8096/tcp
#- 7359:7359/udp
volumes:
- /srv/docker/jellyfin/config:/config
- /srv/docker/jellyfin/cache:/cache
- type: bind
source: /mnt/smb_share/videos
target: /media
read_only: true
restart: 'unless-stopped'
# Optional - alternative address used for autodiscovery
#environment:
# - JELLYFIN_PublishedServerUrl=http://${SERVICE_NAME}.${DOMAIN_NAME}
networks:
- traefik_network
labels:
### Auto create icon on Flame dashboard
- flame.type=application
- flame.name=${SERVICE_NAME}
- flame.url=https://${SERVICE_NAME}.${DOMAIN_NAME}
- flame.icon=https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons/png/jellyfin.png
### Traefik Labels
- traefik.enable=true
- traefik.http.routers.${SERVICE_NAME}-https.tls=true
- traefik.http.routers.${SERVICE_NAME}-https.tls.certresolver=cloudflare
- traefik.http.routers.${SERVICE_NAME}-https.entrypoints=websecure
- traefik.http.routers.${SERVICE_NAME}-https.rule=Host(`${SERVICE_NAME}.${DOMAIN_NAME}`)
- traefik.http.services.${SERVICE_NAME}.loadbalancer.server.port=8096
### Monitor with uptime-kuma
- kuma.monitoring.group.name=Docker Containers
- kuma.${SERVICE_NAME}.docker.parent_name=monitoring
- kuma.${SERVICE_NAME}.docker.name=${SERVICE_NAME}
- kuma.${SERVICE_NAME}.docker.type=docker
- kuma.${SERVICE_NAME}.docker.docker_container=${SERVICE_NAME}
- kuma.${SERVICE_NAME}.docker.docker_host=1
- 'kuma.${SERVICE_NAME}.docker.tag_names=[{"name": "docker_tag"}]'
networks:
traefik_network:
external: true