bolt Valebyte VPS від $4/міс — NVMe, запуск за 60 секунд.

Отримати VPS arrow_forward

Mealie на VPS: встановлення, налаштування та обслуговування

calendar_month June 15, 2026 schedule 17 хв. читання visibility 37 переглядів
person
Valebyte Team
Mealie на VPS: встановлення, налаштування та обслуговування

Встановлення Mealie на VPS – це ефективний спосіб створити власну платформу для зберігання та керування рецептами, забезпечуючи повний контроль над даними, високу продуктивність та масштабованість, що ідеально підходить для ентузіастів кулінарії, фуд-блогерів та невеликих команд, які прагнуть незалежності від сторонніх сервісів.

Що таке Mealie і чому варто встановити Mealie на VPS?

Mealie – це сучасний, відкритий та орієнтований на API застосунок для керування рецептами, який дозволяє вам зберігати, систематизувати, ділитися та навіть планувати страви. Уявіть собі цифрову кулінарну книгу, яка завжди з вами, доступна з будь-якого пристрою та повністю під вашим контролем. Це mealie self-hosted рішення, яке надає функціонал для імпорту рецептів з популярних сайтів, редагування, створення списків покупок та багато іншого. Воно написано на Python з використанням FastAPI для бекенду та Vue.js для фронтенду, що забезпечує швидкий та чуйний користувацький інтерфейс.

