// tier: vasic-util-secondary · order 21

Catalogizer productionlicense: UNVERIFIED

GoGinTypeScriptReactTailwindWebSocketsSQLCipherPostgreSQLRedisSMB/FTP/NFS/WebDAVPrometheusOpenTelemetryDockerTauri/RustS3Google Cloud Storage

Source

Catalogizer — layered architecture · multi-protocol fan-out Clients Encrypted data layer Multi-protocol fan-out Web UI · React + Tailwind Desktop · Tauri / Rust Realtime · WebSockets Catalogizer Core Go + Gin · unified API SQLCipher encrypted catalog PostgreSQL Redis cache Prometheus · OTel metrics · traces SMB · FTP · NFS · WebDAV storage sources S3 · Google Cloud Storage object storage
// architecture

إدارة مجموعات الوسائط المتعددة متعددة البروتوكولات المتقدمة — كشف، فهرسة، وإثراء كل ما تملكه.

Catalogizer هو نظام إدارة مجموعات الوسائط القابل للاستضافة الذاتية والذي يكشف تلقائياً عن الوسائط، يصنّفها، وينظمها عبر بروتوكولات SMB وFTP وNFS وWebDAV وأنظمة الملفات المحلية، مع مراقبة في الوقت الفعلي، تخزين مشفر، إثراء البيانات الوصفية الخارجية، وواجهة مستخدم React الحديثة المدعومة بنظام Go عالي الأداء من API.

مدير مكتبة وسائط متعددة البروتوكولات جاهز للإنتاج. يكشف نظام Go/Gin REST API عن أكثر من 50 نوعاً من الوسائط عبر مصادر SMB/FTP/NFS/WebDAV/المحلية، ويُثري البيانات من TMDB وIMDB وMusicBrainz وSteam وغيرها، ويقدم تطبيق ويب React في الوقت الفعلي عبر قاعدة بيانات مشفرة SQLCipher.

تطلب منك معظم برامج إدارة الوسائط الاستسلام أولاً: جمع كل شيء على قرص واحد، بتنسيق واحد، ونوع واحد، وعندها فقط ستساعدك. يبدأ Catalogizer من فرضية معاكسة تماماً — مجموعتك موجودة بالفعل حيث هي، موزعة عبر مشاركات NAS وبروتوكولات لن تتفق أبداً — ويلتقي بها هناك. يتحدث هذا النظام البروتوكولات التي تستخدمها التخزينات بالفعل — SMB/CIFS وFTP/FTPS وNFS وWebDAV ونظام الملفات المحلي — خلف واجهة عميل موحدة، بحيث يظهر مشاركة ويندوز وأرشيف FTP ومشاركة WebDAV متطابقة للطبقات العليا ويمكن مزجها أو استبدالها أو إزالتها دون الحاجة لتعديل كود التطبيق. يعمل نظام Go الخلفي (Gin REST API) على مراقبة هذه المصادر باستمرار، ويكشف ويصنّف أكثر من 50 نوعاً من الوسائط (أفلام، مسلسلات، موسيقى، ألعاب، برامج، وثائقيات) فور ظهور الملفات، ويُثري كل عنصر من مجموعة من مقدمي البيانات الخارجيين — TMDB وIMDB وTVDB وMusicBrainz وSpotify وSteam وغيرها — بحيث يتحول اسم ملف عادي إلى مدخل مفهرس بالكامل مع صور وفريق عمل وبيانات وصفية. تُرسل النتائج إلى واجهة TypeScript React الأمامية عبر WebSockets، بحيث تُحدّث المكتبة مباشرة أثناء عملية الاستيعاب بدلاً من الانتظار لتحديث يدوي، وتُخزن كل بايت من البيانات الوصفية في قاعدة بيانات مشفرة SQLCipher محمية بمصادقة JWT القائمة على الأدوار.

بينما تفشل معظم برامج الفهرسة بصمت لحظة انقطاع المشاركة، صُمم Catalogizer ليظل مفيداً حتى أثناء الانقطاع. يُمتص فشل مؤقت في SMB عبر إعادة الاتصال بتراجع أسي، وقاطع دائرة يمنع الإفراط في محاولة الوصول إلى مضيف معطل، ومراقبة مستمرة للحالة الصحية، وذاكرة تخزين مؤقت للبيانات الوصفية تعمل دون اتصال لتستجيب لطلبات المستخدمين بناءً على آخر حالة صالحة معروفة — الفرق بين "توقف التطبيق بالكامل لأن أحد أجهزة NAS أُعيد تشغيله" و"مصدر واحد متدهور وكل شيء آخر يعمل". بالإضافة إلى الفهرسة، يعمل النظام كأداة تشغيلية للمجموعة: تحليلات لاتجاهات النمو وتتبع الجودة والإصدارات، وتوليد تقارير PDF احترافية، وخدمة تحويل PDF إلى صور/نصوص/HTML، وتصدير/استيراد المفضلات (JSON/CSV)، ومزامنة السحابة مع S3 أو Google Cloud Storage أو مجلدات محلية. وهو ليس نظاماً متكاملاً ضخماً بالصدفة — بل تم تجميعه عمداً من 21 وحدة فرعية Go قابلة لإعادة الاستخدام من digital.vasic.* بالإضافة إلى حزم TypeScript للعملاء، كل منها مُختبر ومستقل الإصدار، بحيث تعمل نفس مكونات المصادقة وأنظمة الملفات والبث والمراقبة القوية التي تدير Catalogizer على تشغيل عائلة المنتجات الأوسع. لا تعتمد الجودة على الادعاء الذاتي: إطار التحديات وHelixQA يخضعان كل ميزة معلن عنها لاختبار مضاد للخداع يعتمد على الأدلة.

