Files
minstrel/config.example.yaml
T
bvandeusenandClaude Opus 5.5 9f9609591d
release / govulncheck (push) Successful in 17s
release / web (push) Successful in 1m25s
release / go (push) Successful in 1m40s
release / integration (push) Successful in 5m19s
release / android (push) Successful in 5m32s
release / Build signed APK (releases and dev) (push) Successful in 5m51s
release / Attach APK to the Release (tag releases only) (push) Skipped
release / Build + push container image (push) Successful in 15s
release / Verify release artifacts (tag releases only) (push) Skipped
docs: README in the standard order; setup files say what works today (#6277)
README: logo header, short summary, a compose quick start with one-line
comments, first-run steps, a configuration table, setup pitfalls,
updating and backups, then features grouped by what you do. The Specs
section (it called the Android client the "Flutter companion app"), the
dated tag-history sentence and the Fable pointer are gone. Feature lines
were checked against the code: radio seeds from a track only, and the
Android app plays from its cache rather than offering downloads.

.env.example used the SMARTMUSIC_ prefix, which the config loader has not
read for a long time, so copying it set nothing. It now uses MINSTREL_.

config.example.yaml is also the config the image bakes in at
/etc/smartmusic/config.yaml. It listed five recommendation weights
(base_weight, like_boost, recency_weight, skip_penalty, jitter_magnitude)
that moved to Admin > Tuning; yaml.Unmarshal ignored them silently. They
are removed, and the file parses to exactly Default(), so the running
server is unchanged. coverart_from_mbcaa is not listed: nothing reads it.

docker-compose.yml, the Makefile and the spec banners lose their task and
milestone ids.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-23 12:02:25 -04:00

55 lines
2.3 KiB
YAML
Raw 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.
# 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