pixel8/.env.example

57 lines
2.0 KiB
Plaintext

# pixel8 server configuration
# Copy this file to ".env" — the server loads it automatically at startup
# (looked up in the current directory or the project root). Real environment
# variables override .env values. .env is git-ignored; never commit secrets.
PORT=8080
HOST=0.0.0.0
DB_PATH=./data/pixel8.db
MEDIA_DIR=./data/media
# WLED device. Set WLED_ENABLED=true to transmit.
# Transport: "ddp" (default) works on all WLED versions (receiver is always on,
# UDP 4048). "e131" (sACN, port 5568) is the alternate — requires E1.31 enabled
# in WLED's Sync Interfaces and a matching universe.
# TIP: prefer the controller's LAN IP over its hostname — mDNS (.local) names
# can fail intermittently for UDP traffic (getaddrinfo ENOTFOUND).
WLED_ENABLED=false
WLED_HOST=192.168.1.50
WLED_PORT=4048
WLED_PROTOCOL=ddp
WLED_UNIVERSE=1
# Playback
DEFAULT_FPS=30
BRIGHTNESS_CEILING=1.0
GAMMA=1.0
# What plays when nothing is scheduled/queued or all exhibitions ended:
# chase (boot animation) | rainbow | black
IDLE_ANIMATION=chase
# WLED gamma-corrects realtime data by default; pixel8 pre-compensates so the
# matrix matches the preview. Set "off" only if you disabled gamma in WLED.
WLED_GAMMA_CORRECTION=true
# LED mapping (server owns transform; do not double-apply in WLED)
SERPENTINE=false
ROTATE=0
FLIP_X=false
FLIP_Y=false
# Admin (required for admin API; empty string disables admin routes)
ADMIN_TOKEN=replace-with-long-random-string
TZ=UTC
# Uploads / rendering (Phase 2)
FFMPEG_PATH=ffmpeg
MAX_UPLOAD_BYTES=26214400 # 25 MB
MAX_DURATION_SEC=60 # media duration cap
MAX_FRAMES=300 # frames rendered per animation
RENDER_CONCURRENCY=2 # concurrent ffmpeg decodes
MAX_FPS=30 # cap for animated content
DEFAULT_ITEM_MS=30000 # default queue/exhibition dwell (30 s)
# p5.js sketch sandbox (Phase 4). Auto-detects Edge/Chrome/Chromium.
# On a Raspberry Pi, install chromium (apt) and set P5_BROWSER_PATH=/usr/bin/chromium
P5_BROWSER_PATH=
P5_BROWSER_CHANNEL=