// سطح: vasic-util-secondary · سفارش 21

Catalogizer productionاجازه‌نامه: UNVERIFIED

GoGinTypeScriptReactTailwindWebSocketsSQLCipherPostgreSQLRedisSMB/FTP/NFS/WebDAVPrometheusOpenTelemetryDockerTauri/RustS3Google Cloud Storage

منبع

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
// معماری

مدیریت مجموعه رسانه‌ای چندپروتکله پیشرفته — شناسایی، فهرست‌بندی و غنی‌سازی تمام دارایی‌های شما

Catalogizer یک سیستم مدیریت مجموعه رسانه‌ای قابل میزبانی شخصی است که به‌طور خودکار رسانه‌ها را در پروتکل‌های SMB، FTP، NFS، WebDAV و فایل‌سیستم‌های محلی شناسایی، دسته‌بندی و سازماندهی می‌کند. این سیستم با نظارت بلادرنگ، ذخیره‌سازی رمزنگاری‌شده، غنی‌سازی فراداده از منابع خارجی و رابط کاربری مدرن React که توسط یک موتور پرسرعت Go API پشتیبانی می‌شود، عمل می‌کند.

یک مدیر کتابخانه رسانه‌ای چندپروتکله در سطح تولید. Go/Gin REST API بیش از ۵۰ نوع رسانه را در منابع SMB/FTP/NFS/WebDAV/محلی شناسایی می‌کند، از TMDB/IMDB/MusicBrainz/Steam و سایر منابع غنی‌سازی می‌کند و یک اپلیکیشن وب بلادرنگ React را از طریق پایگاه داده رمزنگاری‌شده SQLCipher ارائه می‌دهد.

بیشتر مدیران رسانه از شما می‌خواهند ابتدا تسلیم شوید: همه چیز را روی یک دیسک، در یک فرمت و از یک نوع جمع‌آوری کنید و تنها پس از آن به شما کمک خواهند کرد. Catalogizer از فرضیه‌ای متضاد آغاز می‌کند — مجموعه شما از پیش در جایی که هست زندگی می‌کند، در اشتراک‌های NAS و پروتکل‌هایی که هرگز با هم هماهنگ نخواهند شد — و دقیقاً در همان نقطه به آن می‌پیوندد. این سیستم با پروتکل‌هایی که ذخیره‌سازها از پیش استفاده می‌کنند — SMB/CIFS، FTP/FTPS، NFS، WebDAV و فایل‌سیستم محلی — از طریق یک لایه انتزاعی یکپارچه ارتباط برقرار می‌کند، به طوری که یک اشتراک ویندوز، یک آرشیو FTP و یک اتصال WebDAV برای لایه‌های بالاتر یکسان به نظر می‌رسند و می‌توان آن‌ها را ترکیب، تعویض یا بازنشسته کرد بدون آنکه نیازی به تغییر کد برنامه باشد. یک بک‌اند Go (Gin REST API) به‌طور مداوم این منابع را زیر نظر می‌گیرد، بیش از ۵۰ نوع رسانه (فیلم، سریال، موسیقی، بازی، نرم‌افزار، مستند) را به محض ظاهر شدن فایل‌ها شناسایی و طبقه‌بندی می‌کند و هر آیتم را از مجموعه‌ای از ارائه‌دهندگان خارجی — TMDB، IMDB، TVDB، MusicBrainz، Spotify، Steam و غیره — غنی‌سازی می‌کند، به طوری که یک نام فایل خام به یک مدخل فهرست کامل با آثار هنری، بازیگران و فراداده تبدیل می‌شود. نتایج از طریق WebSocket به فرانت‌اند TypeScript React ارسال می‌شوند، بنابراین کتابخانه به‌صورت زنده و همزمان با فرآیند دریافت به‌روزرسانی می‌شود، نه با رفرش دستی. هر بایت از فراداده در یک پایگاه داده رمزنگاری‌شده SQLCipher ذخیره می‌شود که با احراز هویت مبتنی بر JWT و کنترل دسترسی مبتنی بر نقش محافظت می‌شود.

