Installer Mealie sur un NAS Synology

Mealie est une application open source de gestion de recettes de cuisine. Elle est simple d’utilisation et apprécié de ceux cherchent à gérer leur alimentation, à planifier leurs repas et à éviter le gaspillage alimentaire. Aujourd’hui, je vous propose de voir ensemble comment installer et utiliser Mealie sur un NAS Synology…

Mealie et Synology

Si vous cherchez une solution centralisée et personnalisée pour organiser vos recettes, l’application Mealie est un excellent choix. Je vous propose un tuto pour installer Mealie sur un NAS Synology…

Qu’est-ce que Mealie ?

Mealie est un gestionnaire de recettes et de planification de repas auto-hébergé qui permet d’importer des recettes de divers sites Web et de les organiser facilement. L’interface inclut un planificateur de repas hebdomadaire, des sauvegardes automatiques et un éditeur de recettes (avec prise en charge de Markdown). Les utilisateurs peuvent partager leurs recettes et planifications avec d’autres membres. Mealie propose également une API permettant des intégrations tierces et des notifications automatisées.

OpenAI

Récemment, OpenAI a été intégré dans Mealie afin d’utiliser l’IA pour analyser des ingrédients et importer des recettes depuis des images ou pages web, même si celles-ci sont difficilement lisibles. Cela simplifie la traduction automatique des recettes importées, améliorant la personnalisation et l’accessibilité des données de cuisine dans l’application.

Installation en 5 minutes chrono

Simple, open source et sans publicité, Mealie s’installe facilement sur un NAS Synology grâce à Docker/Container Manager, afin de l’héberger soi-même.

Prérequis

Avant de commencer, assurez-vous d’avoir :

  1. Un NAS Synology compatible avec Docker et suffisamment de mémoire (512 Mo minimum)
  2. Le package Container Manager (anciennement Docker) installé depuis le Centre de paquets de Synology
  3. Créez un sous-dossier Mealie dans le dossier docker sur votre NAS (à l’aide de File Station)

Étape 1 : Ouvrir Container Manager

Accédez à Container Manager depuis votre NAS Synology :

  1. Connectez-vous à l’interface d’administration de DSM
  2. Allez dans le Centre de paquets et vérifiez que Container Manager est installé
  3. Ouvrez Container Manager une fois installé

Étape 2 : Récupérer l’image Docker de Mealie

  1. Dans Container Manager, accédez à l’onglet Registre
  2. Dans la barre de recherche, tapez « mealie » pour trouver l’image officielle de l’application
  3. Recherchez l’image hkotel/mealie (normalement c’est le premier) et cliquez deux fois dessus
  4. Sélectionnez la dernière version stable de l’image (généralement avec le tag latest)
  5. Cliquez sur Télécharger et attendez que l’image soit entièrement téléchargée

Étape 3 : Configurer le conteneur de Mealie

