SSD Nodes Learn Hosting plans →
راهنماها Matt Connorتوسط Matt Connor · به‌روزرسانی شده 2026-10-30

Bento چیست؟ مجموعه اداری در یک فایل HTML

Bento یک مجموعه اداری با مجوز MIT است که در یک فایل HTML اجرا می‌شود. ببینید این طراحی روی VPS کوچک چه مزیتی دارد و در برابر Nextcloud چه هزینه‌ای ایجاد می‌کند.

Bento چیست

Bento یک مجموعه اداری است که به صورت یک فایل HTML واحد عرضه می‌شود. شما یک فایل را دانلود می‌کنید، آن را در هر مرورگر مدرنی باز می‌کنید و همان فایل هم ویرایشگر است و هم سند. هیچ نصبی وجود ندارد و نیازی به حساب کاربری نیست. این نرم‌افزار تحت مجوز MIT منتشر شده، کد منبع آن در github.com/nyblnet/bento قرار دارد و اولین نسخهٔ آن در تاریخ 21 July 2026 عرضه شد. در تاریخ 27 October 2026، این یعنی عمر آن کمی بیش از سه ماه است و تا به امروز 26 نسخه از آن منتشر شده است. جوانی این پروژه همچنان مهم‌ترین واقعیت در این مطلب است و دلیل اینکه بخش آخر به جای مهاجرت، به ارزیابی اختصاص یافته، همین موضوع است.

معنای واقعی «قرارگیری در یک فایل واحد»

یک مجموعه اداری self-hosted معمولاً یک stack است. Nextcloud یک برنامه PHP است که پشت یک وب‌سرور قرار دارد و از یک دیتابیس، یک cache و یک اجراکننده jobهای پس‌زمینه استفاده می‌کند. ویرایشگر، سرویس دومی در کنار آن است (مانند Collabora Online یا ONLYOFFICE Docs) که معمولاً در container اختصاصی خود اجرا می‌شود و مرورگر از طریق HTTP با آن ارتباط برقرار می‌کند. سند در یک فایل‌سیستم و یک ردیف دیتابیس ذخیره می‌شود و نشست ویرایش درون سرویس ویرایشگر جریان دارد.

Bento این stack را حذف می‌کند. حجم دانلود آن Bento_Slides.bento.html است؛ حدود 659 کیلوبایت در نسخه v1.0.11 (مورخ 27 ژوئیه 2026) و حدود 706 کیلوبایت در نسخه v1.2.7 (مورخ 11 اکتبر 2026). درون آن یک فایل، موارد زیر قرار دارند:

  • ویرایشگر، که همان نمایشگر نیز هست
  • runtime ارائه (presentation) که اسلایدها را به‌صورت تمام‌صفحه نمایش می‌دهد
  • فونت‌ها و تصاویری که در اسلایدها استفاده شده‌اند (به‌صورت embedded)
  • خودِ سند، به‌صورت یک بلوک JSON خوانا در ابتدای فایل

ذخیره‌سازی بخش غیرمعمول ماجراست. فایل، بلوک داده‌های خود را بازنویسی می‌کند. صفحه از طریق File System Access API (یک رابط مرورگر که به صفحه اجازه می‌دهد روی فایلی که کاربر انتخاب کرده است بنویسد) از مرورگر دسترسی نوشتن می‌گیرد؛ در مرورگرهایی که فاقد این API هستند، به‌جای آن یک فایل دانلود می‌شود. ویرایش یک اسلاید، نسخه جدیدی از همان فایل خود-محتوا (self-contained) تولید می‌کند. هیچ چیزی آپلود نمی‌شود، زیرا مقصدی برای آپلود وجود ندارد.

