SSD Nodes Learn 8GB RAM — سالی $66
راهنماها Matt Connorتوسط Matt Connor

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

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

Bento چیست

Bento یک مجموعه نرم‌افزاری اداری است که به‌صورت یک فایل HTML واحد عرضه می‌شود. یک فایل را دانلود می‌کنید، آن را در هر مرورگر مدرن باز می‌کنید و همان فایل هم ویرایشگر است و هم سند. نصب‌کننده و حساب کاربری وجود ندارد. مجوز آن MIT است و کد منبع آن در github.com/nyblnet/bento قرار دارد. نخستین نسخه منتشرشده آن در 21 July 2026 ارائه شد. این متن در 1 August 2026 نوشته شده است؛ بنابراین Bento کمتر از دو هفته قدمت دارد. این مهم‌ترین واقعیت این نوشته است و دلیل آن است که بخش پایانی به ارزیابی اختصاص دارد، نه مهاجرت.

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

یک مجموعه نرم‌افزاری اداری self-hosted معمولاً یک پشته است. Nextcloud در پشت یک web server و با استفاده از یک پایگاه داده، یک cache و یک background job runner اجرا می‌شود. ویرایشگر سرویس دومی در کنار آن است؛ مانند Collabora Online یا ONLYOFFICE Docs که معمولاً در container جداگانه‌ای اجرا می‌شود و مرورگر از طریق HTTP با آن ارتباط برقرار می‌کند. سند در یک filesystem و یک ردیف پایگاه داده قرار دارد و نشست ویرایش داخل سرویس ویرایشگر نگهداری می‌شود.

Bento این پشته را حذف می‌کند. فایل دانلودی Bento_Slides.bento.html است و حجم آن در release v1.0.11 (27 July 2026) حدود 571 KB است. این فایل واحد شامل موارد زیر است:

  • ویرایشگر، که viewer نیز هست
  • runtime ارائه که deck را به‌صورت تمام‌صفحه نمایش می‌دهد
  • فونت‌ها و تصاویر استفاده‌شده در deck، به‌صورت embedشده
  • خود سند، به‌صورت یک بلوک JSON قابل‌خواندن در نزدیکی ابتدای فایل

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

وقتی افراد عبارت «یک فایل واحد» را می‌شنوند، معمولاً همین جزئیات را اشتباه برداشت می‌کنند. منظور، یک server binary واحد نیست که مجموعه نرم‌افزاری اداری شما را به‌صورت یک process واحد روی VPS اجرا کند. اصلاً processای وجود ندارد. runtime همان مرورگر است؛ بنابراین VPS، در صورت استفاده، فقط یک فایل static و هیچ چیز دیگری ارائه می‌کند.

مجموعه نرم‌افزاری اداری Bento که امروز عرضه می‌شود

«مجموعه نرم‌افزاری اداری» هدف پروژه است، نه فهرست فعلی آن. در حال حاضر فقط یک برنامه وجود دارد: bento/slides، ویرایشگر ارائه. نقشه راه، bento/spaces را برای یادداشت‌ها، bento/dash را برای برگه‌ها و جدول‌ها، و bento/vault را نام می‌برد؛ قرار است هرکدام به‌صورت یک فایل مستقل .bento.html ارائه شوند. اگر امروز به واژه‌پرداز یا صفحه‌گسترده نیاز دارید، Bento چنین برنامه‌ای ندارد.

سرعت انتشار زیاد است. نسخه v1.0.6 در 21 July 2026 نخستین build عرضه‌شده بود و نسخه v1.0.11 در 27 July 2026 منتشر شد؛ یعنی 6 release در 7 روز. این موضوع درباره نگه‌دارندگان پروژه نشانه خوبی است، اما درباره نرم‌افزار هشدار محسوب می‌شود. هر نرم‌افزاری که با این سرعت تغییر می‌کند، هنوز در حال یافتن باگ‌های خود است و release notes نیز همین وضعیت را نشان می‌دهد: رفع مشکل crash کردن همکاری زنده هنگام استفاده از متن بزرگ، رفع مشکل تکرار stylesheet در فایل‌های ذخیره‌شده، و رفع مشکل baseline نمودارها برای مقادیر منفی.

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

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

ChartPublished minimum RAM for the editing backend, MB
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
  }
]

