# Minstrel example configuration. In the container image, mount it at # /etc/smartmusic/config.yaml. Every field is optional; the values below are # the defaults. Each MINSTREL_* variable named here overrides its field. server: address: ":4533" # MINSTREL_SERVER_ADDRESS storage: # Artwork, caches and the stream-signing key. Use persistent storage. data_dir: "./data" # MINSTREL_STORAGE_DATA_DIR (the image sets /app/data) database: # e.g. postgres://minstrel:minstrel@localhost:5432/minstrel?sslmode=disable url: "" # MINSTREL_DATABASE_URL log: level: "info" # debug | info | warn | error. MINSTREL_LOG_LEVEL format: "text" # text | json. MINSTREL_LOG_FORMAT library: # Library folders, walked recursively. Used on first start only: once they # are changed in Admin › Library, the saved ones win. Changing a folder there # moves its tracks with it, so plays, likes and playlists survive a new mount. scan_paths: [] # MINSTREL_LIBRARY_SCAN_PATHS (colon-separated) # Scan on startup. Scans are incremental, so a restart only walks the folders. scan_on_startup: true # MINSTREL_LIBRARY_SCAN_ON_STARTUP # Contact sent to the Cover Art Archive in the User-Agent. Empty sends # the project's URL. contact_email: "" # MINSTREL_CONTACT_EMAIL branding: app_name: "Minstrel" # MINSTREL_BRANDING_APP_NAME description: "Self-hosted music server with Subsonic compatibility, smart shuffle, and music acquisition." # MINSTREL_BRANDING_DESCRIPTION subsonic: # Accept the plaintext `p=` password on /rest/*. Leave off unless a client # needs it; apiKey and token auth work without it. allow_plaintext_password: false # MINSTREL_SUBSONIC_ALLOW_PLAINTEXT_PASSWORD events: # Minutes of silence that end a listening session. session_timeout_minutes: 30 # A play is a skip when it stops before this fraction of the track AND # before this many milliseconds. skip_max_completion_ratio: 0.5 skip_max_duration_played_ms: 30000 recommendation: # Scoring weights are tuned in Admin › Tuning, not here. # Tracks played within this many hours are left out of radio. recently_played_hours: 1 # Radio length when ?limit= is not given, and the most ?limit= may ask for. radio_size: 50 radio_size_max: 200