Mealie روی VPS: مدیریت دستورهای غذا، برنامه‌ریزی وعده‌ها و فهرست خرید شخصی

1 دقیقه خواندن
Tropic
Mealie روی VPS: مدیریت دستورهای غذا، برنامه‌ریزی وعده‌ها و فهرست خرید شخصی

Language: fa

Mealie: کتاب دستور غذا، برنامه‌ریز وعده‌ها و فهرست خرید شما روی VPS

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

در ادامه می‌بینیم Mealie چه کارهایی انجام می‌دهد، برای چه کسانی مفید است، به چه نوع سروری نیاز دارد و چگونه می‌توان مدیر دستورهای غذای شخصی را با Docker Compose روی VPS راه‌اندازی کرد.

Mealie چیست؟

Mealie یک برنامه رایگان و self-hosted برای ذخیره دستورهای غذا، برنامه‌ریزی وعده‌ها و مدیریت فهرست‌های خرید است. این سرویس روی سرور خودتان اجرا می‌شود؛ بنابراین شما تعیین می‌کنید پایگاه داده کجا ذخیره شود، چه کسانی دسترسی داشته باشند و پشتیبان‌گیری چگونه انجام شود.

رابط کاربری در مرورگر کامپیوتر یا تلفن باز می‌شود. دستورهای غذا را می‌توان به‌صورت دستی ایجاد کرد، از سایت‌ها وارد کرد، در دسته‌ها و کتاب‌های آشپزی مرتب کرد، به منوی هفتگی افزود و با اعضای خانواده به اشتراک گذاشت.

تفاوت اصلی Mealie با یک پوشه از یادداشت‌ها این است که همه‌چیز به هم متصل است. یک دستور غذا را می‌توان به برنامه وعده‌ها افزود، به فهرست خرید پیوند داد، با برچسب‌ها فیلتر کرد و از طریق API در automationها به کار برد.

قابلیت‌های اصلی Mealie

وارد کردن دستور غذا از یک لینک

کاربر یک URL را وارد می‌کند و Mealie تلاش می‌کند نام غذا، تعداد وعده‌ها، مواد لازم، مراحل و تصویر را استخراج کند. به‌جای یک نشانک دیگر، کارت دستور غذای مرتبی دارید که می‌توان آن را ویرایش و ذخیره کرد.

این قابلیت برای سایت‌هایی مفید است که دستور غذا را میان تبلیغات و متن‌های اضافی قرار می‌دهند. اگر صفحه از نشانه‌گذاری غیرمعمول استفاده کند، ممکن است لازم باشد بعضی داده‌ها را دستی اصلاح کنید.

Mealie می‌تواند مجموعه‌ها را از Paprika، Tandoor، Nextcloud Cookbooks و چند مدیر دستور غذای دیگر نیز منتقل کند. لازم نیست کار را با یک کتابخانه خالی شروع کنید.

وارد کردن از تصویر، متن یا ویدیو

یک اتصال اختیاری به هوش مصنوعی می‌تواند از متن، عکس صفحه‌ای از کتاب آشپزی یا لینک ویدیو یک دستور غذا بسازد. برای ویدیوها، سرویس متن پیاده‌سازی‌شده را دریافت و سپس مواد لازم و ترتیب مراحل را استخراج می‌کند.

این قابلیت به یک ارائه‌دهنده هوش مصنوعی سازگار نیاز دارد. می‌توانید یک API خارجی یا سرویس سازگار با OpenAI خودتان، مانند Ollama، متصل کنید. پیش از فعال‌سازی، هزینه درخواست‌ها و سیاست پردازش داده ارائه‌دهنده انتخابی را بررسی کنید.

برنامه‌ریز وعده‌ها و فهرست خرید

غذاها بر اساس روز و نوع وعده مرتب می‌شوند. می‌توانید یک دستور غذا، یادداشتی مانند «باقی‌مانده از دیروز» یا غذایی تصادفی بر اساس یک قانون اضافه کنید؛ برای مثال، جمعه‌ها فقط شام‌های سریع انتخاب شوند.

