A digital record shop for your self-hosted library. DeepCrate surfaces music through your listening history and existing collection, lets you preview and approve recommendations, then downloads via Soulseek.
deepcrate-demo.mp4
Note
This project was developed with AI assistance. All code is human-reviewed.
Discover
- Dual-source discovery: ListenBrainz recommendations (listening history) + catalog similarity (library analysis via ListenBrainz/Last.fm)
Curate
- 30-second audio previews: Listen before you approve (via Deezer/Spotify)
- Approval queue: Review recommendations with cover art and metadata before anything downloads
Acquire
- Automatic Soulseek downloads: Integrates with slskd for P2P fetching
- Duplicate detection: Checks existing library to avoid re-downloading
- Single Docker container: Everything runs in one image
flowchart LR
A[Your Library] --> B[Discovery]
C[Scrobbles] --> B
B --> D{Preview & Approve}
D -->|Approved| E[Soulseek]
E --> A
- Docker and Docker Compose
- slskd running with API enabled
- Subsonic-compatible server (Navidrome, Gonic, Airsonic, etc.) for catalog discovery
- ListenBrainz account + Last.fm API key
mkdir -p deepcrate/data && cd deepcrateCreate config.yaml:
listenbrainz:
username: "your_username"
slskd:
host: "http://slskd:5030"
api_key: "your_api_key"
catalog_discovery:
enabled: true
subsonic:
host: "http://subsonic-server:4533"
username: "your_username"
password: "your_password"
lastfm:
api_key: "your_lastfm_api_key"
ui:
auth:
enabled: true
username: "admin"
password: "changeme"See examples/config.yaml for all options.
Create docker-compose.yaml:
services:
deepcrate:
image: ghcr.io/jordojordo/deepcrate:latest
container_name: deepcrate
volumes:
- ./config.yaml:/config/config.yaml:rw
- ./data:/data
ports:
- "8080:8080"
restart: unless-stoppeddocker compose up -dOpen http://localhost:8080 and log in with your configured credentials.
Configuration | API | Architecture | Comparison | Authelia Integration
git clone https://github.com/jordojordo/deepcrate.git && cd deepcrate
pnpm install && pnpm dev # Starts on http://localhost:5173See CONTRIBUTING.md for guidelines.
DeepCrate focuses on curated discovery, meaning you approve what enters your library. If you prefer fully automated weekly playlists, check out Explo. If you need to monitor known artists for new releases, Lidarr is the standard. See Comparison for a detailed breakdown.
- slskd: Modern Soulseek client
- Navidrome: Music streaming server
- ListenBrainz: Open music listening data
Apache License 2.0 — See LICENSE for details.
Built with ListenBrainz, MusicBrainz, Last.fm, and slskd.