Files
lidify/.env.example
Your Name cc8d0f6969 Release v1.3.0: Multi-source downloads, audio analyzer resilience, mobile improvements
Major Features:
- Multi-source download system (Soulseek/Lidarr with fallback)
- Configurable enrichment speed control (1-5x)
- Mobile touch drag support for seek sliders
- iOS PWA media controls (Control Center, Lock Screen)
- Artist name alias resolution via Last.fm
- Circuit breaker pattern for audio analysis

Critical Fixes:
- Audio analyzer stability (non-ASCII, BrokenProcessPool, OOM)
- Discovery system race conditions and import failures
- Radio decade categorization using originalYear
- LastFM API response normalization
- Mood bucket infinite loop prevention

Security:
- Bull Board admin authentication
- Lidarr webhook signature verification
- JWT token expiration and refresh
- Encryption key validation on startup

Closes #2, #6, #9, #13, #21, #26, #31, #34, #35, #37, #40, #43
2026-01-06 20:07:33 -06:00

72 lines
2.9 KiB
Plaintext
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Lidify Configuration
# Copy to .env and edit as needed
# ==============================================================================
# Database Configuration
# ==============================================================================
DATABASE_URL="postgresql://lidify:lidify@localhost:5433/lidify"
# ==============================================================================
# Redis Configuration
# ==============================================================================
# Note: Redis container port is mapped to 6380 to avoid conflicts with other Redis instances
REDIS_URL="redis://localhost:6380"
# ==============================================================================
# REQUIRED: Path to your music library
# ==============================================================================
MUSIC_PATH=/path/to/your/music
# DEVELOPMENT: Use your local path (e.g., /home/user/Music)
# DOCKER: This is the HOST path that gets mounted to /music in the container
# The backend inside Docker always uses /music, not this value.
# Example: MUSIC_PATH=~/Music (container mounts as ~/Music:/music)
# ==============================================================================
# REQUIRED: Security Keys
# ==============================================================================
# Encryption key for sensitive data (API keys, passwords, 2FA secrets)
# CRITICAL: You MUST set this before starting Lidify
# Generate with: openssl rand -base64 32
SETTINGS_ENCRYPTION_KEY=
# Session secret (auto-generated if not set)
# Generate with: openssl rand -base64 32
SESSION_SECRET=
# ==============================================================================
# OPTIONAL: Customize these if needed
# ==============================================================================
# Port to access Lidify (default: 3030)
PORT=3030
# Timezone (default: UTC)
TZ=UTC
# Logging level (default: debug in development, warn in production)
# Options: debug, info, warn, error, silent
LOG_LEVEL=debug
# Allow public access to API documentation in production (default: false)
# Set to 'true' to make /api/docs accessible without authentication in production
# Development mode always allows public access
# DOCS_PUBLIC=true
# DockerHub username (for pulling images)
# Your DockerHub username (same as GitHub: chevron7locked)
DOCKERHUB_USERNAME=chevron7locked
# Version tag (use 'latest' or specific like 'v1.0.0')
VERSION=latest
# ==============================================================================
# OPTIONAL: Audio Analyzer CPU Control
# ==============================================================================
# Audio Analyzer CPU Control
# AUDIO_ANALYSIS_WORKERS=2 # Number of parallel worker processes (1-8)
# AUDIO_ANALYSIS_THREADS_PER_WORKER=1 # Threads per worker for TensorFlow/FFT (1-4, default 1)
# Formula: max_cpu_usage ≈ WORKERS × (THREADS_PER_WORKER + 1) × 100%
# Example: 2 workers × (1 thread + 1 overhead) = ~400% CPU (4 cores)