مواد لازم دستورها به فهرست خرید منتقل می‌شوند. اقلام را می‌توان با تلفن علامت زد و بر اساس بخش فروشگاه گروه‌بندی کرد. در نتیجه Mealie فقط یک آرشیو نیست، بلکه برای تمام هفته به ابزاری کاربردی تبدیل می‌شود.

دسترسی خانواده و automationها

Mealie از کاربران، گروه‌ها و householdها پشتیبانی می‌کند. خانواده می‌تواند از یک مجموعه دستور غذای مشترک استفاده کند و در صورت نیاز برنامه وعده‌ها و فهرست‌های خرید جداگانه داشته باشد.

REST API، اعلان‌ها و webhookها امکان اتصال سرویس به سیستم‌های دیگر را فراهم می‌کنند. برای نمونه، اتصال رسمی Home Assistant وعده‌های آینده را در تقویم نمایش می‌دهد و با فهرست خرید کار می‌کند.

Mealie برای چه کسانی مناسب است؟

Mealie زمانی مفید است که دستورهای غذا بین سایت‌ها، یادداشت‌ها و تصاویر پراکنده باشند؛ منو باید هر بار از ابتدا ساخته شود؛ چند نفر از یک سبد خرید مشترک استفاده کنند؛ کنترل پایگاه داده شخصی اهمیت داشته باشد؛ یا به automation نیاز داشته باشید.

اگر فقط چند غذای همیشگی دارید و علاقه‌ای به نگهداری Docker ندارید، این سرویس ممکن است بیش از نیازتان باشد. self-hosting وابستگی به حساب ابری دیگران را حذف می‌کند، اما سرور همچنان باید به‌روزرسانی، ایمن و پشتیبان‌گیری شود.

Mealie به چه نوع سروری نیاز دارد؟

در پیکربندی رسمی Docker Compose، حافظه کانتینر به ۱۰۰۰ مگابایت محدود شده است. یک نصب کوچک با 1 vCPU و 1 GB RAM اجرا می‌شود، اما VPS با 2 GB فضای بیشتری برای Linux، Docker، reverse proxy و به‌روزرسانی‌ها فراهم می‌کند. فضای دیسک عمدتاً برای تصاویر و پشتیبان‌ها مصرف می‌شود.

سناریوCPURAMدیسک
پایگاه داده شخصی با SQLite1 vCPU1 GB10–20 GB SSD
خانواده، HTTPS و کانتینرهای دیگر1–2 vCPU2 GB20 GB SSD یا بیشتر
PostgreSQL یا کاربران زیاد2 vCPU2–4 GB20 GB SSD یا بیشتر

این‌ها مقادیر عملی برای شروع هستند، نه حداقل رسمی و قطعی. اگر هوش مصنوعی از طریق یک API خارجی اجرا شود، محاسبات روی VPS انجام نمی‌شوند. منابع لازم برای یک مدل محلی باید جداگانه محاسبه شود.

SQLite یا PostgreSQL

SQLite ساده‌تر است و مستندات Mealie آن را برای ۱ تا ۲۰ کاربر با تعداد کمی عملیات هم‌زمان پیشنهاد می‌کند. برای نصب شخصی یا خانوادگی، معمولاً بهترین نقطه شروع است.

برای بار هم‌زمان زیاد، زمانی که جست‌وجوی fuzzy لازم است یا داده‌ها روی storage متصل به شبکه قرار می‌گیرند، PostgreSQL انتخاب مناسب‌تری است. استفاده از SQLite روی NAS توصیه نمی‌شود، چون ممکن است قفل‌های پایگاه داده و خرابی داده رخ دهد.

نصب Mealie روی VPS با Docker Compose

مثال زیر از SQLite استفاده می‌کند. Docker Engine و Docker Compose باید از قبل روی سرور نصب شده باشند. سیستم ۶۴بیتی Ubuntu یا Debian روی amd64 یا arm64 مناسب است.