Une fois l’image téléchargée, il est temps de configurer le conteneur…

  1. Créer un nouveau conteneur :

    • Allez dans l’onglet Image
    • Repérez l’image hkotel/mealie et cliquez sur le bouton Executer pour créer un nouveau conteneur
  2. Configurer le conteneur :

      • Nom du conteneur : Donnez un nom unique à votre conteneur, comme mealie.
      • Configuration des ports : Mealie utilise par défaut le port 9000. Vous pouvez le mapper sur un port de votre choix pour qu’il soit accessible depuis votre réseau local. Dans les paramètres de port, faites correspondre le port local (NAS) au port de conteneur, par exemple : 9000 (local) -> 9000 (conteneur).
      • Volume : Cliquez sur Ajouter un dossier pour mapper un dossier local de votre NAS avec le conteneur. Cela permet de conserver les données même après un redémarrage ou une mise à jour. Par exemple, avec le dossier précédemment créé mealie et assignez-le à /app/data (dans le conteneur) vers /docker/Mealie (sur votre NAS).
  3. Variables d’environnement (mode avancé) :

    • Mealie utilise généralement des configurations par défaut adéquates pour la plupart des utilisateurs. Cependant, vous pouvez ajouter des variables pour configurer certains aspects. En face de HOST, indiquez l’adresse IP de votre NAS (ex. : 192.168.1.100) et ajouter la variable BASE_URL et vous indiquerez en face l’URL complète d’accès à l’application sur le NAS (ex. : http://192.168.1.100:9000)
  4. Valider et lancer :

    • Une fois les ports et volumes configurés, cliquez sur Suivant puis sur Effectué pour lancer le conteneur.

Note aux experts : Mealie utilise sqlite par défaut. Il est possible d’utiliser un système de base de donnée robuste comme PostgreSQL.

Étape 4 : Démarrer et tester Mealie

  1. Dans l’onglet Conteneurs, vous verrez votre conteneur Mealie. Assurez-vous qu’il est en cours d’exécution.
  2. Ouvrez un navigateur web et tapez l’URL pour accéder à Mealie (ex . : http://192.168.1.100:9000).
  3. Si tout a été configuré correctement, l’interface de Mealie devrait s’afficher. Suivez les instructions pour créer un compte administrateur et finaliser les paramètres de base.

Note aux experts : Il est possible de passer en https en utilisant la fonction de Proxy inversé fournie par DSM.

En synthèse

En quelques étapes, Mealie est opérationnel sur votre NAS Synology, prêt à centraliser toutes vos recettes et faciliter votre organisation culinaire. En utilisant Container Manager, l’application peut être facilement configurée et maintenue, tout en offrant un accès sécurisé et contrôlé à vos données.

  1. Merci Cachem. Mealie est vraiment un excellent logiciel pour regrouper et partager ses expériences culinaires. Au delà des mesures ingrédients et étapes, il permet de categoriser l alimentation (origine produits….) et partager avec sa famille les recettes et les réalisations. C est un conteneur du quotidien chez nous. Si ça intéresse quelqu’un, je peux poster le yaml qui va bien pour l exec sous Portainer. Happy cooking comme conclue Jacques Pépin.

    1. Merci pour cette découverte.
      Bon, par contre je n’arrive pas à configurer ce qu’il faut pour que OpenAI soit intégré (j’ai bien mis la clé générée sur Openai, ainsi que la liste des variables indiquées sur la doc officielle mais visiblement ca ne suffit pas)

      1. Bon, comme souvent l’erreur venait de moi et d’une erreur de nom de variable. OPEN_AI_KEY au lieu de OPENAI_KEY_API…fff. Bon, maintenant à voir comment ça s’utilise dans Meali, cette intégration d’openAI

        1. Salut,
          J’ai bien paramétré mon API OpenAI et j’ai testé l’import de recette à partir d’URLs mais l’API n’a pas été utilisé (en regardant les stats de l’API sur le DashBoard OpenAI).
          Et justement, sur un site que j’utilise beaucoup (Amandine Cooking), Mealie n’arrive pas à récupérer la liste des ingrédients ni la liste des étapes… Je comptais l’utiliser pour récupérer juste pour la liste des courses, plutôt que d’avoir à copier coller ingrédients par ingrédients.
          Quelqu’un a réussi à faire fonctionner l’OpenAI sur l’import de recettes ?

          1. Tout fonctionne correctement.
            Je viens de tester avec une recette écrite sur feuille.

            Ça consomme un peu de token, je vais essayer de changer de modèle par gpt-4o-mini qui est un peu moins chère.

  2. Salut,

    J’ai le sentiment que le(s) rédacteur(s) de Cachem a(ont) découvert Docker.

    Du coup, on se retrouve avec pleins d’articles intitulés « Installer XXX sur un NAS Synology »… sauf que c’est uniquement sur des NAS compatibles Docker – donc plutôt hauts de gamme et pas représentatif de la majorité des NAS à usage personnel.

    Pourquoi ne pas faire un article sur le déploiement d’images Docker sur un NAS Synology compatible? J’avoue que c’est sûrement plus flatteur de pouvoir sortir toutes les semaines un nouvel article

    1. Bah, quelques découvertes en plus du reste du contenu, ça mange pas de pain (sans recette).
      C’est pas non plus comme si on était chez Marius de l’autre site qui ne fait quasi que ça.
      Et quand on est abonné au flux RSS, c’est toujours facile de ne pas ouvrir un article que l’on trouve moins intéressant (mais qui l’est pour d’autres)

    2. Les NAS compatibles docker ne sont pas hauts de gamme, mais plutôt milieux de gamme. J’ai acheté un DS918+ à 500€ il y a 5/6 ans qui est compatible docker.
      De mon côté, je connais quelques personnes qui ont commencé avec un NAS à 200/250€ pour rapidement passer à autre chose pour pouvoir faire tourner du docker.
      Concernant les NAS non compatibles Docker, les possibilités sont bien plus limitées donc difficile de pondre des tutos pour ceux-là.

      Je pense que cela permet à pas mal de personnes de découvrir des outils/services, je trouve que ce n’est pas mal.

      1. J’ai moi meme un DS120j (vieux et faible) en backup de mon DS920+ et meme dessus j’ai la possibilité depuis peu d’utiliser Docker. Alors il est surement trop léger pour envisager plein de containers, mais pour meali ca irait bien.

    3. Bonjour Julien,

      Merci pour ton commentaire !

      Petite info, le premier tuto Synology avec Docker remonte à 2017, donc j’ai déjà eu le temps d’explorer le sujet 😉

      Docker fonctionne sur de nombreux modèles de NAS Synology, y compris ceux disponibles dès 160€.

      Enfin, mes tutos sont avant tout conçus pour répondre à mes besoins personnels ou aux demandes des lecteurs et membres du forum.

  3. Hello,
    Merci pour ce tuto.
    J’ai suivi pas à pas la procédure mais le conteneur s’arrête au bout de 6 secondes avec l’erreur : PermissionError : [Errno 13] Permission denied: ‘/app/data.secret’
    le dossier mealie sous docker a été pourtant crée, il est en RW dans les paramètres (/volume1/docker/mealie:/app/data:RW)…
    Une idée ?

    1. Trouvé !
      Dans file manager, ce n’est pas indiqué dans le tuto, il faut ajouter pour le dossier créé les permissions Lire & écrire pour le groupe « Everyone ».

      1. J’avais le meme soucis, merci à toi. Il faudra le rajouter dans l’article je pense.
        Mais est-ce ok de donner ce genre de permissions à Everyone ?

      2. Bonjour,
        Pour la sécurité ce n’est pas top.
        Le mieux est de créé un utilisateur dans le nas pour docker.
        Le mettre en lecture/ecriture uniquement sur le dossier mealie voir sur le dossier docker en activant l’heritage sur les sous-dossiers.
        Récupérer le UID de cet utilisateur créé
        Et dans les variables d’environnement du conteneur, ajouter la ligne PUID et mettre le UID de l’utilisateur.

        1. Merci sekousse, oui, c’est mieux.
          Pour être complet :
          1 – créer un utilisateur userdocker-mealie par exemple
          Pas d’accès à Homes, uniquement à Docker en lecture écriture
          2 – Dossier Mealie :
          Rendre l’utilisateur userdock-mealie propriétaire du dossier (et sous-dossiers) et lui ajouter les droits R/W
          3 – Voir sur internet comment récupérer l’UID et le GPUID de l’utilisateur via ssh
          4 – Arrêter son container et le dupliquer
          ajouter les variables :
          PUID : ID de userdock-mealie
          PGID : GID de userdock-mealie

          Et voila !

  4. Merci pour le tuto…
    Une âme charitable arait il déjà un fichier d’import avec un nombre de recettes infinies car là j’avoue que tout importé va être long et fastidieux, un suite de cuisine compatible mealie : https://www.ricardocuisine.com/... cependant me voit pas copier/coller les recettes une à une…

  5. Bonjour à toutes et à tous
    Merci FX pour le tuto, cela permet de bien utiliser son Nas pour de la valeur ajoutée et en plus cela permet de découvrir des trucs bien sympas.
    J’ai testé Mealie et cela fonctionne plutôt bien mais par contre, ce n’est pas du 100% fonctionnel, il y a des ratés complets sur certains sites qui sortent un peu de l’ordinaire (comme signalés dans d’autres commentaires) et parfois juste une partie (les ingrédients par exemple).
    Est ce que OpenAI permettrait une meilleure reconnaissance des sites ??
    Si certaines ou certains ont déjà une bonne base, je suis preneur 😉
    En attendant, je vais continuer à importer mes recettes préférées 🙂
    Merci beaucoup

  6. Bonjour,
    En testant d importer des recettes, les quantités d ingrédients sont basés sur 4 parts et j aimerais augmenter le nombre de parts et que ça augmente automatiquement les quantités nécessaires, y a t il cette possibilité ?
    Merci d avance

    1. Oui, on peut !
      Edition de la recette / Paramètres / Désactiver « Désactiver les quantité des ingrédients »
      Une fois fait, :
      – Dans ingrédients, par exemple pour 80 g de beurre, ajoute (80 / gramme / beurre / et efface la dernière colonne devenue inutile
      – Bouton « sauvegarder »
      – Maintenant, tu peux cliquer sur le « + » et le « – » à côté de « serving » !
      De rien 😉

  7. Bonjour, j’ai suivi à la lettre les instructions d’installation malgré cela je n’y arrive pas le conteneur echoue et s’arrête dès que je tente d’accéder à l’url.
    Quelqu’un peut-il m’aider ?
    Cordialement.

    1. Bonjour Yohanb972, voici le docker-compose que j’ai utilisé

      version: ‘3.9’
      services:
      mealie:
      image: ghcr.io/mealie-recipes/mealie:latest #
      container_name: mealie
      restart: always
      ports:
      – ‘9925:9000’ #
      deploy:
      resources:
      limits:
      memory: 1000M #
      volumes:
      – /volume1/docker/mealie/data:/app/data/
      environment:
      # Set Backend ENV Variables Here
      ALLOW_SIGNUP: ‘false’
      TZ: Europe/Paris
      MAX_WORKERS: 1
      WEB_CONCURRENCY: 1
      BASE_URL: http://192.168.1.50:9925...

      J’ai préalablement crée le dossier : docker/maelie/data
      Cela fonctionne, il manque juste le lien avec openAi

      1. Merci de votre réponse cependant j’utilise container manager j’ai essayé en vain de mettre les même paramètres que vous et de créer le dossier data dans mealie. Je précise que j’utilise en parallèle les containers jellyfin et komga et je n’ai pas eu ces soucis.

        1. Enfin j’ai réussi dans container manager il faut l’installer en mode host et non bridge !!!
          Si ça peut servir.

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.