bolt Valebyte VPS desde $4/mes — NVMe, despliegue en 60s.

Obtener VPS arrow_forward

Mealie en un VPS: instalación, configuración y mantenimiento

calendar_month 15 de junio de 2026 schedule 21 min de lectura visibility 15 vistas
person
Valebyte Team
Mealie en un VPS: instalación, configuración y mantenimiento

Instalar Mealie en un VPS es una forma eficaz de crear tu propia plataforma para almacenar y gestionar recetas, proporcionando control total sobre los datos, alto rendimiento y escalabilidad, lo que es ideal para entusiastas de la cocina, blogueros gastronómicos y pequeños equipos que buscan independencia de servicios de terceros.

¿Qué es Mealie y por qué instalarlo en un VPS?

Mealie es una aplicación de gestión de recetas moderna, de código abierto y orientada a API que te permite almacenar, organizar, compartir e incluso planificar comidas. Imagina un libro de cocina digital que siempre está contigo, accesible desde cualquier dispositivo y completamente bajo tu control. Es una solución Mealie self-hosted que proporciona funcionalidad para importar recetas de sitios web populares, editar, crear listas de la compra y mucho más. Está escrito en Python utilizando FastAPI para el backend y Vue.js para el frontend, lo que garantiza una interfaz de usuario rápida y receptiva.

Elegir Mealie en un VPS en lugar de soluciones en la nube o de terceros ofrece una serie de ventajas significativas:

  • Control total sobre los datos: Todas tus recetas, notas e información personal se almacenan en tu propio servidor, no en servidores de terceros. Esto es crucial para la privacidad y la seguridad.
  • Personalización y escalabilidad: Puedes configurar Mealie según tus necesidades únicas, cambiar la configuración del servidor a medida que aumentan tus requisitos de almacenamiento de recetas o el número de usuarios.
  • Rendimiento: Con un VPS correctamente configurado, obtienes recursos garantizados (CPU, memoria, disco), lo que asegura un funcionamiento estable y rápido de la aplicación sin la influencia de "vecinos" en un hosting compartido.
  • Integración: Mealie se integra fácilmente con otros servicios self-hosted gracias a su API. Puedes, por ejemplo, configurar copias de seguridad automáticas en tu NAS o integrarlo con herramientas de terceros para la planificación de comidas.
  • Aprendizaje y desarrollo: La instalación de Mealie y su mantenimiento en un VPS por tu cuenta es una excelente oportunidad para profundizar tus conocimientos en administración de servidores, Docker y tecnologías web.

Valebyte.com ofrece servidores VPS fiables que son ideales para tareas como el alojamiento de Mealie, proporcionándote una infraestructura potente y flexible para tus proyectos.

Características principales de Mealie

Mealie no es solo un almacén de recetas. Es una plataforma completa con un rico conjunto de funciones:

  • Importación de recetas: Soporte para importar recetas de más de 100 sitios web y blogs de cocina populares, así como la opción de entrada y edición manual.
  • Gestión de ingredientes y pasos: Descripción detallada de los ingredientes, sus cantidades, unidades de medida e instrucciones de preparación paso a paso.
  • Categorías y etiquetas: Un sistema flexible de categorización y etiquetado para facilitar la búsqueda y organización de recetas.
  • Planificación de comidas: Calendario integrado para planificar las comidas de la semana o el mes.
  • Listas de la compra: Creación automática de listas de la compra basadas en las recetas seleccionadas, con la posibilidad de combinar ingredientes y añadir elementos manualmente.
  • Usuarios y permisos: Soporte para múltiples usuarios con diferentes niveles de acceso, lo que convierte a Mealie en una excelente solución para una familia o un equipo pequeño.
  • Etiquetas y búsqueda: Potente búsqueda de texto completo en todos los campos de las recetas, así como filtrado por etiquetas, categorías y otros atributos.
  • Modo oscuro: Un cómodo modo oscuro para trabajar en condiciones de poca luz.
  • Compatibilidad con PWA: Posibilidad de instalar Mealie como una aplicación web progresiva en dispositivos móviles para un acceso rápido.

