À propos du projet

Black Candy est un serveur de streaming musical auto-hébergé, décrit comme un centre musical personnel. Il est distribué principalement sous forme d'image Docker, donc l'installation consiste à exécuter un conteneur et à mapper un port ; le compte administrateur initial utilise l'email admin@admin.com avec le mot de passe foobar. Une instance de démonstration publique est disponible pour évaluation, bien que l'utilisateur de démonstration n'ait pas de privilèges d'administrateur et que sa musique provienne de la Free Music Archive. Le déploiement et la configuration sont gérés via des variables d'environnement et des montages de volumes. Les fichiers multimédias sont montés depuis l'hôte et pointés avec MEDIA_PATH. Les données persistantes se trouvent sous /rails/storage, qui peut être monté sur l'hôte ; en cas de conflits de permissions entre l'hôte et le conteneur, le conteneur peut être exécuté en tant qu'utilisateur arbitraire via --user UID:GID. SQLite est la base de données par défaut, avec PostgreSQL pris en charge via DB_ADAPTER et les variables de connexion associées pour la base de données principale, Pub/Sub, les tâches en arrière-plan et le cache. D'autres options documentées incluent FORCE_SSL, DEMO_MODE, HTTP_PORT et SECRET_KEY_BASE, cette dernière étant utilisée pour protéger les sessions et les données sensibles à la sécurité ; si elle n'est pas définie, une nouvelle valeur est générée à chaque démarrage, invalidant les sessions existantes. La journalisation va vers STDOUT par défaut. Un exemple docker-compose est fourni, et une image edge basée sur la branche master est proposée pour les tests et les contributions, avec un avertissement qu'elle est instable. Les mises à niveau nécessitent de tirer une nouvelle image et de recréer le conteneur ; le projet avertit explicitement les utilisateurs de lire le guide de mise à niveau car les nouvelles versions peuvent contenir des changements cassants. Les clients mobiles sont listés pour iOS via l'App Store et pour Android via Google Play et F-Droid, avec des téléchargements APK depuis les versions GitHub. Le projet s'intègre également avec l'API Discogs afin que les illustrations d'artistes et d'albums puissent être récupérées lorsqu'un jeton Discogs est configuré dans la page des paramètres. Pour le développement, les exigences documentées sont Ruby 4.0, Node.js 20, libvips et FFmpeg, avec bundle et npm pour les dépendances, la préparation et le remplissage de la base de données Rails, et un script ./bin/dev pour démarrer les services localement sur le port 3000. Les tests et le linting sont exécutés via rails test:all et rails lint:all. Le dépôt inclut des badges CI et de couverture et note le parrainage de JetBrains.