Sobre el proyecto
Black Candy es un servidor de streaming de música autoalojado descrito como un centro musical personal. Se distribuye principalmente como imagen Docker, por lo que la instalación consiste en ejecutar un contenedor y mapear un puerto; la cuenta de administrador inicial usa el correo admin@admin.com con la contraseña foobar. Hay una instancia demo pública para evaluación, aunque el usuario demo carece de privilegios de administrador y su música proviene del Free Music Archive.
El despliegue y la configuración se manejan mediante variables de entorno y montajes de volúmenes. Los archivos multimedia se montan desde el host y se apuntan con MEDIA_PATH. Los datos persistentes residen en /rails/storage, que puede montarse en el host; cuando surgen conflictos de permisos entre host y contenedor, el contenedor puede ejecutarse como un usuario arbitrario mediante --user UID:GID. SQLite es la base de datos predeterminada, con soporte para PostgreSQL mediante DB_ADAPTER y variables de conexión relacionadas para la base principal, Pub/Sub, trabajos en segundo plano y caché. Otras opciones documentadas incluyen FORCE_SSL, DEMO_MODE, HTTP_PORT y SECRET_KEY_BASE; esta última protege sesiones y datos sensibles; si no se define, se genera un nuevo valor en cada inicio, invalidando sesiones existentes. El registro va a STDOUT por defecto. Se proporciona un ejemplo docker-compose, y una imagen edge basada en la rama master se ofrece para pruebas y contribuciones, con advertencia de que es inestable.
Las actualizaciones requieren extraer una nueva imagen y recrear el contenedor; el proyecto advierte explícitamente leer la guía de actualización porque las nuevas versiones pueden contener cambios incompatibles. Se listan clientes móviles para iOS vía App Store y para Android vía Google Play y F-Droid, con descargas APK desde releases de GitHub. El proyecto también se integra con la API de Discogs para obtener carátulas de artistas y álbumes cuando se configura un token de Discogs en la página de ajustes.
Para desarrollo, los requisitos documentados son Ruby 4.0, Node.js 20, libvips y FFmpeg, con bundle y npm para dependencias, preparación y siembra de la base de datos Rails, y un script ./bin/dev para iniciar servicios localmente en el puerto 3000. Las pruebas y el linting se ejecutan con rails test:all y rails lint:all. El repositorio incluye insignias de CI y cobertura, y nota patrocinio de JetBrains.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.