Requisitos del sistema para Mealie en un servidor

Elegir el servidor VPS adecuado para Mealie en un servidor es un punto clave para asegurar su funcionamiento estable y rápido. Aunque Mealie es relativamente ligero, especialmente para un número reducido de usuarios, es importante considerar los requisitos mínimos y recomendados. Estos requisitos se basan en una configuración típica que utiliza Docker y una base de datos PostgreSQL.

Requisitos mínimos

Para un solo usuario o una familia muy pequeña (1-3 personas) con varios cientos de recetas:

  • Procesador (CPU): 1 vCPU con una frecuencia de reloj de 2.0 GHz o superior. Mealie no es una aplicación intensiva en CPU con un uso estándar, pero se necesita un procesador para procesar solicitudes y tareas en segundo plano.
  • Memoria RAM: 1 GB. Esto es suficiente para ejecutar los contenedores Docker de Mealie y PostgreSQL. PostgreSQL puede consumir hasta 200-300 MB, y Mealie mismo, 200-400 MB en modo inactivo.
  • Espacio en disco: 10-15 GB NVMe SSD. Mealie almacena recetas, imágenes y la base de datos. Un NVMe SSD acelerará significativamente las operaciones de entrada/salida, lo cual es importante para la capacidad de respuesta de la aplicación. 10-15 GB serán suficientes para varios miles de recetas y sus imágenes, así como para el sistema operativo y las imágenes Docker.
  • Sistema operativo: Ubuntu 22.04 LTS, Debian 11/12 o CentOS 8/9. Se recomiendan las versiones LTS para mayor estabilidad y soporte a largo plazo.
  • Conexión de red: Mínimo 100 Mbit/s. Mealie no requiere un alto ancho de banda, pero una conexión estable es importante para el acceso.

Requisitos recomendados

Para un uso activo (3-10 usuarios) con miles de recetas, importación frecuente y planificación:

  • Procesador (CPU): 2 vCPU con una frecuencia de reloj de 2.5 GHz o superior. Un núcleo adicional proporcionará un mejor procesamiento paralelo de las solicitudes, especialmente con el acceso simultáneo de varios usuarios o la ejecución de operaciones que consumen muchos recursos, como la importación de una gran cantidad de recetas.
  • Memoria RAM: 2-4 GB. Esto proporcionará un búfer suficiente para PostgreSQL y Mealie, evitando la descarga de datos a la memoria de intercambio y mejorando el rendimiento general. Si planeas ejecutar otros servicios en el mismo VPS, 4 GB será una opción más segura.
  • Espacio en disco: 25-50 GB NVMe SSD. Un mayor volumen de disco proporcionará un margen para el crecimiento del número de recetas, imágenes, así como para el almacenamiento de copias de seguridad. El NVMe SSD sigue siendo la opción preferida.
  • Sistema operativo: Ubuntu 22.04 LTS o Debian 12.
  • Conexión de red: 1 Gbit/s.

Es importante recordar que estos requisitos son orientativos. El consumo real de recursos puede variar según el número de usuarios, la frecuencia de uso, la cantidad de recetas e imágenes, así como otras aplicaciones que se ejecuten en el mismo VPS. Siempre es mejor empezar con una configuración ligeramente superior a la mínima para tener margen de crecimiento y evitar problemas de rendimiento.

¿Buscas un servidor fiable para tus proyectos?

VPS desde $10/mes y servidores dedicados desde $9/mes con NVMe, protección DDoS y soporte 24/7.

Ver ofertas →

Preparación del VPS para la instalación de Mealie Docker

Antes de proceder con la instalación de Mealie, es necesario preparar tu VPS. Utilizaremos Docker y Docker Compose para una instalación lo más sencilla y portable posible. Asegúrate de tener acceso SSH al servidor con permisos de usuario sudo.

Actualización del sistema e instalación de paquetes necesarios

Primero, actualiza todos los paquetes del sistema para garantizar la seguridad y estabilidad:

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

Luego, instala algunas utilidades que podrían ser necesarias:

sudo apt install -y curl wget git nano htop

Instalación de Docker Engine