این همان جزئیاتی است که افراد هنگام شنیدن عبارت «تک‌فایل» به اشتباه برداشت می‌کنند. این یک باینری سرور نیست که مجموعه اداری شما را به‌عنوان یک پردازش واحد روی VPS اجرا کند. اصلاً هیچ پردازشی وجود ندارد. runtime همان مرورگر است؛ بنابراین اگر از 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 عرضه شد؛ یعنی شش انتشار در هفت روز. این سرعت از آن زمان حفظ شده است: نسخه v1.2.7 در 11 October 2026 بیست و سومین نسخه و v1.2.10 در 24 October 2026 بیست و ششمین نسخه بوده است. این موضوع نشانه مثبتی از فعالیت نگهدارندگان پروژه است، اما هشداری درباره وضعیت نرم‌افزار نیز محسوب می‌شود. هر نرم‌افزاری که با این سرعت تغییر می‌کند، همچنان در حال شناسایی باگ‌های خود است و یادداشت‌های انتشار نیز همین وضعیت را نشان می‌دهند: اصلاحاتی برای کرش کردن همکاری زنده در متن‌های طولانی، رفع تکثیر استایل‌شیت‌ها در فایل‌های ذخیره‌شده، و اصلاح خط مبنای نمودارها برای مقادیر منفی. پنج مورد از شش نسخه منتشر شده از v1.2.5 تا v1.2.10، مشکلات امنیتی کشف‌شده در بازبینی‌های داخلی پروژه را برطرف کرده‌اند؛ تنها نسخه v1.2.8 شامل چنین اصلاحاتی نیست.

چرا یک فایل برای یک VPS کوچک مناسب است

انتشار یک deck به معنای کپی کردن یک فایل در دایرکتوری است که وب‌سرور شما از قبل آن را سرویس‌دهی می‌کند. هیچ چیزی برای ارکستراسیون وجود ندارد، هیچ container برای اجرا نگه داشتن نیست و هیچ دیتابیسی برای مهاجرت هنگام ارتقا وجود ندارد. این موضوع را با سرویس‌های ویرایشگر، با استفاده از حداقل‌های اعلام‌شده برای هر کدام، مقایسه کنید:

نمودارPublished minimum RAM for the editing backend, MB
داده‌های پشت این نمودار
[
  {
    "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
  }
]

این‌ها حداقل‌های اعلام‌شده هستند، نه اعدادی که روی یک سیستم در حال اجرا اندازه‌گیری شده باشند. رقم Collabora همان 1 GB نیاز سیستمی است که Nextcloud برای Collabora Online اعلام کرده است، که برای هر کاربر متصل، حافظه بیشتری اضافه می‌کند؛ بنابراین 1,024 MB کفِ حافظه پیش از اتصال اولین کاربر شماست. مرکز راهنمای ONLYOFFICE، که در تاریخ 27 October 2026 بررسی شد، حداقل 2,048 MB برای پکیج Debian یا Ubuntu و 4,096 MB در Docker درخواست می‌کند که هر کدام حداقل 4 GB فضای swap و 40 GB فضای دیسک خالی نیاز دارند. بک‌اند ویرایش Bento به 0 MB نیاز دارد زیرا هیچ بک‌اند ویرایشی وجود ندارد. در زیر هر کدام از سرویس‌های ویرایشگر، شما همچنان خودِ Nextcloud را با دیتابیس و کش آن اجرا می‌کنید، بنابراین روی یک VPS با 2 GB رم، این اختلاف تعیین می‌کند که چه چیز دیگری می‌توانید میزبانی کنید.

بک‌آپ‌ها نیز به همین ترتیب ساده‌تر می‌شوند. بازیابی Nextcloud به معنای بازیابی فایل‌ها و دیتابیسی است که با یکدیگر در یک نقطه زمانی خاص همخوانی دارند. بازیابی یک deck در Bento به معنای بازیابی یک فایل است. این فایل همچنان به یک بک‌آپ واقعی با تاریخچه نیاز دارد، زیرا ویرایشگر فایل را در همان محل بازنویسی می‌کند و یک نوشتنِ درجا (in-place write) عملیاتی است که ممکن است با خطا مواجه شود: یک اسنپ‌شات زمان‌بندی‌شده restic از آن دایرکتوری این موضوع را پوشش می‌دهد.

یک کامپوننت سروری اختیاری وجود دارد. همکاری زنده (Live collaboration) از چیزی استفاده می‌کند که پروژه آن را blind relay می‌نامد و از طریق server/sync-worker/ در مخزن قابل خود-میزبانی (self-hostable) است. اسناد در مرورگر با AES-GCM (حالت Galois/Counter، یک حالت رمزنگاری احراز هویت‌شده) رمزنگاری می‌شوند، کلید اتاق هرگز از فایل خارج نمی‌شود و relay فقط متن رمزنگاری‌شده (ciphertext)، زمان‌بندی اتصال و هشی از آن کلید را نگه می‌دارد. ویرایش به تنهایی نیازی به relay ندارد.

