Об этом проекте

Black Candy — это self-hosted музыкальный стриминговый сервер, описываемый как личный музыкальный центр. Он распространяется в основном в виде Docker-образа, поэтому установка сводится к запуску контейнера и пробросу порта; начальная учётная запись администратора использует email admin@admin.com с паролем foobar. Для оценки доступен публичный демо-экземпляр, однако демо-пользователь не имеет прав администратора, а музыка в нём взята из Free Music Archive. Развёртывание и настройка осуществляются через переменные окружения и монтирование томов. Медиафайлы монтируются с хоста и указываются через MEDIA_PATH. Постоянные данные хранятся в /rails/storage, который можно смонтировать на хост; при конфликтах прав между хостом и контейнером контейнер можно запускать от произвольного пользователя через --user UID:GID. По умолчанию используется база данных SQLite, а PostgreSQL поддерживается через DB_ADAPTER и связанные переменные подключения для основной базы, Pub/Sub, фоновых задач и кэша. Среди других задокументированных параметров — FORCE_SSL, DEMO_MODE, HTTP_PORT и SECRET_KEY_BASE; последний используется для защиты сессий и чувствительных данных, и если он не задан, при каждом запуске генерируется новое значение, что делает недействительными существующие сессии. Логи по умолчанию выводятся в STDOUT. Приведён пример docker-compose, а для тестирования и участия в разработке предлагается edge-образ на основе ветки master с предупреждением о его нестабильности. Обновления требуют загрузки нового образа и пересоздания контейнера; проект явно предупреждает пользователей о необходимости читать руководство по обновлению, поскольку новые версии могут содержать критические изменения. Мобильные клиенты перечислены для iOS через App Store и для Android через Google Play и F-Droid, с загрузкой APK из релизов GitHub. Проект также интегрируется с API Discogs, чтобы обложки исполнителей и альбомов можно было загружать после настройки токена Discogs на странице настроек. Для разработки задокументированы требования: Ruby 4.0, Node.js 20, libvips и FFmpeg, а также bundle и npm для зависимостей, подготовка и наполнение базы данных Rails и скрипт ./bin/dev для локального запуска сервисов на порту 3000. Тесты и линтинг запускаются через rails test:all и rails lint:all. В репозитории есть бейджи CI и покрытия, а также указана спонсорская поддержка JetBrains.