# ============================================================================== # Plex Now Showing — environment for docker-compose.example.yml # # Copy this file to .env (same directory) and fill in the blanks. Never commit # your real .env — it holds tokens. # ============================================================================== # ---- Home Assistant (required) -------------------------------------------- # e.g. http://192.168.1.10:8123 — no trailing slash needed. HA_URL=http://homeassistant.local:8123 # Long-lived access token: HA profile → Security → Long-Lived Access Tokens. HA_TOKEN= # ---- Backend selection ---------------------------------------------------- DISPLAY_MODE=now_showing # One of: plex, jellyfin, emby, kodi, apple_tv, streaming, kaleidescape. # Use streaming for Roku, Google TV, Android TV, or any media_player exposing # app_name / media_title / entity_picture attributes. BACKEND=plex # Optional exact media_player entity id. Leave empty to auto-detect active # players for the selected backend. PLAYER= # ---- Plex (optional; unlocks the codec / HDR info panel) ------------------ # e.g. https://plex.example.com:32400 PLEX_URL= # X-Plex-Token — see https://support.plex.tv/articles/204059436 PLEX_TOKEN= # Filter which media_player.plex_* entities count as "yours". PLEX_USERNAME= # Legacy Plex-only player pin. Prefer PLAYER for new installs. PLEX_PLAYER= # ---- Display / behaviour -------------------------------------------------- LANDSCAPE=false THEME=classic-gold POLL=5000 STATE_TTL_MS=3000 MEDIA_INFO_TTL_MS=600000 # ---- Coming Soon mode ----------------------------------------------------- # Set DISPLAY_MODE=coming_soon to use the kiosk as a Radarr/Sonarr upcoming # release screensaver. At least one source (Radarr or Sonarr) is required. COMING_SOON_TITLE=Coming Soon RADARR_URL= RADARR_API_KEY= SONARR_URL= SONARR_API_KEY= COMING_SOON_MOVIES_COUNT=5 COMING_SOON_SHOWS_COUNT=5 COMING_SOON_CYCLE_INTERVAL=8 COMING_SOON_DAYS_OFFSET=0 COMING_SOON_IMAGE_TYPE=poster COMING_SOON_TTL_MS=900000 # Cinema/theatrical inclusion toggle (#100). Default true preserves the # pre-#100 behaviour: Radarr inCinemas and TMDB theatrical types are used # as eligibility/display fallbacks. Set false to hide cinema-only entries; # digital and physical home releases keep showing. COMING_SOON_INCLUDE_CINEMA_RELEASES=true # ---- Optional TMDB enrichment (#91) --------------------------------------- # When set, fills in digital/physical/theatrical release dates Radarr's # calendar is missing. Radarr stays the primary source. Leave TMDB_API_KEY # empty to keep Coming Soon fully Radarr-driven (no calls, no warnings). # Both v3 keys and v4 read-tokens work — paste whichever you have. TMDB_API_KEY= # ISO 3166-1 country code for region-specific dates. Defaults to AU. TMDB_REGION=AU # Cache TTL for TMDB lookups (ms). 6 h amortises the per-movie round-trip. TMDB_TTL_MS=21600000 # ---- Visual toggles (V2 visual sprint) ------------------------------------ # Each visual feature is opt-in. Defaults preserve the v1 look. # Slim gold progress bar along the bottom of the poster. VISUAL_PROGRESS_BAR=false # IMDb / Rotten Tomatoes / audience score badges on the info panel. # Requires PLEX_URL + PLEX_TOKEN so the server can read /library/metadata. VISUAL_RATINGS_BADGES=false # Genre pills (Action, Sci-Fi, …) next to the content rating. # Same requirement: PLEX_URL + PLEX_TOKEN. Empty for personal media without # metadata agents; capped at 6 entries. VISUAL_GENRE_CHIPS=false # When to show the info panel (title, ratings, meta, tech tags). # One of: on_tap (default, tap-to-peek), on_pause, always. VISUAL_INFO_PANEL_MODE=on_tap # Screen-edge frame style (#65): bulbs (default), gold-line, or none. VISUAL_FRAME_STYLE=bulbs # Animated bulb diameter in px. Clamped to 12-48. Default 28 keeps the # original marquee frame size. VISUAL_BULB_SIZE_PX=28 # Marquee headline font. One of: bebas-neue, anton, oswald, monoton, # playfair-display. VISUAL_MARQUEE_FONT=bebas-neue # Backdrop art on pause (#21). Master switch; requires PLEX_URL + PLEX_TOKEN # so /api/plex-art can proxy fanart with the token server-side. VISUAL_USE_BACKDROPS=false # fullscreen — landscape-only crossfade after >VISUAL_BACKDROP_DELAY_MS paused. # ambient — blurred darkened fanart replaces the bulb-lit background. VISUAL_BACKDROP_STYLE=fullscreen # Clamped to [1000, 600000]. Default 10 s matches the spec — avoids firing # on skip-intro / short-seek pauses. VISUAL_BACKDROP_DELAY_MS=10000 # Master switch for burn-in mitigation (pixel nudge + optional night mode). VISUAL_BURN_IN_MITIGATION=false # How often the UI shifts, in ms. Clamped to 5000–600000. VISUAL_NUDGE_INTERVAL_MS=60000 # Maximum pixel shift. Clamped to 1–16. VISUAL_NUDGE_AMPLITUDE_PX=4 # Optional HA entity id (input_boolean / switch / binary_sensor). When its # state is 'on', the kiosk fades in a dim overlay. Leave empty to fall back # to the OS prefers-color-scheme: dark media query. VISUAL_NIGHT_MODE_ENTITY= # Dim overlay opacity when night mode is active. Clamped to 0–0.95. VISUAL_NIGHT_MODE_OPACITY=0.4 # Theme preset (#23). One of classic-gold (default) | art-deco-silver | # neon-80s | minimalist-dark. Sets the bulb / accent / background ramp # via
. VISUAL_THEME=classic-gold # Accent colour override (#66). Strict #RRGGBB hex (e.g. #ff5500). Empty # = use the active theme's default ramp. Short form (#abc) and named # colours are rejected. VISUAL_ACCENT_COLOR= # Marquee background override (#62/#viz-13). Strict #RRGGBB hex. Empty # = use the active theme's marquee/curtain colour. VISUAL_MARQUEE_BG_COLOR= # Corner radius in px for the inner marquee, poster, and info panel. # Clamped to 0-48. Default 0 keeps the sharp cinema look. VISUAL_CORNER_RADIUS_PX=0 # ---- Optional hardening (set both if exposing the port beyond your LAN) --- # Every /api/* request must carry header X-Proxy-Secret: