Initial vault setup
This commit is contained in:
@@ -0,0 +1,95 @@
|
||||
---
|
||||
title: Tamari
|
||||
created: 2026-06-08
|
||||
updated: 2026-06-08
|
||||
type: app
|
||||
tags: [catalogue, recipes, self-hosted, python]
|
||||
confidence: medium
|
||||
contested: false
|
||||
sources:
|
||||
- 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
|
||||
```yaml
|
||||
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
|
||||
```bash
|
||||
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
|
||||
- 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
|
||||
Reference in New Issue
Block a user