Mealie funcionará en contenedores Docker. La instalación de Docker Engine es el siguiente paso importante.

  1. Elimina versiones antiguas de Docker (si las hay):
    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. Instala las dependencias necesarias:
    sudo apt install -y ca-certificates curl gnupg
  3. Añade la clave GPG oficial de 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. Añade el repositorio de Docker a las fuentes de 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. Actualiza el índice de APT e instala Docker Engine:
    sudo apt update
    sudo apt install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
  6. Añade tu usuario al grupo docker: Esto permitirá ejecutar comandos Docker sin sudo.
    sudo usermod -aG docker $USER

    Para aplicar los cambios, es necesario salir de la sesión SSH y volver a iniciarla.

  7. Verifica la instalación de Docker:
    docker run hello-world

    Deberías ver el mensaje "Hello from Docker!".

Instalación de Docker Compose

Docker Compose es necesario para gestionar aplicaciones multicontenedor, como Mealie, que normalmente consta de contenedores de aplicación y de base de datos. El plugin de Docker Compose ya está instalado junto con Docker Engine, pero si utilizas una versión antigua de Docker u otro sistema operativo, es posible que tengas que instalarlo manualmente. Asegúrate de que el comando docker compose funciona (sin guion).

docker compose version

Si ves la versión, todo está en orden. Si no, es posible que tengas que instalarlo como un binario separado:

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

Luego, verifica la versión: docker-compose version (con guion). En las nuevas versiones de Docker, es preferible usar docker compose (sin guion).

rocket_launch Elección rápida

¿Buscas un servidor que simplemente funcione?

Valebyte VPS — NVMe, soporte 24/7, despliegue en 60 segundos.

Ver planes VPS arrow_forward

Instalación paso a paso de Mealie en un VPS con Docker Compose

Ahora que tu VPS está listo, podemos proceder con el despliegue de Mealie Docker utilizando Docker Compose. Este método permite gestionar fácilmente la aplicación y sus dependencias.

Creación del directorio para Mealie

Crea un directorio donde se almacenarán todos los archivos de configuración y datos de Mealie:

mkdir -p ~/mealie
cd ~/mealie

Configuración del archivo .env

Mealie utiliza variables de entorno para su configuración. Crea un archivo .env en el directorio ~/mealie:

nano .env

Y añade el siguiente contenido:

# Mealie Configuration
TZ=Europe/Moscow # Tu zona horaria
PUID=1000 # ID de tu usuario (normalmente 1000)
PGID=1000 # ID de tu grupo (normalmente 1000)
APP_HOST=0.0.0.0 # Escuchar en todas las interfaces
APP_PORT=9000 # Puerto en el que Mealie estará disponible dentro del contenedor
BASE_URL=http://localhost:9000 # Se cambiará al configurar el proxy

# Database Configuration (PostgreSQL)
DB_ENGINE=postgresql
DB_HOST=db
DB_PORT=5432
DB_USER=mealie
DB_PASSWORD=your_strong_db_password # Reemplaza con una contraseña segura
DB_NAME=mealie

# Mealie Specific
DEBUG=false # Establece en true para depuración
ALLOW_SIGNUP=true # Permitir el registro de usuarios (se puede desactivar después de crear el administrador)
SECRET_KEY=generate_a_very_long_random_string # Genera una cadena aleatoria muy larga (mínimo 32 caracteres)
MEDIA_LOCATION=/app/data/media # Ruta para archivos multimedia dentro del contenedor
DATA_LOCATION=/app/data # Ruta para datos dentro del contenedor

# SMTP Configuration (Optional, para enviar correos)
SMTP_HOST=
SMTP_PORT=
SMTP_USER=
SMTP_PASSWORD=
SMTP_FROM_EMAIL=
SMTP_TLS=true
SMTP_SSL=false

