Files
2026-06-09 18:40:21 +02:00

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
catalogue
recipes
self-hosted
python
medium false
https://tamariapp.com
https://github.com/alexbates/Tamari

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

  1. Cloner le repo et installer les dépendances : pip install -r requirements.txt.
  2. Configurer DJANGO_SECRET_KEY dans .env (openssl rand -hex 50).
  3. Lancer les migrations : python manage.py migrate.
  4. Créer le super-utilisateur : python manage.py createsuperuser.
  5. (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=False obligatoire 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 utiliser pg_dump pour Postgres.

Ressources

Pages Liées