آنچه در مقایسه با Nextcloud و Collabora از دست می‌دهید

کنترل دسترسی بزرگ‌ترین شکاف است. در Bento کلید همکاری همزمان با سند ایجاد شده و درون فایل قرار می‌گیرد، بنابراین در اختیار داشتن فایل به معنای عضویت در نشست است. ابطال دسترسی فرد از طریق تغییر کلید انجام می‌شود. این مدل فاقد حساب کاربری، گروه‌ها، سیستم ورود یکپارچه (SSO) و مسیر حسابرسی (audit trail) است. Nextcloud به شما کاربر، لینک‌های اشتراک‌گذاری با تاریخ انقضا، سهمیه‌بندی، تاریخچه نسخه‌ها در سمت سرور و کلاینت‌های موبایل ارائه می‌دهد. اگر دو نفر به سطوح دسترسی متفاوتی برای یک سند نیاز داشته باشند، Bento قادر به پیاده‌سازی آن نیست.

قابلیت همکاری فرمت‌ها شکاف دوم است. Bento فرمت JSON اختصاصی خود را ذخیره می‌کند؛ دقیقاً به همین دلیل است که فایل خوانا بوده و اسکریپت‌ها می‌توانند آن را ویرایش کنند. Collabora و ONLYOFFICE برای تبادل دقیق و با وفاداری بالای OOXML (خانواده .docx و .pptx) وجود دارند، زیرا این فرمتی است که سایر نقاط جهان برای شما ارسال می‌کنند. Bento شروع به پر کردن این شکاف کرده است: نسخه 1.2.6 (4 اکتبر 2026) قابلیت import فایل‌های PowerPoint را اضافه کرد و نسخه 1.2.7 (11 اکتبر 2026) یک صفحه درون‌مرورگری برای تبدیل فایل‌های PowerPoint به داخل و خارج از سیستم اضافه نمود. هر دو قابلیت تنها چند هفته قدمت دارند، بنابراین پیش از ایجاد یک گردش‌کاری که بر سازگاری با PowerPoint متکی است، یادداشت‌های انتشار (release notes) را بررسی کنید تا ببینید نسخه‌ای که دانلود کرده‌اید چه فرمت‌هایی را import و export می‌کند.

بلوغ پروژه شکاف سوم است. این پروژه نواقص خود را به‌صراحت مستند می‌کند که یک نقطه قوت برای آن محسوب می‌شود. قابلیت Undo در حین همکاری زنده، مبتنی بر snapshot است و ممکن است ویرایش همزمان یک همکار روی همان ویژگی را بازگرداند. ویرایش در این ابزار اولویت دسکتاپ دارد و گوشی‌ها برای مشاهده و ارائه بهتر از ویرایش عمل می‌کنند. فایل README همچنان هر دو مورد را به عنوان محدودیت‌های شناخته‌شده ذکر می‌کند. پشتیبانی از گوشی به‌سرعت در حال پیشرفت است: در نسخه 1.0.11 منوی save-as در صفحه گوشی جا نمی‌شد، نسخه 1.0.12 ذخیره یک کپی را از طریق گوشی ممکن ساخت و نسخه 1.0.19 ویرایش متن با لمس را اضافه کرد که تا پیش از آن، فایل‌ها را در گوشی عملاً فقط‌خواندنی (read-only) می‌کرد. با عمر کمی بیش از سه ماه، محدودیت‌های ناشناخته‌ای نیز وجود دارند.

آیا باید به آن برای اسناد واقعی اعتماد کرد؟

پرسش را بر اساس نیاز سند تفکیک کنید. یک ارائه کنفرانس، اسلاید فروش یا سخنرانی که می‌خواهید ده سال دیگر دوباره باز کنید، گزینه مناسبی است؛ زیرا فایل، ویرایشگر خود را به همراه دارد و نیازی نیست که پروژه در سال 2036 همچنان وجود داشته باشد. یک قرارداد با سه بازبین، سیاست نگهداری و تأییدکننده مشخص، گزینه مناسبی نیست؛ زیرا آن سند به حساب‌های کاربری و تاریخچه سمت سرور نیاز دارد.

