---
title: Black Candy
created: 2026-06-08
updated: 2026-06-08
type: app
tags: [catalogue, music-streaming, app-marathon3-rattrapage-final-a]
confidence: medium
contested: false
sources: [https://selfh.st/apps/?tag=Music%20Streaming&app=black-candy]
---

# 🍬 Black Candy

> Serveur de streaming musical minimaliste en Ruby on Rails, avec interface moderne type Spotify.

## 📋 Informations Générales

| Champ | Valeur |
| :--- | :--- |
| **Site web** | [blackcandy.vercel.app](https://blackcandy.vercel.app) |
| **GitHub** | [blackcandy-org/blackcandy](https://github.com/blackcandy-org/blackcandy) |
| **License** | MIT |
| **Langage** | Ruby |
| **Étoiles GitHub** | ~0.7k ⭐ |
| **Catégorie** | [[cat-music-streaming\|Music Streaming]] |

## 📝 Description

**Black Candy** est un serveur de streaming musical léger écrit en Ruby on Rails avec Stimulus + Tailwind pour le frontend. Il indexe une bibliothèque locale, génère des transcriptions HLS, supporte la recherche, les playlists, la lecture en continue et l'authentification multi-utilisateur. Interface épurée inspirée de Spotify, sans fioritures.

Différence vs Navidrome : stack Ruby on Rails monolithique (plus simple à débugger pour les Railsistes), contre Go+React pour Navidrome. Pour qui : amateurs de stack Ruby, petites collections personnelles (< 100k pistes).

## 🚀 Installation

### Docker Compose (recommandé)

```yaml
version: '3.8'
services:
  blackcandy:
    image: blackcandy/blackcandy:latest
    container_name: black-candy
    restart: unless-stopped
    environment:
      - RAILS_SERVE_STATIC_FILES=true
      - DATABASE_URL=postgresql://blackcandy:blackcandy@db/blackcandy
      - REDIS_URL=redis://redis:6379/0
    depends_on:
      - db
      - redis
    volumes:
      - ./music:/music:ro
      - ./storage:/rails/storage
    labels:
      traefik.enable: "true"
      traefik.http.routers.blackcandy.rule: "Host(`music.example.com`)"
  db:
    image: postgres:16-alpine
    environment:
      POSTGRES_USER: blackcandy
      POSTGRES_PASSWORD: blackcandy
      POSTGRES_DB: blackcandy
    volumes:
      - ./db-data:/var/lib/postgresql/data
  redis:
    image: redis:7-alpine
```

## 🔄 Alternatives

### Open Source
- [[app-navidrome]] — Référence moderne en Go
- [[app-funkwhale]] — Fédéré, multi-audio
- [[app-koel]] — Streaming musical Laravel/JS

### Propriétaires
- **Spotify** — Streaming commercial dominant
- **Apple Music** — Catalogue Apple

## 🔐 Sécurité
- **Auth** : comptes locaux (Devise), pas d'OIDC natif
- **Médias** : URLs signées temporaires pour les streams
- **Scan média** : processus d'indexation Rscan, attention aux tags ID3 corrompus

## 📚 Ressources
- [Documentation](https://github.com/blackcandy-org/blackcandy#readme)
- [GitHub](https://github.com/blackcandy-org/blackcandy)

## Pages Liées
- [[cat-music-streaming]] — Catégorie Music Streaming
- [[app-navidrome]] — Concurrent principal
- [[recettes-docker-compose]] — Templates Docker
