Features Quick Start Docs GitHub

Crate

Dig deeper.

Self-hosted music manager for collectors. Watch artists, hunt for the best quality, and build your library — automatically.

Get Started View on GitHub
Library view
Search
Artist detail
Album detail
Downloads
Settings

Features

Watch. Hunt. Collect.

Everything you need to build and maintain your music library, running on your own hardware.

Watch

Save artists, albums, or individual tracks. Full discography tracking with opt-in new release detection — never miss a drop.

Hunt

Searches Soulseek via slskd for the best available quality. Configurable tiers (FLAC > MP3 320 > MP3 256), automatic retry with backoff, per-source blacklisting.

Collect

Files organized into your library, tagged with full metadata and cover art. Optional Navidrome integration so new music streams immediately.

Pluggable Providers

Search via MusicBrainz, Deezer, or bring your own gRPC provider. Switch on the fly, relink entities between providers anytime.

Quality Upgrades

Priority-ordered quality tiers. The scheduler scans your library daily and re-queues tracks that can be upgraded to a better format.

Self-Hosted

Single Docker container, SQLite database, no external dependencies. Your data stays on your hardware. Put auth in front however you like.

How it works

Three steps to your library

1

Search

Find any artist via MusicBrainz, Deezer, or your own provider. Browse their full discography.

2

Watch

Add artists, albums, or tracks to your watchlist. Crate tracks their complete discography.

3

Collect

Crate searches Soulseek, downloads the best quality, organizes and tags files automatically.

Works with

Built to fit your stack

slskd (Soulseek) Navidrome MusicBrainz Deezer Docker Custom gRPC Providers

Quick Start

Up and running in 60 seconds

One docker-compose file is all you need.

# docker-compose.yml
services:
  crate:
    image: ghcr.io/theoutdoorprogrammer/crate:latest
    ports:
      - "6969:6969"
    volumes:
      - ./crate-data:/app/data
      - ./slskd/downloads:/app/downloads
      - ./library:/app/library
    environment:
      - CRATE_SLSKD_URL=http://slskd:5030
      - CRATE_SLSKD_API_KEY=your_api_key
      - CRATE_DOWNLOADS_DIR=/app/downloads
      - CRATE_LIBRARY_PATH=/app/library
    depends_on:
      - slskd
    restart: unless-stopped

  slskd:
    image: slskd/slskd:latest
    ports:
      - "5030:5030"
    volumes:
      - ./slskd:/app
      - ./library:/crate
    environment:
      - SLSKD_REMOTE_CONFIGURATION=true
      - SLSKD_API_KEY=your_api_key
      - SLSKD_SOULSEEK_USERNAME=your_username
      - SLSKD_SOULSEEK_PASSWORD=your_password
    restart: unless-stopped

Then run:

docker compose up -d

Open http://localhost:6969