عن المشروع
Black Candy هو خادم بث موسيقي مستضاف ذاتيًا يوصف بأنه مركز موسيقى شخصي. يُوزَّع بشكل أساسي كصورة Docker، لذا تتكوّن عملية التثبيت من تشغيل حاوية وربط منفذ؛ ويستخدم حساب المسؤول الأولي البريد الإلكتروني admin@admin.com مع كلمة المرور foobar. تتوفر نسخة تجريبية عامة للتقييم، إلا أن المستخدم التجريبي يفتقر إلى صلاحيات المسؤول وموسيقاه مصدرها Free Music Archive.
تُدار عملية النشر والتهيئة عبر متغيرات البيئة ووحدات التخزين المرتبطة. تُربط ملفات الوسائط من المضيف ويُشار إليها عبر MEDIA_PATH. توجد البيانات الدائمة تحت /rails/storage، ويمكن ربطها بالمضيف؛ وعند حدوث تعارضات في الصلاحيات بين المضيف والحاوية، يمكن تشغيل الحاوية كمستخدم عشوائي عبر --user UID:GID. قاعدة البيانات الافتراضية هي SQLite، مع دعم PostgreSQL عبر DB_ADAPTER والمتغيرات المتعلقة بالاتصال لقاعدة البيانات الرئيسية والنشر/الاشتراك ومهام الخلفية والتخزين المؤقت. تشمل الخيارات الموثّقة الأخرى FORCE_SSL وDEMO_MODE وHTTP_PORT وSECRET_KEY_BASE، ويُستخدم الأخير لحماية الجلسات والبيانات الحساسة أمنيًا؛ وإذا لم يُضبط، تُولَّد قيمة جديدة عند كل تشغيل، مما يُبطل الجلسات القائمة. تُسجَّل السجلات إلى STDOUT افتراضيًا. يُقدَّم مثال docker-compose، وتُتاح صورة edge مبنية على فرع master للاختبار والمساهمة، مع تحذير من أنها غير مستقرة.
تتطلب الترقيات سحب صورة جديدة وإعادة إنشاء الحاوية؛ ويحذّر المشروع صراحةً المستخدمين من قراءة دليل الترقية لأن الإصدارات الجديدة قد تتضمن تغييرات كاسرة. تُدرَج عملاء الجوال لنظام iOS عبر App Store ولنظام Android عبر Google Play وF-Droid، مع تنزيلات APK من إصدارات GitHub. يتكامل المشروع أيضًا مع واجهة Discogs API بحيث يمكن جلب صور الفنانين والألبومات عند ضبط رمز Discogs في صفحة الإعدادات.
للتطوير، تشمل المتطلبات الموثّقة Ruby 4.0 وNode.js 20 وlibvips وFFmpeg، مع bundle وnpm للاعتماديات، وتحضير قاعدة بيانات Rails وتهيئتها، وسكربت ./bin/dev لتشغيل الخدمات محليًا على المنفذ 3000. تُشغَّل الاختبارات والفحص عبر rails test:all وrails lint:all. يتضمن المستودع شارات CI والتغطية، ويشير إلى رعاية من JetBrains.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.