معرفی Bento: مجموعه اداری در یک فایل HTML واحد
نرمافزار Bento یک مجموعه اداری با مجوز MIT است که در قالب یک فایل HTML عرضه میشود. بررسی کنید که چگونه این ابزار جایگزین سبکتری برای Nextcloud در سرورهای کوچک است.
Bento چیست
Bento یک مجموعه اداری است که در قالب یک فایل HTML واحد عرضه میشود. شما یک فایل را دانلود میکنید و آن را در هر مرورگر مدرنی باز میکنید؛ این فایل هم ویرایشگر است و هم سند. هیچ نصبی وجود ندارد و نیازی به حساب کاربری نیست. این نرمافزار تحت مجوز MIT منتشر شده، کد منبع آن در github.com/nyblnet/bento موجود است و اولین نسخه رسمی آن در 21 July 2026 منتشر شد. با توجه به تاریخ نگارش این متن در 1 August 2026، عمر این پروژه کمتر از دو هفته است؛ این مهمترین نکته در این مطلب است و دلیل آنکه بخش آخر به ارزیابی اختصاص یافته، نه مهاجرت.
معنای واقعی «قرارگیری در یک فایل واحد» چیست
یک مجموعه اداری خودمیزبان (self-hosted) معمولاً یک پشته (stack) است. Nextcloud شامل PHP در پشت یک وبسرور، به همراه یک دیتابیس، یک کش و یک اجراکننده وظایف پسزمینه است. ویرایشگر، سرویس دومی در کنار آن است، مانند Collabora Online یا ONLYOFFICE Docs که معمولاً در کانتینر اختصاصی خود اجرا میشود و مرورگر از طریق HTTP با آن ارتباط برقرار میکند. سند در یک فایلسیستم و یک ردیف دیتابیس قرار دارد و نشست ویرایش در داخل سرویس ویرایشگر جریان دارد.
Bento این پشته را حذف میکند. حجم دانلود آن Bento_Slides.bento.html، حدود 571 کیلوبایت در نسخه v1.0.11 (مورخ 27 ژوئیه 2026) است. در داخل آن یک فایل، موارد زیر قرار دارند:
- ویرایشگر، که همان نمایشگر نیز هست
- زماناجرای (runtime) ارائه که اسلایدها را بهصورت تمامصفحه نمایش میدهد
- فونتها و تصاویری که در ارائه استفاده شدهاند، بهصورت تعبیهشده
- خود سند، بهعنوان یک بلوک JSON خوانا در نزدیکی ابتدای فایل
ذخیرهسازی بخش غیرمعمول ماجراست. فایل، بلوک دادههای خود را بازنویسی میکند. صفحه از مرورگر درخواست دسترسی نوشتن از طریق File System Access API (یک رابط مرورگر که به صفحه اجازه میدهد روی فایلی که کاربر انتخاب کرده است بنویسد) را میکند و در مرورگرهایی که فاقد این API هستند، بهجای آن یک دانلود دریافت میکنید. ویرایش یک ارائه، یک کپی جدید از همان فایل خودکفا تولید میکند. هیچ چیزی آپلود نمیشود، زیرا مقصدی برای آپلود وجود ندارد.
این همان جزئیاتی است که افراد هنگام شنیدن عبارت «تکفایل» دچار اشتباه میشوند. این یک باینری سرور نیست که مجموعه اداری شما را بهعنوان یک پردازش واحد روی VPS اجرا کند. اصلاً پردازشی وجود ندارد. زماناجرا، همان مرورگر است؛ بنابراین اگر از VPS استفاده میکنید، آن VPS فقط یک فایل استاتیک را سرو میکند و هیچ کار دیگری انجام نمیدهد.
آنچه مجموعه اداری Bento امروز ارائه میدهد
«مجموعه اداری» بلندپروازی این پروژه است و هنوز موجودی کامل آن محسوب نمیشود. در حال حاضر تنها یک برنامه وجود دارد: bento/slides که یک ویرایشگر ارائه است. نقشه راه پروژه شامل bento/spaces برای یادداشتها، bento/dash برای صفحات گسترده و جداول، و bento/vault است که هر کدام به عنوان یک فایل مستقل .bento.html طراحی شدهاند. اگر امروز به یک واژهپرداز یا نرمافزار صفحه گسترده نیاز دارید، Bento هنوز چنین ابزاری ندارد.
سرعت انتشار نسخهها بالاست. نسخه v1.0.6 در تاریخ 21 July 2026 اولین نسخه ارائه شده بود و v1.0.11 در تاریخ 27 July 2026 منتشر شد؛ یعنی شش انتشار در هفت روز. این موضوع هم نشانهای مثبت از فعالیت نگهدارندگان پروژه است و هم هشداری درباره وضعیت نرمافزار. هر چیزی که با این سرعت در حال تغییر است، هنوز در حال شناسایی باگهای خود است و یادداشتهای انتشار نیز همین وضعیت را نشان میدهند: اصلاحاتی برای کرش کردن همکاری زنده در متون طولانی، رفع مشکل تکرار استایلشیت در فایلهای ذخیرهشده، و اصلاح خطوط پایه نمودار برای مقادیر منفی.
چرا یک فایل برای یک VPS کوچک مناسب است
انتشار یک deck به معنای کپی کردن یک فایل در دایرکتوری است که وبسرور شما از قبل آن را سرویسدهی میکند. هیچ چیزی برای ارکستراسیون وجود ندارد، هیچ کانتینری برای فعال نگه داشتن نیست و هنگام ارتقا نیازی به مهاجرت دیتابیس ندارید. این وضعیت را با سرویسهای ویرایشگر مقایسه کنید که از حداقلهای اعلامشده توسط هر فروشنده استفاده میکنند:
The data behind this chart
[
{
"label": "bento/slides (no backend)",
"min_ram_mb": 0
},
{
"label": "Collabora Online CODE",
"min_ram_mb": 1024
},
{
"label": "ONLYOFFICE Docs, Debian package",
"min_ram_mb": 2048
},
{
"label": "ONLYOFFICE Docs, Docker",
"min_ram_mb": 4096
}
]اینها حداقلهای اعلامشده توسط فروشندگان تا اوت 2026 هستند، نه اعدادی که روی یک سرور در حال اجرا اندازهگیری شده باشند. Collabora مقدار 1 گیگابایت برای سیستم به علاوه تقریباً 50 مگابایت به ازای هر کاربر را اعلام کرده است، بنابراین 1024 مگابایت کفِ میزان رم مورد نیاز پیش از اتصال اولین کاربر شماست. ONLYOFFICE Docs از بسته Debian مقدار 2048 مگابایت و در Docker مقدار 4096 مگابایت، به علاوه 4 گیگابایت swap و 40 گیگابایت فضای دیسک درخواست میکند. بکاند ویرایش Bento به 0 مگابایت نیاز دارد زیرا اصلاً بکاند ویرایشی وجود ندارد. در زیرساخت هر یک از این سرویسهای ویرایشگر، شما همچنان خودِ Nextcloud را به همراه دیتابیس و کش آن اجرا میکنید، بنابراین روی یک VPS با 2 گیگابایت رم، این تفاوت تعیین میکند که چه سرویسهای دیگری را میتوانید میزبانی کنید.
پشتیبانگیری نیز به همین ترتیب سادهتر میشود. بازیابی Nextcloud به معنای بازیابی فایلها و دیتابیسی است که با یکدیگر در یک نقطه زمانی خاص همخوانی دارند. بازیابی یک deck در Bento به معنای بازیابی یک فایل است. این فایل همچنان به یک پشتیبانگیری واقعی با تاریخچه نیاز دارد، زیرا ویرایشگر فایل را در همان محل بازنویسی میکند و نوشتن در محل، عملیاتی است که ممکن است با خطا مواجه شود: یک اسنپشات زمانبندیشده با restic از آن دایرکتوری این موضوع را پوشش میدهد.
یک مؤلفه سرور اختیاری وجود دارد. همکاری زنده از چیزی استفاده میکند که پروژه آن را blind relay مینامد و از طریق server/sync-worker/ در مخزن قابل میزبانی است. اسناد در مرورگر با AES-GCM (حالت Galois/Counter، یک حالت رمزنگاری احراز هویتشده) رمزنگاری میشوند، کلید اتاق هرگز از فایل خارج نمیشود و relay فقط متن رمزنگاریشده، زمانبندی اتصال و هش آن کلید را نگه میدارد. ویرایش شخصی نیازی به relay ندارد.
تفاوتهای Bento در مقایسه با Nextcloud و Collabora
کنترل دسترسی بزرگترین شکاف موجود است. در Bento، کلید همکاری همزمان با سند ایجاد شده و درون فایل قرار میگیرد؛ بنابراین در اختیار داشتن فایل به معنای عضویت در نشست (session) است. برای لغو دسترسی یک فرد، باید کلید را تغییر دهید. این مدل فاقد حساب کاربری، گروهها، سیستم ورود یکپارچه (SSO) و مسیر حسابرسی (audit trail) است. Nextcloud به شما امکان تعریف کاربر، لینکهای اشتراکگذاری با تاریخ انقضا، سهمیهبندی، تاریخچه نسخهها در سمت سرور و کلاینتهای موبایل را میدهد. اگر دو نفر به سطوح دسترسی متفاوتی برای یک سند واحد نیاز داشته باشند، Bento قادر به پیادهسازی آن نیست.
قابلیت همکاری در فرمتها، دومین شکاف است. Bento دادهها را با فرمت JSON اختصاصی خود ذخیره میکند؛ دقیقاً به همین دلیل است که فایلها خوانا هستند و اسکریپتها میتوانند آنها را ویرایش کنند. Collabora و ONLYOFFICE برای مدیریت رفتوبرگشتی (round-trip) فایلهای OOXML (خانواده .docx و .pptx) با دقت بالا طراحی شدهاند، زیرا این فرمتی است که سایر افراد برای شما ارسال میکنند. پیش از ایجاد یک گردشکاری که بر پایه سازگاری با PowerPoint است، حتماً یادداشتهای انتشار (release notes) نسخه دانلود شده را بررسی کنید تا از قابلیتهای واردات و صادرات آن مطلع شوید.
بلوغ نرمافزار، سومین مورد است. این پروژه به صراحت به نقاط ضعف خود اشاره میکند که یک امتیاز مثبت برای آن محسوب میشود. قابلیت Undo در حین همکاری زنده، مبتنی بر snapshot است و ممکن است ویرایش همزمان یک همکار روی همان ویژگی را بازگردانی (revert) کند. ویرایش در این نرمافزار اولویت دسکتاپ دارد و گوشیهای موبایل برای مشاهده و ارائه، بهتر از ویرایش عمل میکنند. منوی save-as هنوز با ابعاد صفحه نمایش گوشی سازگار نیست. اینها محدودیتهای شناختهشده در نسخه v1.0.11 هستند. با توجه به عمر دو هفتهای پروژه، قطعاً موارد ناشناخته دیگری نیز وجود دارد.
آیا باید به آن اسناد واقعی سپرد؟
پرسش را بر اساس نیاز سند تفکیک کنید. یک سخنرانی در کنفرانس، اسلاید فروش یا درسی که میخواهید 10 سال دیگر دوباره باز کنید، گزینه مناسبی است؛ زیرا فایل، ویرایشگر خود را به همراه دارد و نیازی نیست که پروژه تا سال 2036 همچنان وجود داشته باشد. یک قرارداد با سه بازبین، سیاست نگهداری و تأییدکننده مشخص، گزینه مناسبی نیست؛ زیرا چنین سندی به حسابهای کاربری و تاریخچه سمت سرور نیاز دارد.
دو محافظ عملی: اسلایدها را در سیستم کنترل نسخه یا در یک نسخه پشتیبان دارای تاریخچه نگهداری کنید؛ چرا که فایلی که هنگام ذخیرهسازی خود را بازنویسی میکند، ممکن است در همان لحظه دچار خرابی شود و شما به نسخه دیروز نیاز خواهید داشت. همچنین با یک .bento.html که از طرف فرد ناشناسی ارسال شده، مانند یک برنامه رفتار کنید، نه یک سند؛ زیرا ماهیت آن دقیقاً همین است: یک صفحه وب که یک اپلیکیشن کامل درون خود دارد. آن را همانطور باز کنید که هر صفحه وب غیرقابلاعتمادی را باز میکنید.
داستان اتوماسیون واقعاً مفید است و ارزش نام بردن دارد. از آنجا که سند درون فایل، یک JSON ساده است، یک عامل کدنویسی (coding agent) میتواند یک .bento.html را مستقیماً ویرایش کند و این پروژه یک مهارت Claude Code برای این کار ارائه میدهد. این قابلیت با مدلهای متنباز محلی نیز کار میکند، بنابراین سیستمی که در حال اجرای Ollama برای ارائه مدل شخصی شما است، میتواند بدون ارسال هیچ دادهای به خارج از دستگاه، پیشنویس اسلایدها را آماده کند.
جایگاه Bento در یک سرور کوچک
Bento در کنار سایر ابزارهای تکمنظوره قرار میگیرد که با حفظ حجم کم، جای خود را در یک VPS کوچک باز میکنند: یک RSS reader خودمیزبان یا Actual Budget برای مدیریت مالی شخصی. یک وظیفه مشخص، ردپای کوچک و دادههایی که بدون نیاز به برنامه اصلی قابل خواندن هستند. کسانی که اپلیکیشن یادداشتبرداری خود را با یکی از جایگزینهای خودمیزبان Notion جایگزین میکنند، همین معامله را انجام میدهند و راهنمای جامعتر برای آنچه میتوان خودمیزبان کرد باقی آن لیست را پوشش میدهد.
اگر به یک پلتفرم کامل مستندات با قابلیت تعریف کاربر، اشتراکگذاری و تاریخچه نسخهها نیاز دارید، Nextcloud روی یک VPS با Docker، TLS و پشتیبانگیری همچنان پاسخ مناسب است. Bento برای تصاحب آن جایگاه رقابت نمیکند. این ابزار چیزی است که برای شخصی خارج از سرور خود میفرستید؛ به صورت یک فایل واحد که بدون نیاز به ورود (login) یا افزونه، برای آنها باز میشود.
FAQ
آیا Bento جایگزینی برای Nextcloud و Collabora است؟
خیر، برای کار مشابهی نیستند. Nextcloud به همراه Collabora یا ONLYOFFICE به شما امکاناتی نظیر مدیریت حسابهای کاربری، پوشههای اشتراکی، سطوح دسترسی و تاریخچه نسخهها در سمت سرور میدهد و برای ارائه این خدمات به یک پشته سرور کامل نیاز دارد. Bento یک فایل قابلحمل به شما میدهد که در هر جایی باز میشود و به هیچ سروری نیاز ندارد. زمانی که میخواهید سند بهصورت خودکفا (self-contained) باشد از Bento استفاده کنید. زمانی که چندین نفر در طول زمان به سطوح دسترسی متفاوت برای یک سند واحد نیاز دارند، از پشته Nextcloud استفاده کنید.
آیا Bento به سرور یا VPS نیاز دارد؟
خیر. یک فایل .bento.html از روی دیسک محلی در هر مرورگر مدرنی باز میشود و بهصورت آفلاین قابل ویرایش است. VPS تنها برای دو مورد اختیاری اهمیت دارد: ارائه فایل از طریق HTTPS برای دانلود توسط دیگران، و اجرای relay همگامسازی برای همکاری زنده. این relay از طریق server/sync-worker/ در مخزن پروژه قابل میزبانی است و دادههای رمزنگاریشده به همراه متادیتای اتصال را ذخیره میکند، بنابراین هرگز به محتوای شما دسترسی ندارد.
Bento اسناد را با چه فرمتی ذخیره میکند؟
با فرمت JSON اختصاصی خود که بهصورت یک بلوک خوانا در ابتدای فایل HTML نوشته شده است، به همراه فونتها و تصاویر که در کنار آن تعبیه شدهاند. اگر فایل را در یک ویرایشگر متن باز کنید، میتوانید ساختار سند را بخوانید؛ به همین دلیل است که اسکریپتها و عاملهای هوش مصنوعی میتوانند یک اسلاید را در جای خود ویرایش کنند. این همچنین به این معنی است که فرمت ذخیرهشده OOXML نیست، بنابراین فرض نکنید که یک گردش کار .pptx تا زمانی که import و export را در نسخهای که استفاده میکنید تست نکردهاید، بهدرستی کار خواهد کرد.
در نبود حساب کاربری، همکاری چگونه انجام میشود؟
کلید همکاری در زمان ایجاد سند تولید شده و درون فایل قرار میگیرد، بنابراین هر کسی که فایل را در اختیار داشته باشد میتواند به نشست (session) بپیوندد. ویرایشها با استفاده از CRDT (نوع داده تکثیریافته بدون تعارض؛ ساختاری که تغییرات همزمان را بدون نیاز به مرجع مرکزی ادغام میکند) ترکیب شده و با AES-GCM بهصورت رمزنگاریشده منتقل میشوند. نامهای نمایشدادهشده صرفاً ادعایی هستند و اثبات هویت نیستند، بنابراین لیست شرکتکنندگان را بهعنوان یک برچسب در نظر بگیرید، نه یک بررسی هویتی. لغو دسترسی به معنای تغییر کلید و توزیع مجدد فایل است.
آیا Bento برای اسناد مهم آماده است؟
این نرمافزار تحت مجوز MIT و بهصورت متنباز توسعه یافته است. در تاریخ 1 August 2026 عمر آن کمتر از دو هفته بود و در هفته اول انتشار، شش نسخه از آن عرضه شد. با آن بهعنوان نرمافزاری برخورد کنید که در این ماه ارزیابی میکنید، نه نرمافزاری که در این فصل استانداردسازی میکنید. هر اسلاید را در یک نسخه پشتیبان با تاریخچه نگهداری کنید، مسیر export مورد نیاز خود را پیش از تکیه بر آن تست کنید، و هر چیزی که دارای الزامات انطباق یا نگهداری است را در سیستمی ذخیره کنید که دارای حساب کاربری و تاریخچه نسخهها باشد.