Illustration et descriptif extraits de GitHub-mealie
Mealie est un gestionnaire de recettes, un planificateur de repas et une liste de courses auto-hébergés avec un backend RestAPI et un frontend réactif intégré à Vue pour une expérience utilisateur agréable pour toute la famille. Ajoutez facilement des recettes dans votre base de données en fournissant l'URL et Mealie importera automatiquement les données pertinentes ou ajoutera une recette familiale avec l'éditeur d'interface utilisateur. Mealie fournit également une API pour les interactions provenant d'applications tierces.
Principales caractéristiques
- Importations de recettes : Créer des recettes, par importation à partir d'une URL ou saisir des données manuellement
- Planificateur de repas : utilisez le Planificateur de repas pour planifier ce que vous cuisinerez pour la semaine prochaine
- Liste de courses : Mettez les ingrédients nécessaires sur votre Liste de courses, organisé en sections de votre supermarché local
- Livres de cuisine : regroupez les recettes en Livres de cuisine en fonction de vos propres critères
- Docker : Facile Docker déploiement
- Localisation : Traductions pour 35+ langues
SQLITE ou avec DB externe
Le site de Mealie propose deux mode configurations :
Le choix entre SQLite et une base de données externe (comme PostgreSQL) pour Mealie dépend principalement de l'échelle d'utilisation et de l'infrastructure de stockage.
SQLite est la solution recommandée par défaut car elle est légère, sans configuration et idéale pour les foyers avec 1 à 20 utilisateurs. Elle est intégrée directement dans le conteneur, ce qui simplifie la gestion des données via un simple volume Docker monté sur /app/data/.
Cependant, PostgreSQL devient nécessaire dans deux cas précis :
-
Stockage réseau (NAS/NFS) : SQLite n'est pas conçu pour fonctionner sur des systèmes de fichiers réseau partagés et peut entraîner des corruptions de données ou des erreurs de base de données verrouillée.
- Haute concurrence : Si vous avez besoin de supporter un grand nombre d'utilisateurs simultanés ou souhaitez utiliser des fonctionnalités avancées comme la recherche floue.
En résumé, utilisez SQLite pour une installation domestique simple sur disque local, et passez à PostgreSQL si vous utilisez un NAS ou une installation multi-utilisateurs plus complexe.
1. Mealie Sqlite
Vous pouvez préinstaller cette configuration simple avec l'une des deux propositions de l'App-Store. La configuration proposée ci-après se base sur le YAML officiel du site du développeur.
1.1. Application personnalisée
Cliquez sur l’icône + en haut à droite de la page d’accueil au dessus des tuiles et sélectionnez Installer une application personnalisée.
1.2. Importer
La fenêtre des paramètres de votre application s’ouvre et cliquez sur l’icône flèche vers le carré en haut à droite, avec pour libellé Importer
1.3. Importer le YAML
Le pop-up vous propose d’importer votre configuration avec un fichier YAML ou de copier-coller celle-ci dans la fenêtre dédiée. Vous pouvez agrandir cette fenêtre en sélectionnant les deux traits en bas à droite.
Copier-coller dans la fenêtre le code de configuration ci dessous (ouvrir la bascule)
YAML
Mealie SQLite
name: mealie
services:
mealie:
cpu_shares:
command: []
container_name: mealie
deploy:
resources:
limits:
memory: 1048576000
reservations:
devices: []
environment:
- ALLOW_SIGNUP=false
- BASE_URL=
- PGID=
- PUID=
- TZ=Europe/Paris
image: ghcr.io/mealie-recipes/mealie:v3.16.0
labels:
icon: https://icon.casaos.io/main/all/mealie.png
ports:
- target: 9000
published: "9925"
protocol: tcp
restart: always
volumes:
- type: bind
source: /DATA/AppData/mealie/data
target: /app/data
devices: []
cap_add: []
network_mode: bridge
privileged: false
x-casaos:
author: self
category: self
hostname:
icon: https://icon.casaos.io/main/all/mealie.png
index: /
is_uncontrolled: true
port_map: "9925"
scheme: http
store_app_id: mealie
title:
custom: "MEALIE"
en_us: mealieCliquez sur Appliquer, puis sur OK sur le Pop-up qui s’affiche
1.4. Paramètres Mealie
1. La version de l'image proposée est, à ce jour, v3.16.0. Vous pouvez la mettre à jour au fur et à mesure. Le site de Mealie indique que vous pouvez mettre le mode latest dans la mesure où les mises à jour futures ne semblent pas poser de problèmes majeurs.
2. Changer sur la Web UI par l'adresse locale de votre serveur (http) - Optionnel vous pouvez aussi lier mealie sur un NDD:443 avec le port local 9925 en Proxy Inversé.
3. Indiquez votre PGID et PUID
4. BASE_URL est optionnelle sur Casa/ZimaOS (vous pouvez laissez vide Web UI rempli ce rôle)
1.5. Installer
Cliquez sur Installer et patientez le temps de l’installation
Puis, cliquez sur la nouvelle tuile créée pour ouvrir une nouvelle page web
Nous allons pouvoir à présent configurer Mealie
2. Mealie PostgreSQL
2.1. Proxy Inversé Optionnel
Si vous souhaitez mettre ce CMS de recettes de cuisine sur internet, vous devrez effectuer son installation sur un NDD, Wildcard ou Sous-domaine dédié.
Pour cet article, je vais indiquer le port 9925 proposé par YAML du site avec un NDD sur mon proxy-inversé.
Aussi, je lierais à cette application un courriel personnalisé par la configuration de l'environnement de l'image Mealie.
Ces deux fonctionnalités restent optionnelles, si vous ne les utilisez pas, indiquez votre ip locale et le port dédié à la place du NDD (WebUI) et supprimez les lignes SMTP.
2.2. Importer le YAML
Reprenez le tuto de 1. Mealie SQLite jusqu'au point 1.3 et,
Copier-coller dans la fenêtre le code de configuration ci dessous (ouvrir la bascule)
YAML
Mealie PostgreSQL
name: mealie
services:
mealie:
cpu_shares:
command: []
container_name: mealie
depends_on:
postgres:
condition: service_healthy
required: true
deploy:
resources:
limits:
memory: 1048576000
reservations:
devices: []
environment:
- ALLOW_SIGNUP=false
- BASE_URL=http://
- DB_ENGINE=postgres
- PGID=
- POSTGRES_DB=mealie
- POSTGRES_PASSWORD=mealie
- POSTGRES_PORT=5432
- POSTGRES_SERVER=postgres
- POSTGRES_USER=mealie
- PUID=
- SMTP_AUTH_STRATEGY=
- SMTP_FROM_EMAIL=
- SMTP_FROM_NAME=
- SMTP_HOST=
- SMTP_PASSWORD=
- SMTP_PORT=
- SMTP_USER=
- TZ=Europe/Paris
image: ghcr.io/mealie-recipes/mealie:latest
labels:
icon: https://icon.casaos.io/main/all/mealie.png
ports:
- target: 9000
published: "9925"
protocol: tcp
restart: always
volumes:
- type: bind
source: /DATA/AppData/mealie/data
target: /app/data
devices: []
cap_add: []
networks:
- mealie_network
privileged: false
postgres:
cpu_shares:
command: []
container_name: postgres
deploy:
resources:
limits:
memory:
reservations:
devices: []
environment:
- PGUSER=mealie
- POSTGRES_DB=mealie
- POSTGRES_PASSWORD=mealie
- POSTGRES_USER=mealie
healthcheck:
test:
- CMD
- pg_isready
timeout: 20s
interval: 30s
retries: 3
image: postgres:17
labels:
icon: https://icon.casaos.io/main/all/mealie.png
restart: always
volumes:
- type: bind
source: /Data/AppData/mealie/db
target: /var/lib/postgresql/data
ports: []
devices: []
cap_add: []
networks:
- mealie_network
privileged: false
networks:
mealie_network:
name: mealie_mealie_network
x-casaos:
author: self
category: self
hostname:
icon: https://icon.casaos.io/main/all/mealie.png
index: /
is_uncontrolled: false
port_map: ""
scheme: https
store_app_id: mealie
title:
custom: "MEALIE"
en_us: mealieArticle en cours d'écriture