۱. ایجاد دایرکتوری

sudo mkdir -p /opt/mealie
cd /opt/mealie
sudo nano docker-compose.yml

۲. افزودن پیکربندی

services:
  mealie:
    image: ghcr.io/mealie-recipes/mealie:v3.24.0
    container_name: mealie
    restart: unless-stopped
    ports:
      - "9925:9000"
    deploy:
      resources:
        limits:
          memory: 1000M
    volumes:
      - mealie-data:/app/data/
    environment:
      ALLOW_SIGNUP: "false"
      PUID: "1000"
      PGID: "1000"
      TZ: "Etc/UTC"
      BASE_URL: "https://recipes.example.com"

volumes:
  mealie-data:

مقادیر TZ و BASE_URL را با مقادیر خودتان جایگزین کنید. در تاریخ ۲۹ اوت ۲۰۲۶، نسخه فعلی v3.24.0 است. پیش از نصب، آخرین نسخه را بررسی کنید و به‌جای latest از یک tag مشخص استفاده کنید تا به‌روزرسانی ناخواسته رخ ندهد.

۳. اجرای Mealie

sudo docker compose up -d
sudo docker compose ps

http://SERVER_IP:9925 را باز کنید. ورود پیش‌فرض [email protected] و رمز عبور MyPassword است. بلافاصله اطلاعات ورود مدیر را تغییر دهید.

۴. فعال‌سازی HTTPS

برای دسترسی دائمی، یک domain متصل کنید، Nginx، Caddy یا Traefik را مقابل Mealie قرار دهید و TLS certificate صادر کنید. سپس port را به localhost متصل کنید:

ports:
  - "127.0.0.1:9925:9000"

اگر سرویس فقط در خانه لازم است، می‌توانید آن را در اینترنت منتشر نکنید و از طریق VPN به آن دسترسی داشته باشید.

پس از راه‌اندازی چه چیزهایی را تنظیم کنیم؟

رمز عبور را تغییر دهید، مطمئن شوید ثبت‌نام عمومی غیرفعال است و برای اعضای خانواده حساب بسازید. سپس چند برچسب ساده اضافه کنید؛ برای مثال «سریع»، «مناسب فریزر» و «شام». ساختار بیش از حد پیچیده در شروع فقط کار را دشوار می‌کند.

چند دستور غذای واقعی وارد کنید، تعداد وعده‌ها و واحدهای اندازه‌گیری را بررسی کنید، غذاها را به برنامه‌ریز بیفزایید و نخستین فهرست خرید را بسازید. با این کار، جریان اصلی کار Mealie در یک شب روشن می‌شود.

امنیت و پشتیبان‌گیری

یک نصب عمومی به رمز عبور قوی، HTTPS، ثبت‌نام بسته و به‌روزرسانی‌های منظم نیاز دارد. مستندات به‌طور جداگانه درباره روش‌های API که URLها را وارد می‌کنند هشدار می‌دهد: بدون محدودیت نرخ درخواست، ممکن است بار غیرضروری ایجاد شود. بهتر است روی reverse proxy محدودیت نرخ تنظیم کنید.

از آنجا که وارد کردن دستور غذا باعث می‌شود کانتینر به آدرس‌های خارجی متصل شود، Mealie باید در شبکه خانگی حساس از سرویس‌های داخلی جدا باشد.

پنل مدیریت می‌تواند یک backup کامل ایجاد، دانلود و restore کند. بااین‌حال Mealie دیگر backupهای زمان‌بندی‌شده خودکار انجام نمی‌دهد. در SQLite بهتر است کل volume /app/data را نیز روی فضای ذخیره‌سازی خارجی کپی کنید. backup ذخیره‌شده روی همان VPS در صورت از دست رفتن سرور از شما محافظت نمی‌کند.

محدودیت‌های Mealie

