services: jellyfin: image: jellyfin/jellyfin container_name: jellyfin user: 1000:1800 group_add: - 992 devices: - /dev/dri/renderD128:/dev/dri/renderD128 networks: - default - proxy - media volumes: - jellyfin_cache:/var/cache/jellyfin - jellyfin_config:/etc/jellyfin - jellyfin_data:/var/lib/jellyfin - jellyfin_logs:/var/log/jellyfin - /media:/media restart: unless-stopped ports: - 8096:8096 environment: - JELLYFIN_PublishedServerUrl=https://jellyfin.fern.garden - JELLYFIN_CACHE_DIR=/var/cache/jellyfin - JELLYFIN_CONFIG_DIR=/etc/jellyfin - JELLYFIN_DATA_DIR=/var/lib/jellyfin - JELLYFIN_LOG_DIR=/var/log/jellyfin - TZ=Australia/Perth labels: caddy: jellyfin.fern.garden caddy.@blacklist.not.path: "/metrics" caddy.reverse_proxy: "@blacklist {{upstreams 8096}}" jellystat_db: image: postgres:15.2 shm_size: '1gb' container_name: jellystat_db restart: unless-stopped logging: driver: "json-file" options: max-file: "5" max-size: "10m" environment: POSTGRES_USER: jellystat POSTGRES_PASSWORD: ${JELLYSTAT_POSTGRES_PASSWORD} networks: - default volumes: - jellystat_db:/var/lib/postgresql/data jellystat: image: cyfershepard/jellystat:latest container_name: jellystat restart: unless-stopped logging: driver: "json-file" options: max-file: "5" max-size: "10m" environment: POSTGRES_USER: jellystat POSTGRES_PASSWORD: ${JELLYSTAT_POSTGRES_PASSWORD} POSTGRES_IP: jellystat_db POSTGRES_PORT: 5432 JWT_SECRET: ${JELLYSTAT_JWT_SECRET} TZ: Australia/Perth volumes: - jellystat_data:/app/backend/backup-data networks: - default - proxy depends_on: - jellystat_db labels: caddy: jellystat.ferngarden.net caddy.import: internal caddy.reverse_proxy: '{{upstreams 3000}}' networks: default: media: external: true proxy: external: true volumes: jellyfin_config: name: jellyfin_config jellyfin_cache: name: jellyfin_cache jellyfin_data: name: jellyfin_data jellyfin_logs: name: jellyfin_logs jellystat_db: name: jellystat_db jellystat_data: name: jellystat_data