در حالی که بیشتر فهرست‌سازان به محض قطع یک اشتراک از کار می‌افتند، Catalogizer طوری طراحی شده که حتی در زمان قطعی نیز کاربردی باقی بماند. قطع موقت SMB با اتصال مجدد نمایی، مدارشکن برای جلوگیری از فشار به میزبان غیرفعال، نظارت مداوم بر سلامت سیستم و حافظه پنهان فراداده آفلاین که درخواست‌های کاربران را از آخرین وضعیت معتبر پاسخ می‌دهد، مدیریت می‌شود — تفاوت میان «کل برنامه به‌خاطر ری‌استارت یک NAS از کار افتاد» و «یک منبع دچار اختلال شده و بقیه چیزها کار می‌کنند». علاوه بر فهرست‌بندی، این سیستم به‌عنوان ابزاری عملیاتی برای مجموعه عمل می‌کند: تحلیل روند رشد و ردیابی کیفیت/نسخه، تولید گزارش‌های حرفه‌ای PDF، سرویس تبدیل PDF به تصویر/متن/HTML، صادرات/واردات موارد موردعلاقه (JSON/CSV) و همگام‌سازی ابری با S3، Google Cloud Storage یا پوشه‌های محلی. و این یک مونولیت بزرگ نیست — بلکه از ۲۱ زیرماژول قابل‌استفاده مجدد digital.vasic.* Go به‌علاوه بسته‌های کلاینت TypeScript تشکیل شده که هر یک به‌طور مستقل تست و نسخه‌بندی شده‌اند، به طوری که همان قطعات احراز هویت، فایل‌سیستم، استریم و نظارت که Catalogizer را به کار می‌اندازند، خانواده محصولات گسترده‌تر را نیز قدرت می‌بخشند. تضمین کیفیت خوداظهاری نیست: چارچوب چالش‌ها و HelixQA هر قابلیت اعلام‌شده را تحت تأیید مبتنی بر شواهد و ضدبلوف قرار می‌دهند.

محتوا

مدیران رسانه‌ای موجود فرض را بر یک بستر ذخیره‌سازی واحد و یک نوع رسانه می‌گذارند. اما مجموعه‌های واقعی در میان چندین اشتراک‌گذاری NAS و پروتکل‌های مختلف پراکنده‌اند، با قطع هر اشتراک دچار اختلال می‌شوند و ترکیبی از فیلم، موسیقی، بازی و نرم‌افزار را در خود جای می‌دهند. Catalogizer برای این ساخته شد که با همه پروتکل‌ها یکسان رفتار کند، در برابر ذخیره‌سازهای شبکه‌ای ناپایدار مقاوم باشد و یک کاتالوگ معتبر، غنی‌شده و رمزنگاری‌شده از کل محتوا ارائه دهد.

این ابزار آنچه را که معمولاً به مجموعه‌ای از ابزارهای جداگانه نیاز دارد، در یک بسته خودمیزبان و رمزنگاری‌شده گرد هم می‌آورد: دریافت محتوا بدون وابستگی به پروتکل که با هر بستر ذخیره‌سازی یکسان رفتار می‌کند، مقاومتی که کاتالوگ را حتی هنگام قطعی ذخیره‌سازها فعال نگه می‌دارد به جای آنکه با آنها از کار بیفتد، و غنی‌سازی چندمنبعی که فایل‌های خام را به کتابخانه‌ای قابل مرور و دارای ویژگی تبدیل می‌کند. دستاورد معماری مبتنی بر ماژول‌های جداشونده، تجمعی است: یک اصلاح امنیتی در کلاینت فایل‌سیستم یا افزودن یک پلاگین ارائه‌دهنده جدید، تنها یک بار اعمال می‌شود و به همه مصرف‌کنندگان ارتقا می‌بخشد، بنابراین Catalogizer همگام با توسعه زیرساخت‌های پیرامونش، به‌طور پیوسته بهبود می‌یابد. به زبان ساده، تفاوت میان یک فهرست رسانه‌ای و یک *سیستم* رسانه‌ای است – سیستمی که مالک آن شمایید، در برابر زیرساخت‌های ناپایدار دوام می‌آورد و کارکرد درونی‌اش نه وعده‌ای بیش، بلکه اثبات‌شده است.

  • کلاینت فایل‌سیستم یکپارچه چندپروتکله (SMB/FTP/NFS/WebDAV/محلی) پشت یک رابط واحد.
  • حافظه پنهان آفلاین + قطع‌کننده مدار برای حفظ قابلیت استفاده کاتالوگ در زمان قطعی ذخیره‌سازها.
  • استخراج کامل به ۲۱ زیرماژول قابل استفاده مجدد digital.vasic.* و ماژول‌های کلاینت TS.
  • کاتالوگ رمزنگاری‌شده در حالت سکون (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.
  • APIهای فراداده خارجی (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 — همگام‌سازی ابری و ذخیره‌سازی نقاط بازرسی.