عن المشروع
slskr هو خادم Rust مستضاف ذاتيًا وواجهة HTTP وواجهة مستخدم للمتصفح لشبكة مشاركة الملفات النظير للنظير Soulseek. وهو مصمم للمشغلين الذين يريدون عميل Soulseek خاصًا وقابلًا للبرمجة النصية يمكن تشغيله محليًا أو على خادم أو خلف حدود خدمتهم الخاصة. تدير عملية `slskr serve` واحدة جلسة Soulseek ومستمعي النظير وفهرس المشاركة ومحرك النقل وواجهة HTTP ودفق الأحداث وواجهة ويب مرفقة.
تشمل الميزات الرئيسية:
- **الوصول عبر الويب**: واجهة ويب مبنية على React تُقدَّم على نفس مستمع HTTP، مع البحث والتنزيلات والتحميلات والغرف والرسائل الخاصة والمستخدمين وجهات الاتصال وحالة التصفح والمشاركات والمجموعات والتكاملات وعناصر التحكم في المشغل وحالة التكوين والقياس عن بعد وصحة وقت التشغيل.
- **البحث والنتائج**: يدعم الأهداف العالمية والمستخدم والغرفة وقائمة الرغبات. تتضمن النتائج بيانات وصفية للنظير مثل حالة القفل وتوفر الفتحة وطول قائمة الانتظار والسرعة وحجم الملف والمسار. تضيف الواجهة عوامل التصفية وطي التكرارات والمستخدمين المخفيين/المحظورين وسجل البحث وملاحظات المراجعة وملفات تعريف الاستحواذ ولوحات رسم الاكتشاف وعمليات البحث التابعة المدعومة بالبيانات الوصفية.
- **عمليات النقل**: يتم تمثيل التنزيلات والتحميلات كسجلات نقل مملوكة للخادم مع قائمة الانتظار والبدء والتقدم والإكمال والإلغاء وإعادة المحاولة وحالة الفشل. يدعم الإسقاطات المدعومة بالملفات المحلية للاختبارات والتنزيلات الصادرة وتقديم الملفات المشتركة الواردة ومقابس النقل المباشر للنظير ومقابس النقل المشوشة من النوع 1 والرجوع إلى النقل غير المباشر وحقول الإزاحة/الاستئناف وسجل أحداث النقل المحدود. يمكن للتنزيلات المعجلة استخدام `POST /api/v0/multisource/swarm` مع مصادر متعددة قادرة على نطاق HTTP وبصمة SHA-256 متوقعة. تقوم تذاكر معاينة النظير والشبكة قصيرة العمر ببث الصوت إلى المتصفح دون إنشاء تنزيل عادي.
- **المشاركات والتصفح**: يتم فهرسة جذور المشاركة عند بدء التشغيل أو بإعادة الفحص. تستخدم الكتالوج مسارات مشاركة افتراضية بدلًا من كشف مسارات المضيف الخام. يمكن للمشغلين تكوين التعامل مع الملفات المخفية واتباع الروابط الرمزية وحدود الفحص واتجاهات النقل المسموح بها.
- **المراسلة والغرف والمستخدمون**: يتتبع محادثات الرسائل الخاصة وإقرار الرسائل وقوائم الغرف وحالة الانضمام/المغادرة للغرفة ورسائل الغرفة الأخيرة والمستخدمين المراقبين وإحصاءات المستخدم وجهات الاتصال والملاحظات وسياق النظير ذي الصلة.
- **واجهة API والأتمتة**: مسارات `/api/v0/*` ذات الإصدارات بالإضافة إلى أسماء توافقية غير مُصدَّرة مختارة. يمكن لعملاء API استخدام مصادقة bearer أو ترويسة `X-API-Key`. يمكن لمستهلكي الأحداث الاستقصاء عن سجلات أحداث محدودة أو الاشتراك في دفق أحداث WebSocket. يتم توفير OpenAPI ووثائق نقاط النهاية التفصيلية.
- **التكاملات**: تشمل معالجة رد اتصال Spotify OAuth وتدفقات حالة/مطلوب/استيراد يدوي لـ Lidarr والإبلاغ عن تشغيل المُصوِّر الخارجي ولوحات على جانب الواجهة لمكتبات المصادر وسير عمل التوصيات.
الإعدادات الافتراضية للأمان متحفظة: يرتبط HTTP بـ `127.0.0.1:5030` افتراضيًا، وتتطلب الارتباطات غير المحلية رمز API واحدًا على الأقل ما لم يتم تعطيل المصادقة صراحةً، ويتم فحص طلبات التغيير ذات الأصل من المتصفح باستخدام `Origin`/`Referer`، ولا تُرجع استجابات التكوين المعقمة بيانات الاعتماد، وتُرجع واجهات المشاركة مسارات افتراضية بدلًا من مسارات المضيف الخام.
تشمل أصول النشر أمثلة systemd وبيانات Kubernetes وقواعد Prometheus وفحوصات الوضع العام. يتضمن المشروع مشغل شهادات مع عزل VPN لكل حساب لتجاوز تحديد معدل Soulseek لكل IP، ويغطي 7 مراحل عبر 39 حالة اختبار. تتوفر مكتبات العملاء لـ TypeScript وPython وGo وRust. المشروع مرخص بموجب AGPL-3.0-only.
Comments
0 people shared their preference · Deer Point appears after 10 participants
Sign in to join the discussion.