Notas importantes:

  • Reemplaza your_strong_db_password con una contraseña compleja y única.
  • Para SECRET_KEY, genera una cadena aleatoria muy larga (por ejemplo, usando openssl rand -hex 32).
  • PUID y PGID se pueden obtener con los comandos id -u y id -g respectivamente. Normalmente es 1000 para el primer usuario en Linux.
  • Cambia TZ a tu zona horaria (por ejemplo, Europe/Berlin, America/New_York).
  • Se recomienda desactivar ALLOW_SIGNUP después de crear el primer administrador para evitar registros no autorizados.
  • Si planeas usar Mealie para la recuperación de contraseñas o notificaciones, configura los parámetros SMTP.

Creación del archivo docker-compose.yml

Crea un archivo docker-compose.yml en el mismo directorio ~/mealie:

nano docker-compose.yml

Y añade el siguiente contenido:

version: '3.8'

services:
  mealie:
    image: hkotel/mealie:latest # Usamos la imagen oficial de 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 (descomenta y rellena si lo usas)
      # - 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 # Vinculamos el directorio local para almacenar datos
    ports:
      - "9000:9000" # Mapeamos el puerto de Mealie al sistema host
    depends_on:
      - db
    restart: unless-stopped

  db:
    image: postgres:15-alpine # Usamos la imagen ligera de 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 # Vinculamos el directorio local para almacenar datos de la BD
    restart: unless-stopped

volumes:
  data:
  db-data:

Explicaciones de docker-compose.yml:

  • Servicio mealie:
    • image: hkotel/mealie:latest: Utiliza la última versión estable de Mealie.
    • environment: Pasa las variables del archivo .env al contenedor de Mealie.
    • volumes: - ./data:/app/data: Monta el directorio local data (que se creará junto a docker-compose.yml) en el contenedor en la ruta /app/data. Aquí se almacenarán todos los datos de usuario de Mealie (recetas, imágenes, configuración).
    • ports: - "9000:9000": Mapea el puerto 9000 del contenedor de Mealie al puerto 9000 del sistema host. Esto permite acceder a Mealie a través de la dirección IP de tu VPS y el puerto 9000.
    • depends_on: - db: Indica que el servicio mealie depende del servicio db. Docker Compose iniciará primero la base de datos.
    • restart: unless-stopped: Garantiza que el contenedor de Mealie se reinicie automáticamente si se detiene o si el servidor se reinicia.
  • Servicio db:
    • image: postgres:15-alpine: Utiliza la imagen ligera de PostgreSQL 15.
    • environment: Pasa los parámetros para la inicialización de la base de datos PostgreSQL desde el archivo .env.
    • volumes: - ./db-data:/var/lib/postgresql/data: Monta el directorio local db-data en el contenedor para el almacenamiento persistente de los datos de PostgreSQL.
    • restart: unless-stopped: Similar para la base de datos.

Inicio de Mealie

Guarda ambos archivos (.env y docker-compose.yml). Ahora estás listo para iniciar Mealie.

En el directorio ~/mealie, ejecuta el comando:

docker compose up -d

Este comando descargará las imágenes Docker necesarias (si no existen), creará e iniciará los contenedores de Mealie y PostgreSQL en segundo plano (-d significa modo desatachado).

Puedes verificar el estado de los contenedores en ejecución:

docker compose ps

Ambos contenedores (mealie y mealie_db) deberían tener el estado Up.

Mealie ahora debería ser accesible en http://TU_IP_VPS:9000. Al acceder por primera vez, se te pedirá que crees una cuenta de administrador. Después de crear el administrador, se recomienda editar el archivo .env y establecer ALLOW_SIGNUP=false para evitar registros no autorizados de otros usuarios.

Para un mayor control sobre los datos y para asegurar su conservación, considera usar Filebrowser en un VPS, que te ayudará a gestionar los archivos relacionados con Mealie y a organizar sus copias de seguridad.

Configuración de proxy inverso y HTTPS para Mealie

El acceso a Mealie a través de http://TU_IP_VPS:9000 no es seguro ni conveniente. Para garantizar un acceso seguro mediante un nombre de dominio con HTTPS (certificado SSL) y la posibilidad de ejecutar Mealie en el puerto estándar 443, es necesario configurar un servidor proxy inverso. Consideraremos dos opciones populares: Nginx y Caddy.

Antes de empezar, asegúrate de tener un nombre de dominio (por ejemplo, recipes.mydomain.com) que apunte a la dirección IP de tu VPS.

