# Minstrel example configuration. # Every field is optional; defaults shown below match Default() in internal/config. # Each setting can be overridden at runtime via SMARTMUSIC_* environment variables # (see internal/config/config.go for the full list). server: address: ":4533" database: # Postgres connection string, e.g. postgres://minstrel:minstrel@localhost:5432/minstrel?sslmode=disable url: "" log: level: "info" # debug | info | warn | error format: "text" # text | json auth: # One-shot admin bootstrap. Applied only when the users table is empty. # Set username to enable; leave password blank to have the server generate # one and log it to stderr on first start. # Env: SMARTMUSIC_AUTH_ADMIN_USERNAME, SMARTMUSIC_AUTH_ADMIN_PASSWORD admin_bootstrap: username: "" password: "" library: # Filesystem roots to scan for music. Each path is walked recursively. # Env: SMARTMUSIC_LIBRARY_SCAN_PATHS (colon-separated, PATH-style) scan_paths: [] # Kick off a scan on server startup. Env: SMARTMUSIC_LIBRARY_SCAN_ON_STARTUP scan_on_startup: false subsonic: # Gate for the legacy `p=` plaintext password parameter on /rest/*. # Leave disabled unless a specific client requires it — Minstrel prefers # apiKey (OpenSubsonic) and falls back to u+t+s token auth. # Env: SMARTMUSIC_SUBSONIC_ALLOW_PLAINTEXT_PASSWORD allow_plaintext_password: false events: # Idle gap (minutes) between play_events that closes a play_session and # starts a new one. Spec §6. session_timeout_minutes: 30 # Skip rule (spec §6): a play counts as a SKIP if completion ratio is below # this threshold AND duration played (ms) is below the next threshold. skip_max_completion_ratio: 0.5 skip_max_duration_played_ms: 30000