Files
qbz/crates/qbzd/service-files/qbzd.toml.example
T
vicrodh aacdeabe07 feat(qbzd): login subcommand, library scan, service files (68 endpoints)
qbzd login: interactive OAuth via system browser. Opens browser,
captures callback, exchanges code, saves token to keyring. Same
flow as desktop app. Daemon auto-logins on next start.

Library scan endpoint (POST /api/library/scan): discovers audio
files in registered folders. Full metadata extraction deferred
until MetadataExtractor moves to qbz-library crate.

Service files: systemd, OpenRC, runit + example qbzd.toml config.

cc
2026-04-09 04:52:58 -06:00

43 lines
1.4 KiB
TOML

# QBZ Daemon Configuration
# Copy to ~/.config/qbz/qbzd.toml or /etc/qbz/qbzd.toml
[server]
bind = "0.0.0.0"
port = 8182
token = "auto" # "auto" generates on first run
[audio]
backend = "pipewire" # pipewire | alsa | pulse | system
device = "" # empty = default device
gapless = true
normalization = false
[cache]
memory_mb = 0 # 0 = auto-detect from RAM (recommended for SBCs)
disk_mb = 400 # persistent disk cache
prefetch_count = 2 # tracks to prefetch ahead
prefetch_concurrent = 1 # simultaneous track downloads
cmaf_concurrent_segments = 2 # parallel CMAF segments per track
[cache.auto]
enabled = true # auto-size memory cache from available RAM
# 1 GB RAM -> 100 MB, 4 GB -> 200 MB, 8+ GB -> 400 MB
[data]
dir = "" # empty = ~/.local/share/qbz (or /var/lib/qbz for system service)
[mpris]
enabled = true # D-Bus MPRIS media controls (Linux)
[qconnect]
enabled = true # Qobuz Connect (control from Qobuz mobile app)
device_name = "" # empty = hostname
[mdns]
enabled = true # LAN discovery via mDNS (_qbz._tcp)
name = "" # empty = hostname
[logging]
level = "info" # trace | debug | info | warn | error
journal = true # use systemd journal when available