Opción 1: Nginx con Let's Encrypt

Nginx es un potente y ampliamente utilizado servidor web y proxy inverso. Let's Encrypt proporciona certificados SSL gratuitos.

1. Instalación de Nginx

sudo apt install -y nginx

2. Configuración de Nginx

Crea un nuevo archivo de configuración para tu dominio:

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

Añade el siguiente contenido, reemplazando recipes.mydomain.com por tu dominio:

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; # Estas rutas serán creadas por Certbot
    ssl_certificate_key /etc/letsencrypt/live/recipes.mydomain.com/privkey.pem; # Estas rutas serán creadas por Certbot

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

    location / {
        proxy_pass http://localhost:9000; # Puerto en el que Mealie está disponible en el host
        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;
    }
}

Cambios importantes en .env:

Después de configurar el proxy inverso, vuelve al archivo .env en el directorio ~/mealie y cambia BASE_URL a tu dominio con HTTPS:

BASE_URL=https://recipes.mydomain.com

Reinicia Mealie para que los cambios surtan efecto:

cd ~/mealie
docker compose restart mealie

3. Activación de la configuración de Nginx

sudo ln -s /etc/nginx/sites-available/recipes.mydomain.com /etc/nginx/sites-enabled/
sudo nginx -t # Verificación de sintaxis
sudo systemctl restart nginx

4. Instalación de Certbot y obtención de un certificado SSL

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

Sigue las instrucciones de Certbot. Configurará automáticamente Nginx para usar HTTPS. Certbot también creará una tarea cron para la renovación automática de certificados.

Opción 2: Caddy (más sencilla)

Caddy es un servidor web moderno que gestiona automáticamente los certificados SSL de Let's Encrypt, lo que simplifica significativamente la configuración de HTTPS.

1. Instalación de 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. Configuración de Caddyfile

Crea o edita el archivo /etc/caddy/Caddyfile:

sudo nano /etc/caddy/Caddyfile

Elimina todo el contenido predeterminado y añade lo siguiente, reemplazando recipes.mydomain.com por tu dominio:

recipes.mydomain.com {
    reverse_proxy localhost:9000 # Puerto en el que Mealie está disponible en el host
}

Cambios importantes en .env:

De forma similar a Nginx, cambia BASE_URL en el archivo .env:

BASE_URL=https://recipes.mydomain.com

Reinicia Mealie:

cd ~/mealie
docker compose restart mealie

3. Activación de la configuración de Caddy

sudo systemctl enable caddy
sudo systemctl restart caddy

Caddy obtendrá y configurará automáticamente un certificado SSL para tu dominio. Ahora Mealie estará disponible en https://recipes.mydomain.com.

Has configurado con éxito el proxy inverso y HTTPS para Mealie. Ahora tu servicio es accesible a través de una conexión segura mediante un nombre de dominio.

Copia de seguridad y actualización de Mealie

Las copias de seguridad regulares y las actualizaciones oportunas son la base para el funcionamiento fiable de cualquier aplicación self-hosted, incluyendo Mealie en un servidor. No descuides estos pasos para evitar la pérdida de datos y garantizar la seguridad de tu instalación.

Copia de seguridad de Mealie

Tus datos de Mealie constan de dos partes principales: la base de datos PostgreSQL y los archivos (imágenes, configuración) almacenados en el directorio data. Para una copia de seguridad completa, es necesario guardar ambas partes.

1. Detención de Mealie (recomendado para la consistencia)

cd ~/mealie
docker compose stop mealie

Detener solo el contenedor de Mealie permitirá que la base de datos siga funcionando, pero detendrá las operaciones de escritura en la base de datos por parte de Mealie, asegurando la consistencia de los datos al crear un volcado.

2. Creación de un volcado de la base de datos PostgreSQL

Utiliza el comando pg_dump desde el contenedor de PostgreSQL:

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