این اعداد حداقل‌های اعلام‌شده توسط vendorها تا August 2026 هستند و با اندازه‌گیری روی یک سیستم در حال اجرا به دست نیامده‌اند. Collabora برای خود سیستم 1 GB و برای هر کاربر حدود 50 MB اعلام می‌کند؛ بنابراین 1024 MB پیش از اتصال نخستین کاربر، حداقل مقدار است. ONLYOFFICE Docs در بسته Debian به 2048 MB و در Docker به 4096 MB نیاز دارد و علاوه بر آن 4 GB swap و 40 GB فضای دیسک لازم است. backend ویرایش Bento به 0 MB نیاز دارد، زیرا backend ویرایشی وجود ندارد. در هر دو حالت، خود Nextcloud را به‌همراه پایگاه داده و cache آن اجرا می‌کنید؛ بنابراین در یک VPS با 2 GB، این اختلاف تعیین می‌کند چه سرویس‌های دیگری را می‌توانید میزبانی کنید.

پشتیبان‌گیری نیز به همین دلیل ساده‌تر می‌شود. بازیابی Nextcloud یعنی بازیابی فایل‌ها و پایگاه داده‌ای که در یک نقطه زمانی یکسان با یکدیگر سازگار باشند. بازیابی یک deck در Bento یعنی بازیابی یک فایل. این فایل همچنان به یک پشتیبان واقعی همراه با history نیاز دارد، زیرا ویرایشگر آن را درجا بازنویسی می‌کند و نوشتن درجا ممکن است با خطا مواجه شود: یک snapshot زمان‌بندی‌شده restic از آن دایرکتوری این نیاز را پوشش می‌دهد.

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

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

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

هم‌کنش‌پذیری قالب، دومین کاستی است. Bento داده‌های خود را در قالب JSON ذخیره می‌کند؛ همین موضوع دلیل خوانا بودن فایل و امکان ویرایش آن با اسکریپت است. Collabora و ONLYOFFICE برای رفت‌وبرگشت با OOXML (خانواده .docx و .pptx) با دقت بالا ایجاد شده‌اند، زیرا سایر کاربران و سامانه‌ها این قالب را برای شما ارسال خواهند کرد. پیش از ساختن گردش‌کاری که بر سازگاری با PowerPoint تکیه دارد، یادداشت‌های انتشار را بررسی کنید تا مشخص شود نسخه‌ای که بارگیری کرده‌اید چه قالب‌هایی را وارد و صادر می‌کند.

بلوغ، سومین مورد است. پروژه محدودیت‌های خود را شفاف مستند می‌کند و این نکته‌ای مثبت است. لغو عملیات هنگام همکاری زنده بر پایه snapshot انجام می‌شود و می‌تواند ویرایش هم‌زمان همکار را در همان ویژگی بازگرداند. ویرایش ابتدا برای دسکتاپ طراحی شده است و تلفن‌ها در نمایش و ارائه بهتر از ویرایش عمل می‌کنند. منوی save-as هنوز در صفحه تلفن جا نمی‌شود. این‌ها محدودیت‌های شناخته‌شده در v1.0.11 هستند. پس از گذشت دو هفته، محدودیت‌های ناشناخته‌ای نیز وجود دارند.

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

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

دو اقدام حفاظتی عملی وجود دارد. ارائه‌ها را در کنترل نسخه یا پشتیبان دارای سابقه نگه دارید؛ زیرا فایلی که هنگام ذخیره خودش را بازنویسی می‌کند، ممکن است هنگام ذخیره خراب هم بشود و شما به نسخه روز گذشته نیاز خواهید داشت. همچنین با یک .bento.html از فردی که نمی‌شناسید مانند یک برنامه رفتار کنید، نه مانند یک سند؛ زیرا واقعاً همین است: یک صفحه وب که یک برنامه کامل را درون خود دارد. آن را همان‌طور باز کنید که هر صفحه وب غیرقابل‌اعتماد دیگری را باز می‌کنید.

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

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

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

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

FAQ

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

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

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

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

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

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

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

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

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

این نرم‌افزار با مجوز MIT منتشر شده و به‌صورت متن‌باز توسعه می‌یابد. همچنین در 1 August 2026 کمتر از دو هفته از عمر آن گذشته بود و در هفته نخست خود شش release داشت. با آن مانند نرم‌افزاری رفتار کنید که در این ماه ارزیابی می‌کنید، نه نرم‌افزاری که در این فصل برای استفاده استاندارد انتخاب می‌کنید. از هر ارائه یک نسخه پشتیبان همراه با تاریخچه نگه دارید. پیش از اتکا به مسیر export موردنیازتان، آن را آزمایش کنید. هر چیزی را که مشمول الزامات انطباق یا نگهداری است، در سامانه‌ای نگه دارید که حساب کاربری و تاریخچه نسخه‌ها دارد.

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