Вибір Mealie на VPS замість хмарних або сторонніх рішень надає низку значних переваг:

  • Повний контроль над даними: Всі ваші рецепти, нотатки та особиста інформація зберігаються на вашому власному сервері, а не на серверах третіх осіб. Це критично важливо для конфіденційності та безпеки.
  • Налаштування та масштабованість: Ви можете налаштувати Mealie під свої унікальні потреби, змінити конфігурацію сервера в міру зростання ваших вимог до зберігання рецептів або збільшення кількості користувачів.
  • Продуктивність: З правильно налаштованим VPS ви отримуєте гарантовані ресурси (процесор, пам'ять, диск), що забезпечує стабільну та швидку роботу застосунку без впливу "сусідів" по спільному хостингу.
  • Інтеграція: Mealie легко інтегрується з іншими self-hosted сервісами завдяки своєму API. Ви можете, наприклад, налаштувати автоматичне резервне копіювання на ваш NAS або інтегрувати зі сторонніми інструментами для планування харчування.
  • Навчання та розвиток: Самостійне встановлення Mealie та його обслуговування на VPS – чудова можливість поглибити свої знання в галузі адміністрування серверів, Docker та веб-технологій.

Valebyte.com пропонує надійні VPS-сервери, які ідеально підходять для таких завдань, як хостинг Mealie, надаючи вам потужну та гнучку інфраструктуру для ваших проєктів.

Основні можливості Mealie

Mealie – це не просто сховище рецептів. Це повноцінна платформа з багатим набором функцій:

  • Імпорт рецептів: Підтримка імпорту рецептів з понад 100 популярних кулінарних сайтів та блогів, а також можливість ручного введення та редагування.
  • Керування інгредієнтами та кроками: Детальний опис інгредієнтів, їх кількості, одиниць виміру та покрокові інструкції з приготування.
  • Категорії та теги: Гнучка система категоризації та тегування для зручного пошуку та організації рецептів.
  • Планування харчування: Вбудований календар для планування прийомів їжі на тиждень або місяць.
  • Списки покупок: Автоматичне створення списків покупок на основі вибраних рецептів, з можливістю об'єднання інгредієнтів та ручного додавання позицій.
  • Користувачі та дозволи: Підтримка кількох користувачів з різними рівнями доступу, що робить Mealie чудовим рішенням для сім'ї або невеликої команди.
  • Теги та пошук: Потужний повнотекстовий пошук за всіма полями рецептів, а також фільтрація за тегами, категоріями та іншими атрибутами.
  • Dark Mode: Зручний темний режим для роботи в умовах низької освітленості.
  • PWA-сумісність: Можливість встановлення Mealie як прогресивного веб-застосунку на мобільні пристрої для швидкого доступу.

Системні вимоги для Mealie на сервері

Вибір відповідного VPS-сервера для Mealie на сервері – ключовий момент для забезпечення його стабільної та швидкої роботи. Незважаючи на те, що Mealie відносно легковажний, особливо для невеликої кількості користувачів, важливо врахувати мінімальні та рекомендовані вимоги. Ці вимоги базуються на типовій конфігурації з використанням Docker та бази даних PostgreSQL.

Мінімальні вимоги

Для одного користувача або дуже невеликої родини (1-3 особи) з кількома сотнями рецептів:

  • Процесор (CPU): 1 vCPU з тактовою частотою від 2.0 GHz. Mealie не є CPU-інтенсивним застосунком при стандартному використанні, але процесор потрібен для обробки запитів та фонових завдань.
  • Оперативна пам'ять (RAM): 1 GB. Цього достатньо для запуску Docker-контейнерів Mealie та PostgreSQL. PostgreSQL може споживати до 200-300 MB, а сам Mealie – 200-400 MB в режимі простою.
  • Дисковий простір: 10-15 GB NVMe SSD. Mealie зберігає рецепти, зображення та базу даних. NVMe SSD значно прискорить операції введення-виведення, що важливо для чуйності застосунку. 10-15 GB вистачить для кількох тисяч рецептів та їх зображень, а також для операційної системи та Docker-образів.
  • Операційна система: Ubuntu 22.04 LTS, Debian 11/12 або CentOS 8/9. Рекомендуються LTS-версії для стабільності та довгострокової підтримки.
  • Мережеве з'єднання: Мінімум 100 Мбіт/с. Mealie не вимагає високої пропускної здатності, але стабільне з'єднання важливе для доступу.

Рекомендовані вимоги

Для активного використання (3-10 користувачів) з тисячами рецептів, частим імпортом та плануванням:

  • Процесор (CPU): 2 vCPU з тактовою частотою від 2.5 GHz. Додаткове ядро забезпечить кращу паралельну обробку запитів, особливо при одночасному доступі кількох користувачів або виконанні ресурсомістких операцій, таких як імпорт великої кількості рецептів.
  • Оперативна пам'ять (RAM): 2-4 GB. Це забезпечить достатній буфер для PostgreSQL та Mealie, запобігаючи вивантаженню даних у своп та покращуючи загальну продуктивність. Якщо ви плануєте запускати інші сервіси на тому ж VPS, 4 GB буде більш безпечним вибором.
  • Дисковий простір: 25-50 GB NVMe SSD. Більший обсяг диска надасть запас для зростання кількості рецептів, зображень, а також для зберігання бекапів. NVMe SSD залишається кращим вибором.
  • Операційна система: Ubuntu 22.04 LTS або Debian 12.
  • Мережеве з'єднання: 1 Гбіт/с.

Важливо пам'ятати, що ці вимоги є орієнтовними. Реальне споживання ресурсів може варіюватися залежно від кількості користувачів, частоти використання, кількості рецептів та зображень, а також від інших застосунків, запущених на тому ж VPS. Завжди краще починати з трохи більшої конфігурації, ніж мінімальна, щоб мати запас для зростання та уникнути проблем з продуктивністю.

Шукаєте надійний сервер для ваших проєктів?

VPS від $10/міс та виділені сервери від $9/міс з NVMe, DDoS-захистом та підтримкою 24/7.

Дивитися пропозиції →

Підготовка VPS до встановлення Mealie Docker

Перш ніж приступити до встановлення Mealie, необхідно підготувати ваш VPS. Ми будемо використовувати Docker та Docker Compose для максимально простого та переносного встановлення. Переконайтеся, що у вас є доступ до сервера по SSH з правами користувача sudo.

Оновлення системи та встановлення необхідних пакетів

Насамперед оновіть усі системні пакети, щоб забезпечити безпеку та стабільність:

sudo apt update
sudo apt upgrade -y
sudo apt autoremove -y

Потім встановіть деякі утиліти, які можуть знадобитися:

sudo apt install -y curl wget git nano htop

Встановлення Docker Engine

Mealie працюватиме в контейнерах Docker. Встановлення Docker Engine – це наступний важливий крок.

  1. Видаліть старі версії Docker (якщо є):
    for pkg in docker.io docker-doc docker-compose docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin; do sudo apt remove $pkg; done
  2. Встановіть необхідні залежності:
    sudo apt install -y ca-certificates curl gnupg
  3. Додайте офіційний GPG ключ Docker:
    sudo install -m 0755 -d /etc/apt/keyrings
    curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
    sudo chmod a+r /etc/apt/keyrings/docker.gpg
  4. Додайте репозиторій Docker до APT-джерел:
    echo \
      "deb [arch="$(dpkg --print-architecture)" signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
      "$(. /etc/os-release && echo "$VERSION_CODENAME")" stable" | \
      sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
  5. Оновіть APT-індекс та встановіть Docker Engine:
    sudo apt update
    sudo apt install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
  6. Додайте вашого користувача до групи docker: Це дозволить запускати команди Docker без sudo.
    sudo usermod -aG docker $USER

    Для застосування змін необхідно вийти з SSH-сесії та зайти заново.

  7. Перевірте встановлення Docker:
    docker run hello-world

    Ви повинні побачити повідомлення "Hello from Docker!".

Встановлення Docker Compose

Docker Compose необхідний для керування багатоконтейнерними застосунками, такими як Mealie, яке зазвичай складається з контейнерів застосунку та бази даних. Docker Compose Plugin вже встановлено разом з Docker Engine, але якщо ви використовуєте стару версію Docker або іншу ОС, вам може знадобитися встановити його вручну. Переконайтеся, що команда docker compose працює (без дефіса).

docker compose version

Якщо ви бачите версію, значить, все гаразд. Якщо ні, можливо, вам доведеться встановити його як окремий бінарник:

sudo curl -L "https://github.com/docker/compose/releases/latest/download/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose

Потім перевірте версію: docker-compose version (з дефісом). У нових версіях Docker краще використовувати docker compose (без дефіса).

rocket_launch Швидкий вибір

Шукаєте сервер, який просто працює?

Valebyte VPS — NVMe, підтримка 24/7, розгортання за 60 секунд.

Переглянути тарифи VPS arrow_forward

Покрокове встановлення Mealie на VPS з Docker Compose

Тепер, коли ваш VPS готовий, ми можемо приступити до розгортання Mealie Docker за допомогою Docker Compose. Цей метод дозволяє легко керувати застосунком та його залежностями.

Створення директорії для Mealie

Створіть директорію, де зберігатимуться всі файли конфігурації Mealie та дані:

mkdir -p ~/mealie
cd ~/mealie

Налаштування файлу .env

Mealie використовує змінні оточення для своєї конфігурації. Створіть файл .env у директорії ~/mealie:

nano .env

І додайте наступний вміст:

# Mealie Configuration
TZ=Europe/Moscow # Ваша часова зона
PUID=1000 # ID вашого користувача (зазвичай 1000)
PGID=1000 # ID вашої групи (зазвичай 1000)
APP_HOST=0.0.0.0 # Слухати на всіх інтерфейсах
APP_PORT=9000 # Порт, на якому буде доступний Mealie всередині контейнера
BASE_URL=http://localhost:9000 # Буде змінено при налаштуванні проксі

# Database Configuration (PostgreSQL)
DB_ENGINE=postgresql
DB_HOST=db
DB_PORT=5432
DB_USER=mealie
DB_PASSWORD=your_strong_db_password # Замініть на надійний пароль
DB_NAME=mealie

# Mealie Specific
DEBUG=false # Встановіть в true для налагодження
ALLOW_SIGNUP=true # Дозволити самостійну реєстрацію користувачів (можна вимкнути після створення адміна)
SECRET_KEY=generate_a_very_long_random_string # Генеруйте довгий випадковий рядок (мінімум 32 символи)
MEDIA_LOCATION=/app/data/media # Шлях для медіафайлів всередині контейнера
DATA_LOCATION=/app/data # Шлях для даних всередині контейнера

# SMTP Configuration (Optional, для відправки листів)
SMTP_HOST=
SMTP_PORT=
SMTP_USER=
SMTP_PASSWORD=
SMTP_FROM_EMAIL=
SMTP_TLS=true
SMTP_SSL=false

Важливі примітки:

  • Замініть your_strong_db_password на складний, унікальний пароль.
  • Для SECRET_KEY згенеруйте дуже довгий випадковий рядок (наприклад, за допомогою openssl rand -hex 32).
  • PUID та PGID можна дізнатися командою id -u та id -g відповідно. Зазвичай це 1000 для першого користувача в Linux.
  • TZ змініть на вашу часову зону (наприклад, Europe/Berlin, America/New_York).
  • ALLOW_SIGNUP рекомендується вимкнути після створення першого адміністратора, щоб запобігти несанкціонованій реєстрації.
  • Якщо ви плануєте використовувати Mealie для відновлення паролів або сповіщень, налаштуйте параметри SMTP.

Створення файлу docker-compose.yml

Створіть файл docker-compose.yml у тій же директорії ~/mealie:

nano docker-compose.yml

І додайте наступний вміст:

version: '3.8'

services:
  mealie:
    image: hkotel/mealie:latest # Використовуємо офіційний образ Mealie
    container_name: mealie
    environment:
      - TZ=${TZ}
      - PUID=${PUID}
      - PGID=${PGID}
      - APP_HOST=${APP_HOST}
      - APP_PORT=${APP_PORT}
      - BASE_URL=${BASE_URL}
      - DB_ENGINE=${DB_ENGINE}
      - DB_HOST=${DB_HOST}
      - DB_PORT=${DB_PORT}
      - DB_USER=${DB_USER}
      - DB_PASSWORD=${DB_PASSWORD}
      - DB_NAME=${DB_NAME}
      - DEBUG=${DEBUG}
      - ALLOW_SIGNUP=${ALLOW_SIGNUP}
      - SECRET_KEY=${SECRET_KEY}
      - MEDIA_LOCATION=${MEDIA_LOCATION}
      - DATA_LOCATION=${DATA_LOCATION}
      # SMTP (розкоментуйте та заповніть, якщо використовуєте)
      # - SMTP_HOST=${SMTP_HOST}
      # - SMTP_PORT=${SMTP_PORT}
      # - SMTP_USER=${SMTP_USER}
      # - SMTP_PASSWORD=${SMTP_PASSWORD}
      # - SMTP_FROM_EMAIL=${SMTP_FROM_EMAIL}
      # - SMTP_TLS=${SMTP_TLS}
      # - SMTP_SSL=${SMTP_SSL}
    volumes:
      - ./data:/app/data # Прив'язуємо локальну директорію для зберігання даних
    ports:
      - "9000:9000" # Прокидаємо порт Mealie на хост-систему
    depends_on:
      - db
    restart: unless-stopped

  db:
    image: postgres:15-alpine # Використовуємо легковажний образ PostgreSQL
    container_name: mealie_db
    environment:
      - POSTGRES_DB=${DB_NAME}
      - POSTGRES_USER=${DB_USER}
      - POSTGRES_PASSWORD=${DB_PASSWORD}
      - TZ=${TZ}
    volumes:
      - ./db-data:/var/lib/postgresql/data # Прив'язуємо локальну директорію для зберігання даних БД
    restart: unless-stopped

volumes:
  data:
  db-data:

Пояснення до docker-compose.yml:

  • Сервіс mealie:
    • image: hkotel/mealie:latest: Використовує останню стабільну версію Mealie.
    • environment: Передає змінні з файлу .env до контейнера Mealie.
    • volumes: - ./data:/app/data: Монтує локальну директорію data (яка буде створена поруч з docker-compose.yml) у контейнер за шляхом /app/data. Тут зберігатимуться всі користувацькі дані Mealie (рецепти, зображення, конфігурація).
    • ports: - "9000:9000": Прокидає порт 9000 контейнера Mealie на порт 9000 хост-системи. Це дозволяє отримати доступ до Mealie за IP-адресою вашого VPS та портом 9000.
    • depends_on: - db: Вказує, що сервіс mealie залежить від сервісу db. Docker Compose спочатку запустить базу даних.
    • restart: unless-stopped: Гарантує, що контейнер Mealie автоматично перезапускатиметься, якщо він зупиниться або сервер перезавантажиться.
  • Сервіс db:
    • image: postgres:15-alpine: Використовує легковажний образ PostgreSQL 15.
    • environment: Передає параметри для ініціалізації бази даних PostgreSQL з файлу .env.
    • volumes: - ./db-data:/var/lib/postgresql/data: Монтує локальну директорію db-data в контейнер для постійного зберігання даних PostgreSQL.
    • restart: unless-stopped: Аналогічно для бази даних.

Запуск Mealie

Збережіть обидва файли (.env та docker-compose.yml). Тепер ви готові запустити Mealie.

У директорії ~/mealie виконайте команду:

docker compose up -d

Ця команда завантажить необхідні Docker-образи (якщо їх немає), створить та запустить контейнери Mealie та PostgreSQL у фоновому режимі (-d означає detached mode).

Ви можете перевірити статус запущених контейнерів:

docker compose ps

Обидва контейнери (mealie та mealie_db) повинні мати статус Up.

Mealie тепер має бути доступний за адресою http://ВАШ_IP_VPS:9000. При першому доступі вам буде запропоновано створити обліковий запис адміністратора. Після створення адміністратора рекомендується відредагувати файл .env та встановити ALLOW_SIGNUP=false, щоб запобігти несанкціонованій реєстрації інших користувачів.

Для подальшого контролю над даними та забезпечення їх збереження, розгляньте можливість використання Filebrowser на VPS, який допоможе вам керувати файлами, пов'язаними з Mealie, та організовувати їх резервне копіювання.

Налаштування зворотного проксі та HTTPS для Mealie

Доступ до Mealie через http://ВАШ_IP_VPS:9000 не є безпечним та зручним. Для забезпечення безпечного доступу за доменним ім'ям з HTTPS (SSL-сертифікатом) та можливості запускати Mealie на стандартному порту 443, необхідно налаштувати зворотний проксі-сервер. Ми розглянемо два популярні варіанти: Nginx та Caddy.

Перш ніж почати, переконайтеся, що у вас є доменне ім'я (наприклад, recipes.mydomain.com), яке вказує на IP-адресу вашого VPS.

Варіант 1: Nginx з Let's Encrypt

Nginx – це потужний та широко використовуваний веб-сервер та зворотний проксі. Let's Encrypt надає безкоштовні SSL-сертифікати.

1. Встановлення Nginx

sudo apt install -y nginx

2. Налаштування Nginx

Створіть новий файл конфігурації для вашого домену:

sudo nano /etc/nginx/sites-available/recipes.mydomain.com

Додайте наступний вміст, замінивши recipes.mydomain.com на ваш домен:

server {
    listen 80;
    server_name recipes.mydomain.com;

    location / {
        return 301 https://$host$request_uri;
    }
}

server {
    listen 443 ssl http2;
    server_name recipes.mydomain.com;

    ssl_certificate /etc/letsencrypt/live/recipes.mydomain.com/fullchain.pem; # Ці шляхи будуть створені Certbot
    ssl_certificate_key /etc/letsencrypt/live/recipes.mydomain.com/privkey.pem; # Ці шляхи будуть створені Certbot

    include /etc/letsencrypt/options-ssl-nginx.conf;
    ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem;

    location / {
        proxy_pass http://localhost:9000; # Порт, на якому Mealie доступний на хості
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
        proxy_redirect off;
    }
}

Важливі зміни в .env:

Після налаштування зворотного проксі, поверніться до файлу .env у директорії ~/mealie та змініть BASE_URL на ваш домен з HTTPS:

BASE_URL=https://recipes.mydomain.com

Перезапустіть Mealie, щоб зміни набули чинності:

cd ~/mealie
docker compose restart mealie

3. Активація конфігурації Nginx

sudo ln -s /etc/nginx/sites-available/recipes.mydomain.com /etc/nginx/sites-enabled/
sudo nginx -t # Перевірка синтаксису
sudo systemctl restart nginx

4. Встановлення Certbot та отримання SSL-сертифіката

sudo apt install -y certbot python3-certbot-nginx
sudo certbot --nginx -d recipes.mydomain.com

Дотримуйтесь інструкцій Certbot. Він автоматично налаштує Nginx для використання HTTPS. Certbot також створить крон-завдання для автоматичного оновлення сертифікатів.

Варіант 2: Caddy (простіший)

Caddy – це сучасний веб-сервер, який автоматично керує SSL-сертифікатами Let's Encrypt, що значно спрощує налаштування HTTPS.

1. Встановлення Caddy

sudo apt install -y debian-keyring debian-archive-keyring apt-transport-https
curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/gpg.key' | sudo gpg --dearmor -o /usr/share/keyrings/caddy-stable-archive-keyring.gpg
curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/debian.deb.txt' | sudo tee /etc/apt/sources.list.d/caddy-stable.list
sudo apt update
sudo apt install -y caddy

2. Налаштування Caddyfile

Створіть або відредагуйте файл /etc/caddy/Caddyfile:

sudo nano /etc/caddy/Caddyfile

Видаліть весь вміст за замовчуванням та додайте наступне, замінивши recipes.mydomain.com на ваш домен:

recipes.mydomain.com {
    reverse_proxy localhost:9000 # Порт, на якому Mealie доступний на хості
}

Важливі зміни в .env:

Аналогічно Nginx, змініть BASE_URL у файлі .env:

BASE_URL=https://recipes.mydomain.com

Перезапустіть Mealie:

cd ~/mealie
docker compose restart mealie

3. Активація конфігурації Caddy

sudo systemctl enable caddy
sudo systemctl restart caddy

Caddy автоматично отримає та налаштує SSL-сертифікат для вашого домену. Тепер Mealie буде доступний за адресою https://recipes.mydomain.com.

Ви успішно налаштували зворотний проксі та HTTPS для Mealie. Тепер ваш сервіс доступний через захищене з'єднання за доменним ім'ям.

Резервне копіювання та оновлення Mealie

Регулярне резервне копіювання та своєчасні оновлення – це основа для надійної роботи будь-якого self-hosted застосунку, включаючи Mealie на сервері. Не нехтуйте цими кроками, щоб уникнути втрати даних та забезпечити безпеку вашої інсталяції.

Резервне копіювання Mealie

Ваші дані Mealie складаються з двох основних частин: база даних PostgreSQL та файли (зображення, конфігурація), що зберігаються в директорії data. Для повного бекапу необхідно зберегти обидві частини.

1. Зупинка Mealie (рекомендується для консистентності)

cd ~/mealie
docker compose stop mealie

Зупинка лише контейнера Mealie дозволить базі даних продовжувати працювати, але припинить операції запису в базу з боку Mealie, забезпечуючи консистентність даних при створенні дампу.

2. Створення дампу бази даних PostgreSQL

Використовуйте команду pg_dump з контейнера PostgreSQL:

docker exec mealie_db pg_dump -U mealie -Fc mealie > ~/mealie_backup/mealie_db_$(date +%Y%m%d%H%M%S).bak

Де:

  • mealie_db – ім'я контейнера бази даних.
  • -U mealie – користувач бази даних.
  • -Fc mealie – формат дампу (custom, стиснутий) та ім'я бази даних.
  • > ~/mealie_backup/mealie_db_$(date +%Y%m%d%H%M%S).bak – перенаправлення виводу у файл з міткою часу в директорії ~/mealie_backup. Переконайтеся, що ця директорія існує: mkdir -p ~/mealie_backup.

3. Копіювання файлів Mealie

Скопіюйте директорію з даними Mealie. Оскільки ми монтували volume ./data, всі файли знаходяться в ~/mealie/data на хості.

cp -R ~/mealie/data ~/mealie_backup/mealie_data_$(date +%Y%m%d%H%M%S)

4. Запуск Mealie

cd ~/mealie
docker compose start mealie

5. Автоматизація резервного копіювання за допомогою Cron

Ви можете створити скрипт та налаштувати Cron для автоматичного виконання бекапів. Створіть файл backup_mealie.sh:

nano ~/backup_mealie.sh

Вміст скрипта:

#!/bin/bash

BACKUP_DIR="/home/$USER/mealie_backup"
MEALIE_DIR="/home/$USER/mealie"
TIMESTAMP=$(date +%Y%m%d%H%M%S)

mkdir -p "$BACKUP_DIR"

echo "Stopping Mealie container..."
docker compose -f "$MEALIE_DIR/docker-compose.yml" stop mealie

echo "Dumping PostgreSQL database..."
docker exec mealie_db pg_dump -U mealie -Fc mealie > "$BACKUP_DIR/mealie_db_$TIMESTAMP.bak"

echo "Copying Mealie data files..."
cp -R "$MEALIE_DIR/data" "$BACKUP_DIR/mealie_data_$TIMESTAMP"

echo "Starting Mealie container..."
docker compose -f "$MEALIE_DIR/docker-compose.yml" start mealie

echo "Cleaning old backups (keeping last 7 days)..."
find "$BACKUP_DIR" -type f -name "mealie_db_*.bak" -mtime +7 -delete
find "$BACKUP_DIR" -type d -name "mealie_data_*" -mtime +7 -exec rm -rf {} +

echo "Backup completed: $TIMESTAMP"

Зробіть скрипт виконуваним:

chmod +x ~/backup_mealie.sh

Додайте завдання до Cron (наприклад, щодня о 3:00 ночі):

crontab -e

Додайте рядок:

0 3 * * * /home/$USER/backup_mealie.sh >> /var/log/mealie_backup.log 2>&1

Для більш просунутих рішень з резервного копіювання, що включають шифрування та відправку на віддалене сховище, рекомендуємо ознайомитися з нашою статтею про Restic на VPS: встановлення, налаштування та обслуговування.

Відновлення Mealie з бекапу

Для відновлення вам потрібно буде зупинити Mealie, відновити базу даних та файли, потім запустити Mealie.

  1. Зупиніть Mealie:
    cd ~/mealie
    docker compose down
  2. Видаліть поточні дані (будьте обережні!):
    rm -rf ~/mealie/data
    rm -rf ~/mealie/db-data
  3. Відновіть файли даних:
    cp -R ~/mealie_backup/mealie_data_YYYYMMDDHHMMSS ~/mealie/data

    Замініть YYYYMMDDHHMMSS на мітку часу потрібного бекапу.

  4. Створіть порожні директорії для бази даних (якщо вони були видалені):
    mkdir -p ~/mealie/db-data
  5. Запустіть контейнер бази даних (без Mealie), щоб він ініціалізувався:
    docker compose -f ~/mealie/docker-compose.yml up -d db

    Дочекайтеся повного запуску контейнера mealie_db.

  6. Відновіть базу даних з дампу:
    docker exec -i mealie_db pg_restore -U mealie -d mealie < ~/mealie_backup/mealie_db_YYYYMMDDHHMMSS.bak

    Замініть YYYYMMDDHHMMSS на мітку часу потрібного бекапу.

  7. Запустіть Mealie:
    docker compose -f ~/mealie/docker-compose.yml up -d

Оновлення Mealie

Оновлення Mealie Docker зводиться до оновлення Docker-образів та перезапуску контейнерів.

  1. Перейдіть до директорії Mealie:
    cd ~/mealie
  2. Зупиніть контейнери:
    docker compose down
  3. Завантажте нові образи:
    docker compose pull

    Це завантажить останні версії образів Mealie та PostgreSQL.

  4. Запустіть контейнери знову:
    docker compose up -d

    Mealie автоматично виконає міграції бази даних, якщо це необхідно.

  5. Очистіть старі Docker-образи (опціонально):
    docker image prune -f

Рекомендується перевіряти офіційні релізи Mealie на GitHub, оскільки іноді можуть вимагатися додаткові кроки при оновленні (наприклад, зміни у файлі .env або docker-compose.yml).

rocket_launch Швидкий вибір

Шукаєте сервер, який просто працює?

Valebyte VPS — NVMe, підтримка 24/7, розгортання за 60 секунд.

Переглянути тарифи VPS arrow_forward

Який VPS обрати для Mealie: рекомендації щодо конфігурації

Вибір оптимального VPS для Mealie залежить від ваших потреб: кількості користувачів, обсягу рецептів та частоти використання. Розглянемо різні сценарії та відповідні їм конфігурації VPS, доступні на Valebyte.com.

Таблиця порівняння конфігурацій VPS для Mealie

Сценарій використання CPU (vCores) RAM (GB) Диск (NVMe SSD, GB) Орієнтовна вартість/міс. (Valebyte.com) Примітки
Особисте використання / Невелика сім'я (1-3 користувачі, до 1000 рецептів) 1 1-2 25 від $5 - $8 Ідеально для початку. Забезпечує швидку роботу.
Активна сім'я / Невелика спільнота (3-10 користувачів, 1000-5000+ рецептів) 2 2-4 50 від $10 - $15 Гарний баланс продуктивності та вартості. Рекомендується для більшості користувачів.
Кулінарний блог / Велика спільнота (10+ користувачів, 5000+ рецептів) 4 4-8 100+ від $20 - $35+ Для високих навантажень, великої кількості зображень та одночасних запитів. Дозволяє запускати інші сервіси.
Розробка / Тестування Mealie 1 1 25 від $5 Мінімальна конфігурація, достатня для експериментів.

Важливі аспекти при виборі VPS

  1. Тип диска: NVMe SSD. Це критично важливо для чуйності Mealie. Операції з базою даних та завантаження зображень будуть значно швидшими на NVMe порівняно зі звичайними SSD або HDD. Valebyte.com пропонує VPS з NVMe-дисками за замовчуванням.
  2. Розташування сервера: Вибирайте дата-центр, який географічно близький до основних користувачів. Це мінімізує затримки (latency) та покращує швидкість доступу до Mealie.
  3. Гарантовані ресурси: Переконайтеся, що ваш VPS надає гарантовані ресурси (dedicated resources), а не "burstable" або "shared" CPU/RAM, які можуть бути перевантажені іншими користувачами на тому ж фізичному сервері.
  4. Масштабованість: Вибирайте провайдера, який дозволяє легко збільшувати (або зменшувати) ресурси вашого VPS у міру зміни потреб. Valebyte.com пропонує гнучкі тарифи та можливість апгрейду в будь-який момент.
  5. Операційна система: Ubuntu Server LTS або Debian Stable – найбільш рекомендовані ОС для хостингу Docker-застосунків. Вони добре документовані та мають широку спільноту підтримки.
  6. Мережева пропускна здатність: Хоча Mealie не вимагає величезної пропускної здатності, стабільний канал 1 Гбіт/с буде перевагою, особливо якщо ви плануєте завантажувати багато зображень або мати кілька користувачів.
  7. Технічна підтримка: Якісна та оперативна технічна підтримка від хостинг-провайдера може бути безцінною, особливо якщо ви стикаєтеся з проблемами на рівні інфраструктури.

Для моніторингу використання ресурсів вашого VPS та оптимізації його роботи, рекомендуємо ознайомитися з нашою статтею про Netdata на VPS: встановлення, налаштування та обслуговування. Це допоможе вам зрозуміти, який VPS-конфіг під реальне навантаження Mealie підходить саме вам.

Почавши з рекомендованої конфігурації (2 vCPU, 2-4 GB RAM, 50 GB NVMe SSD), ви отримаєте відмінний баланс продуктивності та вартості для більшості сценаріїв використання Mealie. Якщо ви плануєте використовувати VPS для інших self-hosted застосунків, таких як Home Assistant на VPS або VPS сервер для 1С, завжди вибирайте тариф із запасом за ресурсами.

Висновки

Встановлення Mealie на VPS через Docker Compose – це надійне та гнучке рішення для створення власної платформи керування рецептами, що забезпечує повний контроль над вашими даними та високу продуктивність. Вибір правильної конфігурації VPS, регулярне резервне копіювання та своєчасні оновлення гарантують стабільну та безпечну роботу вашого сервісу. Valebyte.com надає оптимальні VPS-тарифи з NVMe-дисками, ідеально підходящі для хостингу Mealie та інших ваших self-hosted проєктів.

Готові обрати сервер?

VPS та виділені сервери в 72+ країнах з миттєвою активацією та повним root-доступом.

Почати зараз →
support_agent
Valebyte Support
Usually replies within minutes
Hi there!
Send us a message and we'll reply as soon as possible.