Donde:

  • mealie_db – nombre del contenedor de la base de datos.
  • -U mealie – usuario de la base de datos.
  • -Fc mealie – formato del volcado (personalizado, comprimido) y nombre de la base de datos.
  • > ~/mealie_backup/mealie_db_$(date +%Y%m%d%H%M%S).bak – redirección de la salida a un archivo con marca de tiempo en el directorio ~/mealie_backup. Asegúrate de que este directorio exista: mkdir -p ~/mealie_backup.

3. Copia de archivos de Mealie

Copia el directorio con los datos de Mealie. Como montamos el volumen ./data, todos los archivos se encuentran en ~/mealie/data en el host.

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

4. Inicio de Mealie

cd ~/mealie
docker compose start mealie

5. Automatización de la copia de seguridad con Cron

Puedes crear un script y configurar Cron para realizar copias de seguridad automáticamente. Crea el archivo backup_mealie.sh:

nano ~/backup_mealie.sh

Contenido del script:

#!/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"

Haz el script ejecutable:

chmod +x ~/backup_mealie.sh

Añade la tarea a Cron (por ejemplo, diariamente a las 3:00 de la madrugada):

crontab -e

Añade la línea:

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

Para soluciones de copia de seguridad más avanzadas, que incluyan cifrado y envío a almacenamiento remoto, te recomendamos consultar nuestro artículo sobre Restic en un VPS: instalación, configuración y mantenimiento.

Restauración de Mealie desde una copia de seguridad

Para restaurar, deberás detener Mealie, restaurar la base de datos y los archivos, y luego iniciar Mealie.

  1. Detén Mealie:
    cd ~/mealie
    docker compose down
  2. Elimina los datos actuales (¡ten cuidado!):
    rm -rf ~/mealie/data
    rm -rf ~/mealie/db-data
  3. Restaura los archivos de datos:
    cp -R ~/mealie_backup/mealie_data_YYYYMMDDHHMMSS ~/mealie/data

    Reemplaza YYYYMMDDHHMMSS con la marca de tiempo de la copia de seguridad deseada.

  4. Crea directorios vacíos para la base de datos (si fueron eliminados):
    mkdir -p ~/mealie/db-data
  5. Inicia el contenedor de la base de datos (sin Mealie) para que se inicialice:
    docker compose -f ~/mealie/docker-compose.yml up -d db

    Espera a que el contenedor mealie_db se inicie completamente.

  6. Restaura la base de datos desde el volcado:
    docker exec -i mealie_db pg_restore -U mealie -d mealie < ~/mealie_backup/mealie_db_YYYYMMDDHHMMSS.bak

    Reemplaza YYYYMMDDHHMMSS con la marca de tiempo de la copia de seguridad deseada.

  7. Inicia Mealie:
    docker compose -f ~/mealie/docker-compose.yml up -d

Actualización de Mealie

La actualización de Mealie Docker se reduce a actualizar las imágenes Docker y reiniciar los contenedores.

  1. Ve al directorio de Mealie:
    cd ~/mealie
  2. Detén los contenedores:
    docker compose down
  3. Descarga las nuevas imágenes:
    docker compose pull

    Esto descargará las últimas versiones de las imágenes de Mealie y PostgreSQL.

  4. Inicia los contenedores de nuevo:
    docker compose up -d

    Mealie realizará automáticamente las migraciones de la base de datos si es necesario.

  5. Limpia las imágenes Docker antiguas (opcional):
    docker image prune -f

Se recomienda revisar los lanzamientos oficiales de Mealie en GitHub, ya que a veces pueden requerirse pasos adicionales al actualizar (por ejemplo, cambios en el archivo .env o docker-compose.yml).

rocket_launch Elección rápida

¿Buscas un servidor que simplemente funcione?

Valebyte VPS — NVMe, soporte 24/7, despliegue en 60 segundos.

Ver planes VPS arrow_forward

Qué VPS elegir para Mealie: recomendaciones de configuración

La elección del VPS óptimo para Mealie depende de tus necesidades: número de usuarios, volumen de recetas y frecuencia de uso. Consideraremos diferentes escenarios y sus configuraciones de VPS correspondientes, disponibles en Valebyte.com.

Tabla comparativa de configuraciones de VPS para Mealie