دو محافظ عملی وجود دارد. اسلایدها را در سیستم کنترل نسخه یا در یک نسخه پشتیبان دارای تاریخچه نگه دارید، زیرا فایلی که هنگام ذخیره، خود را بازنویسی می‌کند ممکن است در همان لحظه دچار خرابی شود و شما به نسخه دیروز نیاز خواهید داشت. همچنین با یک .bento.html از طرف کسی که نمی‌شناسید، به عنوان یک برنامه برخورد کنید نه یک سند، زیرا ماهیت آن همین است: یک صفحه وب که یک برنامه کامل در درون خود دارد. آن را همان‌طور باز کنید که هر صفحه وب غیرقابل‌اعتمادی را باز می‌کنید. همین واقعیت برای اسلایدهای خودتان نیز صادق است: هر فایل یک نسخه از ویرایشگر را به همراه دارد، بنابراین وقتی در یادداشت انتشار گفته می‌شود "امنیت: این فایل را به‌روزرسانی کنید" (همان‌طور که در تمام نسخه‌ها از v1.2.5 تا v1.2.10 به جز v1.2.8 ذکر شده است)، اسلایدهایی که به اشتراک گذاشته‌اید را به‌روز کنید. نسخه v1.2.7 همچنین از کسانی که اسلایدها را به‌صورت زنده به اشتراک می‌گذارند می‌خواهد که پس از به‌روزرسانی، یک بار از Reset access استفاده کنند و نسخه v1.2.9 از شما می‌خواهد که هر اسلاید محافظت‌شده با رمز عبور را یک بار باز کرده و ذخیره کنید.

داستان اتوماسیون واقعاً مفید است و ارزش نام بردن دارد. از آنجا که سند در داخل فایل یک JSON ساده است، یک عامل کدنویسی (coding agent) می‌تواند یک .bento.html را در همان محل ویرایش کند و پروژه یک مهارت Claude Code برای این کار ارائه می‌دهد. این قابلیت با مدل‌های محلی open-weight نیز کار می‌کند، بنابراین سیستمی که در حال اجرای Ollama برای سرویس‌دهی به مدل شخصی شما است، می‌تواند بدون ارسال هیچ داده‌ای از دستگاه، اسلایدها را پیش‌نویس کند.

جایگاه Bento در یک سرور کوچک

Bento در کنار سایر ابزارهای تک‌منظوره قرار می‌گیرد که با حفظ حجم کم، جای خود را در یک VPS کوچک باز می‌کنند: یک RSS reader خودمیزبان یا Actual Budget برای مدیریت مالی شخصی. یک وظیفه مشخص، ردپای کوچک و داده‌هایی که بدون نیاز به برنامه اصلی قابل خواندن هستند. کسانی که اپلیکیشن یادداشت‌برداری خود را با یکی از جایگزین‌های خودمیزبان Notion جایگزین می‌کنند، همین معامله را انجام می‌دهند و راهنمای جامع‌تر برای آنچه می‌توان خودمیزبان کرد باقی آن لیست را پوشش می‌دهد.

اگر به یک پلتفرم کامل مستندات با قابلیت تعریف کاربر، اشتراک‌گذاری و تاریخچه نسخه‌ها نیاز دارید، Nextcloud روی یک VPS با Docker، TLS و پشتیبان‌گیری همچنان پاسخ مناسب است. Bento برای تصاحب آن جایگاه رقابت نمی‌کند. این ابزار چیزی است که برای شخصی خارج از سرور خود می‌فرستید؛ به صورت یک فایل واحد که بدون نیاز به ورود (login) یا افزونه، برای آن‌ها باز می‌شود.

FAQ

آیا Bento جایگزینی برای Nextcloud و Collabora است؟

خیر، برای کار مشابه نیستند. Nextcloud به همراه Collabora یا ONLYOFFICE امکاناتی نظیر مدیریت حساب‌های کاربری، پوشه‌های اشتراکی، سطوح دسترسی و تاریخچه تغییرات سمت سرور را فراهم می‌کند و برای اجرا به یک پشته سرور کامل نیاز دارد. Bento یک فایل قابل‌حمل به شما می‌دهد که در هر جایی باز می‌شود و نیازی به سرور ندارد. زمانی که می‌خواهید سند به‌صورت مستقل و خودکفا باشد از Bento استفاده کنید. زمانی که چندین نفر نیاز دارند در طول زمان دسترسی‌های متفاوتی به یک سند واحد داشته باشند، از پشته Nextcloud استفاده کنید.

