feat: Tandoor integration — settings, test connection, import, duplicate detection

Add TandoorClient (app/tandoor.py) with full recipe creation, image upload,
and duplicate detection via the Tandoor REST API. Settings page now has
separate Mealie and Tandoor sections. Import page shows both send buttons
based on which services are configured.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-02-24 09:29:58 +01:00
parent f7810ba33d
commit 458b1e362a
6 changed files with 476 additions and 68 deletions
+6 -3
View File
@@ -1,4 +1,4 @@
"""Configuration management — persists Mealie connection settings to a JSON file."""
"""Configuration management — persists Mealie and Tandoor connection settings to a JSON file."""
import json
import os
@@ -7,13 +7,16 @@ from pathlib import Path
DATA_DIR = Path(os.environ.get("DATA_DIR", "/data"))
CONFIG_FILE = DATA_DIR / "config.json"
# Optional internal URL for Docker-to-Docker API calls (avoids Cloudflare hairpin).
# The user-facing mealie_url is still used for browser links.
# Optional internal URLs for Docker-to-Docker API calls (avoids Cloudflare hairpin).
# The user-facing URLs are still used for browser links.
MEALIE_INTERNAL_URL = os.environ.get("MEALIE_INTERNAL_URL", "").strip().rstrip("/")
TANDOOR_INTERNAL_URL = os.environ.get("TANDOOR_INTERNAL_URL", "").strip().rstrip("/")
_DEFAULTS = {
"mealie_url": "",
"mealie_api_key": "",
"tandoor_url": "",
"tandoor_api_key": "",
}