Escenario de uso CPU (vCores) RAM (GB) Disco (NVMe SSD, GB) Costo aproximado/mes (Valebyte.com) Notas
Uso personal / Familia pequeña (1-3 usuarios, hasta 1000 recetas) 1 1-2 25 desde $5 - $8 Ideal para empezar. Proporciona un funcionamiento rápido.
Familia activa / Pequeña comunidad (3-10 usuarios, 1000-5000+ recetas) 2 2-4 50 desde $10 - $15 Buen equilibrio entre rendimiento y costo. Recomendado para la mayoría de los usuarios.
Blog de cocina / Gran comunidad (más de 10 usuarios, más de 5000 recetas) 4 4-8 100+ desde $20 - $35+ Para cargas altas, gran cantidad de imágenes y solicitudes simultáneas. Permite ejecutar otros servicios.
Desarrollo / Pruebas de Mealie 1 1 25 desde $5 Configuración mínima, suficiente para experimentos.

Aspectos importantes al elegir un VPS

  1. Tipo de disco: NVMe SSD. Esto es críticamente importante para la capacidad de respuesta de Mealie. Las operaciones de base de datos y la carga de imágenes serán significativamente más rápidas en NVMe en comparación con los SSD o HDD normales. Valebyte.com ofrece VPS con discos NVMe por defecto.
  2. Ubicación del servidor: Elige un centro de datos que esté geográficamente cerca de tus usuarios principales. Esto minimiza la latencia y mejora la velocidad de acceso a Mealie.
  3. Recursos garantizados: Asegúrate de que tu VPS proporciona recursos garantizados (dedicated resources), y no CPU/RAM "burstable" o "shared" que pueden sobrecargarse por otros usuarios en el mismo servidor físico.
  4. Escalabilidad: Elige un proveedor que te permita aumentar (o disminuir) fácilmente los recursos de tu VPS a medida que cambien tus necesidades. Valebyte.com ofrece tarifas flexibles y la posibilidad de actualizar en cualquier momento.
  5. Sistema operativo: Ubuntu Server LTS o Debian Stable son los sistemas operativos más recomendados para alojar aplicaciones Docker. Están bien documentados y cuentan con una amplia comunidad de soporte.
  6. Ancho de banda de red: Aunque Mealie no requiere un ancho de banda enorme, un canal estable de 1 Gbit/s será una ventaja, especialmente si planeas subir muchas imágenes o tener varios usuarios.
  7. Soporte técnico: Un soporte técnico de calidad y rápido por parte del proveedor de hosting puede ser invaluable, especialmente si te encuentras con problemas a nivel de infraestructura.

Para monitorear el uso de recursos de tu VPS y optimizar su funcionamiento, te recomendamos consultar nuestro artículo sobre Netdata en un VPS: instalación, configuración y mantenimiento. Esto te ayudará a entender qué configuración de VPS se adapta mejor a la carga real de Mealie para ti.

Comenzando con la configuración recomendada (2 vCPU, 2-4 GB RAM, 50 GB NVMe SSD), obtendrás un excelente equilibrio entre rendimiento y costo para la mayoría de los escenarios de uso de Mealie. Si planeas usar el VPS para otras aplicaciones self-hosted, como Home Assistant en un VPS o un servidor VPS para 1C, elige siempre un plan con recursos de sobra.

Conclusiones

La instalación de Mealie en un VPS a través de Docker Compose es una solución fiable y flexible para crear tu propia plataforma de gestión de recetas, proporcionando control total sobre tus datos y un alto rendimiento. La elección de la configuración de VPS adecuada, las copias de seguridad regulares y las actualizaciones oportunas garantizan un funcionamiento estable y seguro de tu servicio. Valebyte.com ofrece tarifas de VPS óptimas con discos NVMe, ideales para alojar Mealie y otros de tus proyectos self-hosted.

¿Listo para elegir un servidor?

VPS y servidores dedicados en más de 72 países con activación instantánea y acceso root completo.

Empezar ahora →

Compartir esta publicación:

support_agent
Valebyte Support
Usually replies within minutes
Hi there!
Send us a message and we'll reply as soon as possible.