4.2 KiB
title, created, updated, type, tags, confidence, contested, sources
| title | created | updated | type | tags | confidence | contested | sources | ||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Tamari | 2026-06-08 | 2026-06-08 | app |
|
medium | false |
|
Tamari 🥢
Application web complète de gestion de recettes, en Python (Django), avec planification et liste de courses.
| Métadonnée | Valeur |
|---|---|
| Site web | https://tamariapp.com |
| GitHub | https://github.com/alexbates/Tamari |
| License | MIT |
| Langage | Python (Django) |
| Étoiles | 128 |
| Dernière MAJ | 2026-05-25 |
| Catégorie | cat-recipes |
Description
Tamari est une application web de recettes écrite en Python avec le framework Django, ce qui lui confère une base solide, mature et sécurisée. Le projet est l'œuvre d'Alex Bates et se positionne comme une alternative plus légère que Mealie, plus simple à déployer, tout en offrant les fonctionnalités essentielles d'un gestionnaire de recettes moderne.
L'application propose la création de recettes avec ingrédients structurés (nom, quantité, unité), les étapes numérotées, les photos, les tags, les catégories, le planning de repas, la liste de courses générée automatiquement à partir du planning, et l'import depuis URL avec parsing basique. L'interface est responsive et fonctionne aussi bien sur mobile que sur desktop.
Tamari utilise SQLite par défaut (zéro configuration) mais supporte aussi PostgreSQL/MySQL. L'API REST Django REST Framework est exposée pour des intégrations tierces (Home Assistant, scripts, CLI). C'est un bon choix pour un homelab qui veut un gestionnaire de recettes en Python pur sans la complexité de Mealie (FastAPI + Vue.js + plusieurs services).
Installation
Docker Compose
services:
tamari:
image: alexbates/tamari:latest
container_name: tamari
environment:
- DJANGO_SECRET_KEY=*** - DJANGO_DEBUG=False
- DJANGO_ALLOWED_HOSTS=tamari.example.com
- DATABASE_URL=sqlite:///db/tamari.sqlite3
- TZ=Europe/Paris
volumes:
- ./data/db:/app/db
- ./data/media:/app/media
ports:
- "8000:8000"
labels:
- traefik.enable=true
- traefik.http.routers.tamari.rule=Host(`tamari.example.com`)
- traefik.http.routers.tamari.entrypoints=websecure
- traefik.http.routers.tamari.tls.certresolver=letsencrypt
- traefik.http.services.tamari.loadbalancer.server.port=8000
restart: unless-stopped
Manuel
git clone https://github.com/alexbates/Tamari.git
cd Tamari && pip install -r requirements.txt
python manage.py migrate && python manage.py createsuperuser
python manage.py runserver 0.0.0.0:8000
Configuration
- Cloner le repo et installer les dépendances :
pip install -r requirements.txt. - Configurer
DJANGO_SECRET_KEYdans.env(openssl rand -hex 50). - Lancer les migrations :
python manage.py migrate. - Créer le super-utilisateur :
python manage.py createsuperuser. - (Production) Servir avec Gunicorn + Nginx ou via le compose ci-dessus.
Alternatives
- Open source : app-mealie (référence), app-vanilla-cookbook (PHP), app-norish (Next.js), app-bar-assistant (cocktails), Tandoor Recipes, Grocy, RecipeSage, Forkful, kptn, RecipeMD, Cooklang, Bakin Recipe, Mealie-Scrape.
- Propriétaire : Paprika Recipe Manager, CopyMeThat, Plan to Eat, Yummly, BigOven, Samsung Food, Mela (iOS), Crouton (iOS).
Sécurité
DJANGO_SECRET_KEY: clé critique, à regénérer et stocker dans un secret manager.DJANGO_DEBUG=Falseobligatoire en production.- HTTPS obligatoire via reverse proxy (Caddy, Traefik).
- CSRF/CSP : Django fournit des protections natives, à conserver activées.
- Backups : copier
./data/db(SQLite) ou utiliserpg_dumppour Postgres.
Ressources
- Code : https://github.com/alexbates/Tamari
- Site : https://tamariapp.com
- Issues : https://github.com/alexbates/Tamari/issues
Pages Liées
- cat-recipes — Catégorie parente
- app-mealie — Référence du domaine
- app-vanilla-cookbook — Alternative PHP
- recettes-docker-compose — Modèles de stacks