From daa0fa8aa9f4ee5a7584d8a8a0a2a683e8a52243 Mon Sep 17 00:00:00 2001
From: Rohit Mulani <289630555+rohitmulani63-ops@users.noreply.github.com>
Date: Mon, 22 Jun 2026 19:33:10 +0400
Subject: [PATCH 1/4] feat: add Tandoor Recipes template
---
blueprints/tandoor-recipes/docker-compose.yml | 34 +++++++++++++++++++
.../tandoor-recipes/tandoor-recipes.svg | 5 +++
blueprints/tandoor-recipes/template.toml | 18 ++++++++++
meta.json | 17 ++++++++++
4 files changed, 74 insertions(+)
create mode 100644 blueprints/tandoor-recipes/docker-compose.yml
create mode 100644 blueprints/tandoor-recipes/tandoor-recipes.svg
create mode 100644 blueprints/tandoor-recipes/template.toml
diff --git a/blueprints/tandoor-recipes/docker-compose.yml b/blueprints/tandoor-recipes/docker-compose.yml
new file mode 100644
index 00000000..bb6eef24
--- /dev/null
+++ b/blueprints/tandoor-recipes/docker-compose.yml
@@ -0,0 +1,34 @@
+services:
+ tandoor-db:
+ image: postgres:16-alpine
+ restart: unless-stopped
+ environment:
+ POSTGRES_USER: ${POSTGRES_USER}
+ POSTGRES_PASSWORD: ${POSTGRES_PASSWORD}
+ POSTGRES_DB: ${POSTGRES_DB}
+ volumes:
+ - tandoor_db_data:/var/lib/postgresql/data
+
+ tandoor-recipes:
+ image: vabene1111/recipes:latest
+ restart: unless-stopped
+ depends_on:
+ - tandoor-db
+ environment:
+ SECRET_KEY: ${SECRET_KEY}
+ DB_ENGINE: django.db.backends.postgresql
+ POSTGRES_HOST: tandoor-db
+ POSTGRES_PORT: 5432
+ POSTGRES_USER: ${POSTGRES_USER}
+ POSTGRES_PASSWORD: ${POSTGRES_PASSWORD}
+ POSTGRES_DB: ${POSTGRES_DB}
+ volumes:
+ - tandoor_staticfiles:/opt/recipes/staticfiles
+ - tandoor_mediafiles:/opt/recipes/mediafiles
+ ports:
+ - "8080"
+
+volumes:
+ tandoor_db_data:
+ tandoor_staticfiles:
+ tandoor_mediafiles:
diff --git a/blueprints/tandoor-recipes/tandoor-recipes.svg b/blueprints/tandoor-recipes/tandoor-recipes.svg
new file mode 100644
index 00000000..5bc351bc
--- /dev/null
+++ b/blueprints/tandoor-recipes/tandoor-recipes.svg
@@ -0,0 +1,5 @@
+
diff --git a/blueprints/tandoor-recipes/template.toml b/blueprints/tandoor-recipes/template.toml
new file mode 100644
index 00000000..c8c45aa5
--- /dev/null
+++ b/blueprints/tandoor-recipes/template.toml
@@ -0,0 +1,18 @@
+[variables]
+main_domain = "${domain}"
+secret_key = "${password:64}"
+postgres_password = "${password:32}"
+
+[config]
+mounts = []
+
+[[config.domains]]
+serviceName = "tandoor-recipes"
+port = 8080
+host = "${main_domain}"
+
+[config.env]
+SECRET_KEY = "${secret_key}"
+POSTGRES_PASSWORD = "${postgres_password}"
+POSTGRES_USER = "tandoor"
+POSTGRES_DB = "tandoor"
diff --git a/meta.json b/meta.json
index 8be7825d..5187923c 100644
--- a/meta.json
+++ b/meta.json
@@ -6076,6 +6076,23 @@
"network"
]
},
+ {
+ "id": "tandoor-recipes",
+ "name": "Tandoor Recipes",
+ "version": "latest",
+ "description": "Tandoor Recipes is a self-hosted recipe manager, meal planner, and shopping list application.",
+ "logo": "tandoor-recipes.svg",
+ "links": {
+ "github": "https://github.com/TandoorRecipes/recipes",
+ "website": "https://tandoor.dev/",
+ "docs": "https://docs.tandoor.dev/"
+ },
+ "tags": [
+ "recipes",
+ "meal-planning",
+ "self-hosted"
+ ]
+ },
{
"id": "teable",
"name": "teable",
From 7c8950a2532bff0b5618f3c839c6326faf91d5d3 Mon Sep 17 00:00:00 2001
From: Rohit Mulani <289630555+rohitmulani63-ops@users.noreply.github.com>
Date: Tue, 23 Jun 2026 00:20:23 +0400
Subject: [PATCH 2/4] chore: pin tandoor-recipes template version
---
blueprints/tandoor-recipes/docker-compose.yml | 2 +-
meta.json | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/blueprints/tandoor-recipes/docker-compose.yml b/blueprints/tandoor-recipes/docker-compose.yml
index bb6eef24..85339b56 100644
--- a/blueprints/tandoor-recipes/docker-compose.yml
+++ b/blueprints/tandoor-recipes/docker-compose.yml
@@ -10,7 +10,7 @@ services:
- tandoor_db_data:/var/lib/postgresql/data
tandoor-recipes:
- image: vabene1111/recipes:latest
+ image: vabene1111/recipes:2.6.11
restart: unless-stopped
depends_on:
- tandoor-db
diff --git a/meta.json b/meta.json
index 5187923c..ef33891c 100644
--- a/meta.json
+++ b/meta.json
@@ -6079,7 +6079,7 @@
{
"id": "tandoor-recipes",
"name": "Tandoor Recipes",
- "version": "latest",
+ "version": "2.6.11",
"description": "Tandoor Recipes is a self-hosted recipe manager, meal planner, and shopping list application.",
"logo": "tandoor-recipes.svg",
"links": {
From 52f765898eb9dc418aac21b1636dad27e7900239 Mon Sep 17 00:00:00 2001
From: Rohit Mulani <289630555+rohitmulani63-ops@users.noreply.github.com>
Date: Tue, 7 Jul 2026 23:23:40 +0400
Subject: [PATCH 3/4] Fix Tandoor Recipes service port
---
blueprints/tandoor-recipes/docker-compose.yml | 4 +++-
blueprints/tandoor-recipes/template.toml | 4 +++-
2 files changed, 6 insertions(+), 2 deletions(-)
diff --git a/blueprints/tandoor-recipes/docker-compose.yml b/blueprints/tandoor-recipes/docker-compose.yml
index 85339b56..4bfd1d3b 100644
--- a/blueprints/tandoor-recipes/docker-compose.yml
+++ b/blueprints/tandoor-recipes/docker-compose.yml
@@ -22,11 +22,13 @@ services:
POSTGRES_USER: ${POSTGRES_USER}
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD}
POSTGRES_DB: ${POSTGRES_DB}
+ ALLOWED_HOSTS: ${ALLOWED_HOSTS}
+ CSRF_TRUSTED_ORIGINS: ${CSRF_TRUSTED_ORIGINS}
volumes:
- tandoor_staticfiles:/opt/recipes/staticfiles
- tandoor_mediafiles:/opt/recipes/mediafiles
ports:
- - "8080"
+ - "80"
volumes:
tandoor_db_data:
diff --git a/blueprints/tandoor-recipes/template.toml b/blueprints/tandoor-recipes/template.toml
index c8c45aa5..1484b958 100644
--- a/blueprints/tandoor-recipes/template.toml
+++ b/blueprints/tandoor-recipes/template.toml
@@ -8,11 +8,13 @@ mounts = []
[[config.domains]]
serviceName = "tandoor-recipes"
-port = 8080
+port = 80
host = "${main_domain}"
[config.env]
SECRET_KEY = "${secret_key}"
+ALLOWED_HOSTS = "${main_domain}"
+CSRF_TRUSTED_ORIGINS = "https://${main_domain}"
POSTGRES_PASSWORD = "${postgres_password}"
POSTGRES_USER = "tandoor"
POSTGRES_DB = "tandoor"
From 0b7511f79c6cebb85207caf6d570d07bba073777 Mon Sep 17 00:00:00 2001
From: Mauricio Siu
Date: Wed, 8 Jul 2026 00:31:53 -0600
Subject: [PATCH 4/4] =?UTF-8?q?fix:=20tandoor=20listens=20on=20unix=20sock?=
=?UTF-8?q?et=20by=20default=20=E2=80=94=20bind=20gunicorn=20to=20TCP=2080?=
=?UTF-8?q?80?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
The vabene1111/recipes 2.x image starts gunicorn on unix:/tmp/tandoor.sock
unless TANDOOR_PORT is set, so Traefik got 502. Set TANDOOR_PORT=8080 and
point the domain to 8080 (80 was never listening).
Deploy-tested on a Dokploy instance: HTTP 200, setup page renders.
Co-Authored-By: Claude Fable 5
---
blueprints/tandoor-recipes/docker-compose.yml | 3 ++-
blueprints/tandoor-recipes/template.toml | 2 +-
2 files changed, 3 insertions(+), 2 deletions(-)
diff --git a/blueprints/tandoor-recipes/docker-compose.yml b/blueprints/tandoor-recipes/docker-compose.yml
index 4bfd1d3b..d945fd92 100644
--- a/blueprints/tandoor-recipes/docker-compose.yml
+++ b/blueprints/tandoor-recipes/docker-compose.yml
@@ -16,6 +16,7 @@ services:
- tandoor-db
environment:
SECRET_KEY: ${SECRET_KEY}
+ TANDOOR_PORT: "8080"
DB_ENGINE: django.db.backends.postgresql
POSTGRES_HOST: tandoor-db
POSTGRES_PORT: 5432
@@ -28,7 +29,7 @@ services:
- tandoor_staticfiles:/opt/recipes/staticfiles
- tandoor_mediafiles:/opt/recipes/mediafiles
ports:
- - "80"
+ - "8080"
volumes:
tandoor_db_data:
diff --git a/blueprints/tandoor-recipes/template.toml b/blueprints/tandoor-recipes/template.toml
index 1484b958..55d3e011 100644
--- a/blueprints/tandoor-recipes/template.toml
+++ b/blueprints/tandoor-recipes/template.toml
@@ -8,7 +8,7 @@ mounts = []
[[config.domains]]
serviceName = "tandoor-recipes"
-port = 80
+port = 8080
host = "${main_domain}"
[config.env]