Skip to content

Getting Started ​

DeepCrate is a self-hosted music discovery pipeline. It surfaces music through your listening history and existing collection, lets you preview and approve recommendations, then downloads via Soulseek.

Prerequisites ​

Installation ​

1. Create configuration ​

bash
mkdir -p deepcrate/data && cd deepcrate

Create config.yaml:

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 the Configuration guide for all options.

2. Run with Docker Compose ​

Create docker-compose.yaml:

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-stopped
bash
docker compose up -d

3. Access the UI ​

Open http://localhost:8080 and log in with your configured credentials.

Minimal Configuration ​

The bare minimum to run DeepCrate with ListenBrainz only:

yaml
listenbrainz:
  username: "your_username"
  # token not required for weekly_playlist mode (default)

slskd:
  host: "http://slskd:5030"
  api_key: "your_api_key"

How It Works ​

Your Library ──┐
               ▼
Scrobbles ──> Discovery ──> Preview & Approve ──> Soulseek
                                                     │
                                                     └──> Your Library
  1. Discovery jobs run on schedule -- ListenBrainz every 6 hours, catalog discovery weekly, slskd downloader hourly
  2. Discovered albums go to the queue with status pending
  3. Web UI shows pending items for manual approval or rejection, with 30-second audio previews
  4. Approved items go to the wishlist for download via slskd

Development ​

bash
git clone https://github.com/jordojordo/deepcrate.git && cd deepcrate
pnpm install && pnpm dev  # Starts on http://localhost:5173

See CONTRIBUTING.md for guidelines.

Next Steps ​