المحتوى

تفترض برامج إدارة الوسائط الحالية وجود نظام تخزين خلفي واحد ونوع وسائط واحد. أما المجموعات الحقيقية فتتوزع عبر العديد من مشاركات التخزين الشبكي (NAS) والبروتوكولات، وتتدهور حالتها عند انقطاع إحدى المشاركات، كما تجمع بين الأفلام والموسيقى والألعاب والبرامج. بُني نظام Catalogizer ليعامل جميع البروتوكولات على قدم المساواة، ويتحمل انقطاعات التخزين الشبكي غير المستقرة، ويوفر فهرسًا موحدًا ومُعززًا ومُشفّرًا لكل المحتويات.

إنه يجمع في حزمة واحدة قابلة للاستضافة الذاتية ومشفرة ما يتطلب عادةً مجموعة من الأدوات المنفصلة: نظام إدخال متوافق مع جميع البروتوكولات يعامل كل نظام تخزين خلفي بنفس القدر من الأهمية، ومرونة تضمن بقاء الفهرس نشطًا حتى عند انقطاع التخزين بدلاً من الانهيار معه، وإثراء متعدد المصادر يحول الملفات الخام إلى مكتبة قابلة للتصفح ومزوّدة بالبيانات الوصفية. الميزة المركبة للهندسة المعمارية القائمة على الوحدات المستقلة هي أن أي تحسين في عميل نظام الملفات أو إضافة مكوّن جديد لمزود البيانات يُطبق مرة واحدة ويرفع من أداء جميع المستهلكين، مما يجعل Catalogizer يتحسن باستمرار مع تطور النظام البيئي المحيط به. باختصار، إنه الفرق بين فهرس وسائط وبين *نظام* وسائط – نظام تملكه، ويتحمل البنية التحتية غير المستقرة، وداخليته مثبتة وليست مجرد وعود.

  • عميل نظام ملفات موحد يدعم عدة بروتوكولات (SMB/FTP/NFS/WebDAV/محلي) خلف واجهة واحدة.
  • ذاكرة تخزين مؤقت غير متصلة + قاطع دوائر لضمان بقاء الفهرس قابلاً للاستخدام أثناء انقطاعات التخزين.
  • استخراج كامل إلى 21 وحدة فرعية قابلة لإعادة الاستخدام من digital.vasic.* و Go ووحدات عميل TypeScript.
  • فهرس مشفر أثناء التخزين (SQLCipher) مع مزامنة فورية (WebSocket) مع واجهة المستخدم.
  • ضمان الجودة القائم على الأدلة عبر إطار التحديات وتكامل HelixQA.

  • التخزين الشبكي غير المستقر: تم حله باستخدام التراجع الأسي، وقاطع الدوائر، وفحوصات الصحة، وذاكرة تخزين مؤقت غير متصلة ذات سياسة إخلاء تقدم البيانات الوصفية المخزنة عند تعذر الوصول إلى المصادر.
  • تنوع البروتوكولات: تم حله عبر تجريد كل بروتوكول خلف عميل digital.vasic.filesystem مشترك بحيث تكون الطبقات العليا غير مدركة للبروتوكول المستخدم.
  • أمن البيانات: تم حله باستخدام التشفير أثناء التخزين (SQLCipher) بالإضافة إلى مصادقة JWT/التحكم في الوصول المستند إلى الأدوار (RBAC) وبرنامج وسيط تطهير الطلبات.
  • قابلية الصيانة على نطاق واسع: تم حله عبر استخراج جميع المنطق العام إلى وحدات فرعية مستقلة ومختبرة بدلاً من الاعتماد على بنية أحادية ضخمة.

  • Go + Gin – نواة REST عالية الأداء (API) لواجهة برمجة التطبيقات catalog-api؛ اختيرت لقدرتها على التعامل مع أعباء العمل المتزامنة والمستمرة في المراقبة.
  • TypeScript + React + Tailwind (Vite) – واجهة مستخدم catalog-web متجاوبة مع تحديثات فورية.
  • WebSockets – مزامنة البيانات المباشرة بين المحور الخلفي وواجهة المستخدم.
  • SQLCipher (SQLite المشفر) – مستودع بيانات وصفية مشفر أثناء التخزين؛ يدعم كلاً من SQLite و PostgreSQL عبر digital.vasic.database.
  • عملاء SMB/FTP/NFS/WebDAV – إدخال متعدد البروتوكولات عبر digital.vasic.filesystem.
  • واجهات برمجة التطبيقات الخارجية للبيانات الوصفية (TMDB، IMDB، TVDB، MusicBrainz، Spotify، Steam) – مكونات إضافية للمزودات لإثراء البيانات.
  • Prometheus + OpenTelemetry – المقاييس والتتبع عبر digital.vasic.observability.
  • Docker / حاوية البناء – بناء قابل للتكرار (Tauri/Rust عبر catalogizer-builder).
  • Redis – التخزين المؤقت وتحديد المعدل عبر digital.vasic.cache / ratelimiter.
  • S3 / Google Cloud Storage – مزامنة السحابة وتخزين نقاط التحقق.