آیا Bento به سرور یا VPS نیاز دارد؟

خیر. یک فایل .bento.html از روی دیسک محلی در هر مرورگر مدرنی باز شده و به‌صورت آفلاین ویرایش می‌شود. VPS تنها برای دو مورد اختیاری اهمیت دارد: ارائه فایل از طریق HTTPS برای دانلود توسط دیگران، و اجرای sync relay برای همکاری زنده. این relay از طریق server/sync-worker/ در مخزن پروژه قابل self-host کردن است و داده‌های رمزنگاری‌شده و متادیتای اتصال را ذخیره می‌کند، بنابراین هرگز به محتوای شما دسترسی ندارد.

Bento اسناد را با چه فرمتی ذخیره می‌کند؟

با فرمت JSON اختصاصی خود که به‌صورت یک بلوک خوانا در ابتدای فایل HTML نوشته شده و فونت‌ها و تصاویر نیز در کنار آن تعبیه شده‌اند. اگر فایل را در یک ویرایشگر متن باز کنید، می‌توانید ساختار سند را بخوانید؛ به همین دلیل است که اسکریپت‌ها و عامل‌های هوش مصنوعی می‌توانند یک اسلاید را در جای خود ویرایش کنند. این همچنین به این معنی است که فرمت ذخیره‌شده OOXML نیست. قابلیت وارد کردن فایل‌های PowerPoint در نسخه 1.2.6 در تاریخ 4 اکتبر 2026 اضافه شد، اما تا زمانی که import و export را در نسخه‌ای که استفاده می‌کنید تست نکرده‌اید، فرض نکنید که یک گردش‌کار .pptx بدون مشکل کار خواهد کرد.

اگر حساب کاربری وجود ندارد، همکاری چگونه انجام می‌شود؟

کلید همکاری در زمان ایجاد سند تولید شده و درون فایل قرار می‌گیرد، بنابراین هر کسی که فایل را در اختیار داشته باشد می‌تواند به نشست (session) بپیوندد. ویرایش‌ها با استفاده از CRDT (نوع داده‌ای تکثیریافته بدون تعارض؛ ساختاری که تغییرات همزمان را بدون نیاز به مرجع مرکزی ادغام می‌کند) ترکیب شده و با AES-GCM رمزنگاری می‌شوند. نام‌های نمایش‌داده‌شده صرفاً ادعایی هستند و اثبات هویت محسوب نمی‌شوند، بنابراین لیست شرکت‌کنندگان را به عنوان یک برچسب در نظر بگیرید، نه یک بررسی هویتی. لغو دسترسی به معنای تغییر کلید و توزیع مجدد فایل است.

آیا Bento برای اسناد مهم آماده است؟

این نرم‌افزار دارای مجوز MIT است و به‌صورت متن‌باز توسعه می‌یابد. در تاریخ 1 آگوست 2026، عمر آن کمتر از دو هفته بود و در هفته اول 6 نسخه منتشر کرد. در 11 اکتبر 2026، عمر آن کمتر از سه ماه بود و 23 نسخه منتشر شده داشت که سه نسخه آخر آن مشکلات امنیتی را برطرف کرده بودند. تا تاریخ 27 اکتبر 2026، این پروژه 26 نسخه داشت و نسخه‌های 1.2.9 و 1.2.10 مشکلات امنیتی بیشتری را رفع کردند. با آن به عنوان نرم‌افزاری برخورد کنید که در این ماه ارزیابی می‌کنید، نه نرم‌افزاری که در این فصل استانداردسازی می‌کنید. هر اسلاید را در یک نسخه پشتیبان با تاریخچه نگهداری کنید، فایل را به‌روز نگه دارید، مسیر export مورد نیاز خود را پیش از آنکه به آن وابسته شوید تست کنید، و هر چیزی که الزامات انطباق یا نگهداری دارد را در سیستمی قرار دهید که دارای حساب کاربری و تاریخچه تغییرات است.

آیا این مقاله مفید بود؟

#self-hosted#bento#office-suite#nextcloud-alternative#open-source