
مدیریت یک هوملب (Home Lab) معمولاً به معنای باز نگهداشتن چندین تب مرورگر است؛ یک تب برای داشبورد Proxmox روی مینیپیسی، یک تب برای صفحه مدیریت روتر، یکی برای Home Assistant و دیگری برای Jellyfin. جابهجایی میان این تبها با میانبرهای صفحهکلید سریعتر انجام میشود، اما در درازمدت خستهکننده است. یک کاربر بهجای افزودن یک اپلیکیشن داشبورد دیگر، از اپلیکیشن یادداشتبرداری Obsidian و اکوسیستم پلاگینهای آن برای ساختن رابط کاربری (Front End) هوملب خود استفاده کرده است.
گام نخست: تبدیل هر سرور به یک یادداشت ساده
پیش از نصب هر پلاگینی، ساختار فراداده (Frontmatter) یادداشتها تعیین شد. نسخهای از Obsidian که از Mac App Store نصب شده بود، در نصب پلاگینها مشکلی نداشت و حتی امکان اتصال به یک نمونه محلی از مدل زبانی (LLM) را فراهم میکرد؛ اما هنگام اجرای پلاگینی که به ثبت رابط خط فرمان (CLI) نیاز داشت، مشخص شد نسخه Mac App Store از این قابلیت پشتیبانی نمیکند. به همین دلیل، نسخهای مستقیماً از وبسایت رسمی Obsidian دریافت شد.
سپس پلاگینهای انجمن (Community Plugins) فعال و دو پلاگین Dataview و Homepage نصب شدند. برای هر سرویس یک یادداشت با ساختار فراداده یکسان ساخته شد: میزبان (host)، نشانی آیپی (IP)، درگاه (port)، وضعیت (status) و آخرین بررسی (last-checked). این یادداشتها در سه پوشه دستهبندی شدند: سرورها، شبکه و خانه هوشمند. به این ترتیب میزبان Proxmox، روتر RT-AX88U، پروژه Kindle و رزبریپای هرکدام یادداشتی با فیلدهای یکدست دریافت کردند.
این ساختار، خزانه یادداشتها (Vault) را به یک بایگانی دقیق تبدیل کرد، اما یافتن هر اطلاعاتی مستلزم بهخاطر سپردن محل یادداشت بود و مقایسه دو مورد نیز باز کردن همزمان دو یادداشت را میطلبید.
Dataview: تبدیل یادداشتها به جدول وضعیت زنده
نصب پلاگین Dataview گام طبیعی بعدی بود. یک پرسوجو (Query) واحد، هر یادداشت برچسبخورده با #service را در قالب جدولی بر پایه فیلدهای استانداردشده گرد میآورد:
- TABLE host, port, status, last-checked
- FROM #service
- SORT status ASC
هر یادداشت سرویس جدیدی که با فراداده درست افزوده شود، بدون کپیکردن دادهها بهصورت خودکار در جدول ظاهر میشود. همچنین هر زمان وضعیت یک سرویس به حالت قطع تغییر کند، آن یادداشت به بالای فهرست منتقل میشود و میان سایر موارد پنهان نمیماند. با این کار، خزانه یادداشتها به یک داشبورد تبدیل شد.
Homepage: تعیین صفحهای که هنگام باز شدن بارگذاری میشود
پلاگین Dataview مسئله «چه چیزی دیده میشود» را حل کرد و پلاگین Homepage مسئله «کجا فرود میآییم» را. Obsidian بهطور پیشفرض آخرین یادداشت مشاهدهشده را باز میکند که بهندرت داشبورد هوملب بود. پلاگین Homepage اجازه میدهد یک یادداشت برای بارگذاری همیشگی تثبیت شود؛ بنابراین یادداشتی که جدول Dataview و پیوندهای سریع به روتر، Jellyfin و Home Assistant را در خود دارد، بهعنوان صفحه آغازین تعیین شد.
یک اسکریپت پایتون (Python) نیز وظیفه بررسی وضعیت سلامت و پینگکردن سرویسهای یادشده را از طریق پروتکل TCP از روی مک بر عهده گرفت.
MegaMem: تبدیل خزانه یادداشتها به یک نقطه پایانی MCP
پلاگین سوم، MegaMem، در ابتدا تنها از سر کنجکاوی نصب شد. این پلاگین برخلاف دو پلاگین دیگر مستقیماً در فهرست پلاگینهای انجمن در دسترس نیست. برای نصب آن از پلاگین BRAT (ابزار بهروزرسانی خودکار بازبین بتا) استفاده شد و مخزن C-Bjorn/megamem-mcp به آن معرفی شد. روش دستی نیز وجود دارد: دریافت فایل زیپ نسخه انتشار و استخراج دستی آن در پوشه پلاگینهای Obsidian.
برای کارکرد این پلاگین، ثبت رابط خط فرمان Obsidian از مسیر Settings → General → Advanced → Command line interface ضروری است؛ گزینهای که در نسخه Mac App Store وجود ندارد. آخرین قطعه این پازل، پایگاه داده گراف (Graph Database) بود که Neo4j Desktop انتخاب شد؛ هرچند میتوان از FalkorDB نیز از طریق Docker بهره گرفت. پس از اجرای پایگاه داده، همگامسازی بهسادگی انجام میشود.
پلاگین MegaMem یادداشتها را از یک انبوه فایل جداگانه به یک بانک حافظه هوشمند و زمانآگاه (Time-aware) تبدیل میکند و آنها را همچون شبکهای از خاطرات به هم متصل میسازد. این ویژگی به دستیار هوش مصنوعی مانند Claude امکان میدهد یادداشتها را مستقیماً بخواند، جستوجو کند و بهروزرسانی کند. در نتیجه، هوش مصنوعی اطلاعات درست را مییابد و کاربر نیازی ندارد بهخاطر بسپارد که هر داده را کجا ذخیره کرده است.
تفاوت یک داشبورد با یک رابط کاربری کامل همینجاست: داشبورد چیزی را نشان میدهد که کاربر از قبل میداند به دنبال آن است، اما این رابط به پرسشی پاسخ میدهد که عنوان یادداشتی برای آن وجود ندارد. برای نمونه، هنگام پرسش درباره تنظیم عبور پردازنده گرافیکی یکپارچه (iGPU Passthrough) روی ProDesk، پاسخ مستقیماً از گراف استخراج شد، بدون آنکه نیاز به باز کردن یادداشت باشد. همین اتفاق درباره پرسش مربوط به کرش روتر RT-AX88U نیز رخ داد.
MegaMem فرادادهها را پیمایش و استانداردسازی میکند، نوع موجودیتها را خودش استنتاج میکند و نیازی به ساخت دستی طرحواره (Schema) ندارد. تنها چیزی که لازم دارد، اتصال به یک کلاینت MCP برای آغاز کار با یادداشتهای موجود است.
جمعبندی
سه پلاگین نخست همان رابط کاربری مورد نظر را ساختند: سازمانیافته، زنده و تنها با یک کلیک هنگام باز کردن Obsidian. پلاگین MegaMem این مجموعه را به چیزی تبدیل کرد که میتوان با آن گفتوگو کرد، نه فقط آن را خواند. Dataview همچنان جدول را میسازد، Homepage همچنان تعیین میکند چه چیزی نخست بارگذاری شود و MegaMem روی هر دو قرار میگیرد و بهجای نمایش صرف، پاسخ میدهد.