slskd: expand config with directories, limits, and upload groups
Created by: jedmund
Summary
- Sets explicit download and incomplete directories so files land in the correct volumes (
/downloads,/downloads/.incomplete) rather than inside the config bind mount - Adds share filters to exclude junk files (
.lnk,.ini,.db,Thumbs.db,.DS_Store) - Configures transfer history retention (7 days succeeded, 30 days failed)
- Adds global daily (12 GB) and weekly (28 GB) upload caps
- Introduces three upload groups with bandwidth controls:
- generous — users sharing 500+ files: 5 slots, up to 20 files / 10 GB queued, priority 0
- default — everyone else: 5 slots, up to 10 files / 4 GB queued, priority 1
- leechers — users sharing fewer than 1 file/directory: 0 slots (blocked)
- Caps upload speed at 6 MB/s per group (~5% of uplink) to preserve bandwidth
Test plan
-
Deployed to nuc-mini— stack restarted cleanly, no errors -
Verify new downloads land in /downloads(not/opt/docker/media-acquisition/config/slskd/downloads) -
Confirm leecher users are blocked in the slskd UI transfer queue -
Monitor daily/weekly upload counters in slskd UI after a day of traffic