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

Получить VPS arrow_forward

Mealie на VPS: установка, настройка и обслуживание

calendar_month 15 июня 2026 schedule 17 мин. чтения visibility 36 просмотров
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.