وارد کردن دستور غذا به نشانه‌گذاری سایت وابسته است؛ بنابراین برخی کارت‌ها باید دستی اصلاح شوند. مقیاس‌کردن مواد لازم نیز ممکن است در صورتی که دستور اصلی به‌جای واحدهای استاندارد از متن آزاد استفاده کند، خطا داشته باشد.

کلاینت اصلی رابط وب است. این رابط در مرورگر تلفن همراه به‌خوبی کار می‌کند، اما برنامه‌های native جداگانه توسعه داده می‌شوند. علاوه بر این، مسئولیت Docker، HTTPS، به‌روزرسانی‌ها و backup بر عهده مالک سرویس است.

Mealie به‌ویژه به‌عنوان یک جریان کاری مداوم مؤثر است: دستور غذای پیدا‌شده را ذخیره کنید، برای یک روز برنامه‌ریزی کنید و خرید مواد لازم را به خاطر بسپارید.

Mealie روی VPS از tropic.host

سرور خانگی زمانی مناسب است که همیشه روشن باشد و دسترسی از راه دور از قبل تنظیم شده باشد. VPS زمانی راحت‌تر است که دستورهای غذا و فهرست خرید باید از هرجا در دسترس باشند، بدون اینکه لازم باشد روی روتر خانگی port forwarding انجام دهید.

برای نصب خانوادگی می‌توانید از VPS لینوکسی tropic.host با 2 GB RAM استفاده کنید. این مقدار برای Mealie، Docker و reverse proxy با فضای کافی مناسب است. کار را با SQLite شروع کنید و با افزایش بار، منابع را بیشتر کنید یا به PostgreSQL مهاجرت کنید.

VPS جایگزین backup نیست: پایگاه داده و تصاویر دستورهای غذا باید به‌طور منظم جداگانه export شوند.

جمع‌بندی کوتاه

Mealie دستورهای غذا را در قالبی مرتب ذخیره می‌کند، به برنامه‌ریزی وعده‌ها کمک می‌کند و مواد لازم را در یک فهرست خرید مشترک جمع می‌کند. قدرتمندترین قابلیت آن وارد کردن از طریق لینک است، درحالی‌که دسترسی خانوادگی، برنامه‌ریز و اتصال‌ها کتابخانه را به ابزاری روزمره تبدیل می‌کنند.

برای استفاده شخصی یا خانوادگی، یک VPS کوچک، Docker و SQLite کافی هستند. در مقابل، باید به به‌روزرسانی‌ها، HTTPS و backupها توجه داشته باشید.

FAQ

آیا Mealie رایگان است؟

بله. این پروژه تحت مجوز AGPL-3.0 منتشر می‌شود. هزینه‌ها ممکن است برای VPS، domain و درخواست‌های خارجی هوش مصنوعی ایجاد شوند.

آیا می‌توانم دستورهای غذا را از سایت‌های روسی‌زبان وارد کنم؟

بله، اگر صفحه نشانه‌گذاری روشن و استانداردی برای دستور غذا داشته باشد. کیفیت به سایت وابسته است؛ خطاها را می‌توان دستی یا با وارد کردن به کمک هوش مصنوعی اصلاح کرد.

Mealie به چه مقدار RAM نیاز دارد؟

برای نصب کوچک مبتنی بر SQLite می‌توانید با 1 GB شروع کنید. برای VPS که Linux، reverse proxy و کانتینرهای دیگر را اجرا می‌کند، 2 GB عملی‌تر است.

آیا داشتن domain ضروری است؟

خیر. در شبکه محلی یا از طریق VPN، یک IP address کافی است. برای دسترسی امن از اینترنت، domain و HTTPS راحت‌تر هستند.

SQLite را انتخاب کنم یا PostgreSQL؟

SQLite ساده‌تر است و برای بیشتر نصب‌های ۱ تا ۲۰ کاربر مناسب است. PostgreSQL برای بار هم‌زمان زیاد، storage مبتنی بر NAS یا زمانی که جست‌وجوی fuzzy لازم است انتخاب بهتری است.