{"id":50630990,"url":"https://github.com/sargo22341-prog/umami","last_synced_at":"2026-06-06T22:00:28.906Z","repository":{"id":353409293,"uuid":"1219298763","full_name":"sargo22341-prog/umami","owner":"sargo22341-prog","description":"Frontend Mealie","archived":false,"fork":false,"pushed_at":"2026-05-17T14:41:22.000Z","size":5181,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-05-17T15:49:55.422Z","etag":null,"topics":["docker","docker-compose","mealie","recpies","typescript"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/sargo22341-prog.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-04-23T18:26:47.000Z","updated_at":"2026-05-17T14:42:42.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/sargo22341-prog/umami","commit_stats":null,"previous_names":["sargo22341-prog/umami"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/sargo22341-prog/umami","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sargo22341-prog%2Fumami","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sargo22341-prog%2Fumami/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sargo22341-prog%2Fumami/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sargo22341-prog%2Fumami/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/sargo22341-prog","download_url":"https://codeload.github.com/sargo22341-prog/umami/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sargo22341-prog%2Fumami/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34001197,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-06T02:00:07.033Z","response_time":107,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["docker","docker-compose","mealie","recpies","typescript"],"created_at":"2026-06-06T22:00:17.444Z","updated_at":"2026-06-06T22:00:28.895Z","avatar_url":"https://github.com/sargo22341-prog.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cp align=\"center\"\u003e\n  \u003cimg src=\"./public/logo_umami.png\" width=\"120\" alt=\"Umami logo\" /\u003e\n\u003c/p\u003e\n\n\u003ch1 align=\"center\"\u003eUmami\u003c/h1\u003e\n\nUmami est une interface web locale pour piloter et enrichir une instance Mealie. Le projet part de [bonap](https://github.com/AymericLeFeyer/bonap), puis ajoute une couche plus orientee cuisine quotidienne : exploration de recettes, imports aides, planning, courses, favoris, statistiques, mode cuisine et outils de nettoyage.\n\n## Warning\n\nCe projet est **vibe-coded** et doit rester un outil personnel/local. Ne l'exposez pas directement sur Internet.\n\nGardez Umami derriere votre reseau local, un VPN ou un acces protege, et evitez de publier l'application telle quelle sur un domaine public. Elle manipule une session Mealie, des recettes, des courses et des donnees personnelles de cuisine : le bon usage est une installation maison, locale, controlee.\n\n## Presentation\n\nUmami sert de compagnon a Mealie : il ne remplace pas votre base Mealie, il la rend plus agreable a utiliser au quotidien.\n\n\u003cp\u003e\n  \u003cimg src=\"./public/screenshots/home.png\" alt=\"Liste des recettes Umami\" width=\"49%\" /\u003e\n  \u003cimg src=\"./public/screenshots/recette.png\" alt=\"Detail d'une recette Umami\" width=\"49%\" /\u003e\n\u003c/p\u003e\n\u003cp\u003e\n  \u003cimg src=\"./public/screenshots/mode-cuisine.png\" alt=\"Mode cuisine etape par etape\" width=\"49%\" /\u003e\n  \u003cimg src=\"./public/screenshots/planning.png\" alt=\"Planning hebdomadaire\" width=\"49%\" /\u003e\n\u003c/p\u003e\n\nLes grandes lignes :\n\n- Catalogue de recettes avec recherche, filtres, tri, favoris, notes et affichage en grille ajustable.\n- Detail de recette enrichi avec nutrition, ingredients, temps, description, synchronisation Mealie et acces aux assets.\n- Mode cuisine etape par etape, avec les ingredients utiles par etape.\n- Ajout d'images aux etapes de preparation.\n- Ajout possible de videos aux etapes, notamment via l'import video Jow, fonctionnalite non disponible nativement dans Mealie.\n- Planning hebdomadaire avec repas par creneau, duplication, suppression et ajout au panier.\n- Liste de courses plus pratique, avec cellier pour deduire ce que vous avez deja et elements habituels que vous ajoutez souvent.\n- Statistiques et tris utiles : recettes jamais planifiees, repartition par categories, couverture du catalogue, calories et donnees nutritionnelles quand elles sont disponibles.\n\n## Explorer et importer\n\nLa page Explorer permet de chercher des recettes sur des sources externes puis de les importer dans Mealie avec une revue des ingredients.\n\nSites compatibles :\n\n- Marmiton\n- Jow\n- 750g\n\nFonctions autour de l'import :\n\n- Recherche distante par source.\n- Import depuis URL compatible.\n- Detection et revue des ingredients avant creation.\n- Import automatique d'image quand la source fournit une image exploitable.\n- Normalisation des noms, quantites et unites quand c'est possible.\n- Detection de doublons pour eviter de recreer une recette deja presente.\n- Pour Jow : import supplementaire des videos et des chapitres, afin d'associer des medias aux etapes.\n\n## Donnees et maintenance\n\nUmami ajoute plusieurs outils pour mieux maintenir une base Mealie qui grandit :\n\n- Tags auto-nettoyants pour reduire les doublons, variantes et libelles inutiles.\n- Fonctions de fusion pour rapprocher des aliments, tags, unites ou categories similaires.\n- Gestion du cellier : les courses peuvent tenir compte des produits deja disponibles.\n- Gestion des elements habituels : pratique pour les achats recurrents qui ne viennent pas toujours d'une recette.\n- Analyse des calories et tags nutritionnels, zone que Mealie ne couvre pas toujours selon les donnees importees.\n- Liens ingredients/etapes pour savoir quels ingredients sont utilises a chaque moment de la recette.\n- Filtres et tris supplementaires pour retrouver plus vite les recettes utiles.\n- Pages de maintenance pour categories, aliments, labels, tags, unites et ustensiles.\n\n## Lancement local\n\nPrerequis :\n\n- Node.js\n- npm\n- Une instance Mealie accessible depuis votre machine\n\nInstallation :\n\n```bash\nnpm install\n```\n\nDemarrage en developpement :\n\n```bash\nnpm run dev\n```\n\nScripts utiles :\n\n- `npm run dev` : lance le frontend Vite et le proxy de recherche.\n- `npm run dev:frontend` : lance uniquement le frontend Vite.\n- `npm run dev:proxy` : lance uniquement le proxy de recherche de recettes.\n- `npm run build` : genere le build de production.\n- `npm run lint` : verifie le code avec ESLint.\n- `npm run preview` : previsualise le build.\n\n## Docker\n\nExemple avec une instance Mealie deja existante :\n\n```yaml\nservices:\n  umami:\n    image: ghcr.io/sargo22341-prog/umami:latest\n    depends_on:\n      - recipes-search-proxy\n    ports:\n      - \"3000:80\"\n    environment:\n      VITE_MEALIE_URL: \"http://mon-mealie:9000\"\n      VITE_THEME: \"system\"\n      VITE_ACCENT_COLORS: \"orange\"\n    restart: unless-stopped\n\n  recipes-search-proxy:\n    image: ghcr.io/sargo22341-prog/umami-recipes-search-proxy:latest\n    restart: unless-stopped\n```\n\nExemple complet avec Mealie :\n\n```yaml\nservices:\n  mealie:\n    image: ghcr.io/mealie-recipes/mealie:latest\n    ports:\n      - \"9000:9000\"\n    volumes:\n      - mealie-data:/app/data\n    environment:\n      ALLOW_SIGNUP: \"false\"\n      BASE_URL: \"http://localhost:9000\"\n      TZ: \"Europe/Paris\"\n    restart: unless-stopped\n\n  umami:\n    image: ghcr.io/sargo22341-prog/umami:latest\n    depends_on:\n      - recipes-search-proxy\n    ports:\n      - \"3000:80\"\n    environment:\n      VITE_MEALIE_URL: \"http://localhost:9000\"\n      VITE_THEME: \"system\"\n      VITE_ACCENT_COLORS: \"orange\"\n    restart: unless-stopped\n\n  recipes-search-proxy:\n    image: ghcr.io/sargo22341-prog/umami-recipes-search-proxy:latest\n    restart: unless-stopped\n\nvolumes:\n  mealie-data:\n```\n\nPour builder localement au lieu d'utiliser les images :\n\n```yaml\nservices:\n  umami:\n    build:\n      context: .\n      target: runner\n\n  recipes-search-proxy:\n    build:\n      context: .\n      target: recipes-search-proxy\n```\n\nDemarrage :\n\n```bash\ndocker compose up -d\n```\n\n## Variables d'environnement\n\nLes variables sont injectees au runtime Docker par `docker-entrypoint.sh` dans `env-config.js`. En developpement, Vite utilise les variables `VITE_*` disponibles dans l'environnement.\n\n| Variable | Obligatoire | Valeur par defaut | Exemple | Description |\n| --- | --- | --- | --- | --- |\n| `VITE_MEALIE_URL` | Oui | `\"\"` | `http://localhost:9000` | URL de votre instance Mealie. En dev, sert aussi de cible au proxy `/api`. |\n| `VITE_THEME` | Non | `system` | `light`, `dark`, `system` | Theme initial si l'utilisateur n'a rien choisi dans le navigateur. |\n| `VITE_ACCENT_COLORS` | Non | `orange` | `orange`, `blue`, `violet`, `green`, `rose`, `teal`, `amber`, `indigo`, `rgba(223, 89, 27, 1)` | Couleur d'accent initiale. Accepte un preset ou une couleur CSS valide. |\n\nNotes :\n\n- Le proxy de recherche ecoute en interne sur le port `3001`.\n- Le conteneur frontend expose Nginx sur le port `80`; le `docker-compose.yml` fourni le publie sur `3000`.\n- Les choix faits dans l'interface peuvent etre conserves dans le `localStorage` du navigateur et prendre le dessus sur les valeurs par defaut.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsargo22341-prog%2Fumami","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsargo22341-prog%2Fumami","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsargo22341-prog%2Fumami/lists"}