From 8dc456dcdabb4adedaf7c61307b29fef83113e59 Mon Sep 17 00:00:00 2001 From: gyurix Date: Wed, 15 Jul 2026 13:37:21 +0200 Subject: [PATCH 1/2] feat(openwebui): integrate searxng and crawl4ai, rename containers for consistency Added new searxng and crawl4ai services with their secrets and environment variables for web search and crawling. Updated existing container names to use `-app` suffix and adjusted references. Added necessary directory creation for new services. --- openwebui/openwebui-secret.json | 10 +++- openwebui/service-openwebui.json | 88 ++++++++++++++++++++++++++++---- openwebui/template.json | 14 +++++ 3 files changed, 101 insertions(+), 11 deletions(-) diff --git a/openwebui/openwebui-secret.json b/openwebui/openwebui-secret.json index a096ff4..e85b232 100644 --- a/openwebui/openwebui-secret.json +++ b/openwebui/openwebui-secret.json @@ -5,12 +5,20 @@ "POSTGRES_PASSWORD": "#POSTGRES_PASSWORD", "POSTGRES_ROOT_PASSWORD": "#POSTGRES_ROOT_PASSWORD" }, + "openwebuisearxng": { + "SEARXNG_SECRET": "#SEARXNG_SECRET" + }, + "openwebuicrawl4ai": { + "CRAWL4AI_API_TOKEN": "#CRAWL4AI_API_TOKEN" + }, "openwebuiapp": { "WEBUI_ADMIN_NAME": "#WEBUI_ADMIN_NAME", "WEBUI_ADMIN_EMAIL": "#WEBUI_ADMIN_EMAIL", "WEBUI_ADMIN_PASSWORD": "#WEBUI_ADMIN_PASSWORD", "WEBUI_SECRET_KEY": "#WEBUI_SECRET_KEY", "OPENAI_API_KEY": "#OPENAI_API_KEY", - "DATABASE_URL": "postgres://#POSTGRES_USER:#POSTGRES_PASSWORD@openwebuipostgres-db:5432/#POSTGRES_DB" + "DATABASE_URL": "postgres://#POSTGRES_USER:#POSTGRES_PASSWORD@openwebuipostgres-db:5432/#POSTGRES_DB", + "EXTERNAL_WEB_SEARCH_API_KEY": "#SEARXNG_SECRET", + "EXTERNAL_WEB_LOADER_API_KEY": "#CRAWL4AI_API_TOKEN" } } \ No newline at end of file diff --git a/openwebui/service-openwebui.json b/openwebui/service-openwebui.json index ef91915..ff3e4ca 100644 --- a/openwebui/service-openwebui.json +++ b/openwebui/service-openwebui.json @@ -24,7 +24,7 @@ ], "START_ON_BOOT": "false", "ENTRYPOINT": "sh -c", - "CMD": "mkdir -p /etc/user/data/openwebui/data && mkdir -p /etc/user/data/openwebui/db && mkdir -p /etc/user/data/openwebui/pipelines && mkdir -p /etc/user/data/openwebui/qdrant", + "CMD": "mkdir -p /etc/user/data/openwebui/data && mkdir -p /etc/user/data/openwebui/db && mkdir -p /etc/user/data/openwebui/pipelines && mkdir -p /etc/user/data/openwebui/qdrant && mkdir -p /etc/user/data/openwebui/searxng && mkdir -p /etc/user/data/openwebui/crawl4ai", "PRE_START": "null", "POST_START": "null" }, @@ -62,10 +62,10 @@ { "IMAGE": "qdrant/qdrant:latest", "UPDATE": "true", - "NAME": "openwebui-qdrant", + "NAME": "openwebuiqdrant-app", "MEMORY": "1024M", "NETWORK": "openwebui-net", - "SELECTOR": "openwebui-qdrant", + "SELECTOR": "openwebuiqdrant-app", "VOLUMES": [ { "SOURCE": "/etc/user/data/openwebui/qdrant", @@ -95,10 +95,10 @@ { "IMAGE": "ghcr.io/open-webui/pipelines:main", "UPDATE": "true", - "NAME": "openwebui-pipelines", + "NAME": "openwebuipipelines-app", "MEMORY": "1024M", "NETWORK": "openwebui-net", - "SELECTOR": "openwebui-pipelines", + "SELECTOR": "openwebuipipelines-app", "VOLUMES": [ { "SOURCE": "/etc/user/data/openwebui/pipelines", @@ -121,13 +121,13 @@ "VECTOR_DB": "qdrant" }, { - "QDRANT_HOST": "openwebui-qdrant" + "QDRANT_HOST": "openwebuiqdrant-app" }, { "QDRANT_PORT": "6333" }, { - "QDRANT_URI": "http://openwebui-qdrant:6333" + "QDRANT_URI": "http://openwebuiqdrant-app:6333" } ], "EXTRA": "--restart always", @@ -137,6 +137,68 @@ "PRE_START": "null", "POST_START": "null" }, + { + "IMAGE": "searxng/searxng:latest", + "UPDATE": "true", + "NAME": "openwebuisearxng-app", + "MEMORY": "512M", + "NETWORK": "openwebui-net", + "SELECTOR": "openwebuisearxng-app", + "VOLUMES": [ + { + "SOURCE": "/etc/user/data/openwebui/searxng", + "DEST": "/etc/searxng", + "TYPE": "rw" + } + ], + "PORTS": [ + { + "SOURCE": "null", + "DEST": "8080", + "TYPE": "tcp" + } + ], + "ENV_FILES": [ + "/etc/user/secret/openwebui/openwebui.json" + ], + "EXTRA": "--restart always", + "DEPEND": [], + "START_ON_BOOT": "false", + "CMD": "null", + "PRE_START": "null", + "POST_START": "null" + }, + { + "IMAGE": "unclecode/crawl4ai:latest", + "UPDATE": "true", + "NAME": "openwebuicrawl4ai-app", + "MEMORY": "1024M", + "NETWORK": "openwebui-net", + "SELECTOR": "openwebuicrawl4ai-app", + "VOLUMES": [ + { + "SOURCE": "/etc/user/data/openwebui/crawl4ai", + "DEST": "/app/data", + "TYPE": "rw" + } + ], + "PORTS": [ + { + "SOURCE": "null", + "DEST": "11235", + "TYPE": "tcp" + } + ], + "ENV_FILES": [ + "/etc/user/secret/openwebui/openwebui.json" + ], + "EXTRA": "--restart always", + "DEPEND": [], + "START_ON_BOOT": "false", + "CMD": "null", + "PRE_START": "null", + "POST_START": "null" + }, { "IMAGE": "ghcr.io/open-webui/open-webui:main", "UPDATE": "true", @@ -166,19 +228,25 @@ "VECTOR_DB": "qdrant" }, { - "QDRANT_HOST": "openwebui-qdrant" + "QDRANT_HOST": "openwebuiqdrant-app" }, { "QDRANT_PORT": "6333" }, { - "QDRANT_URI": "http://openwebui-qdrant:6333" + "QDRANT_URI": "http://openwebuiqdrant-app:6333" }, { "ENABLE_RAG_PIPELINE": "True" }, { - "RAG_PIPELINE_URL": "http://openwebui-pipelines:9099/v1" + "RAG_PIPELINE_URL": "http://openwebuipipelines-app:9099/v1" + }, + { + "WEB_SEARCH_ENGINE": "http://openwebuisearxng-app:8080/search?q=" + }, + { + "EXTERNAL_WEB_LOADER_URL": "http://openwebuicrawl4ai-app:11235" } ], "ENV_FILES": [ diff --git a/openwebui/template.json b/openwebui/template.json index da91779..330969c 100644 --- a/openwebui/template.json +++ b/openwebui/template.json @@ -55,6 +55,20 @@ "advanced": "true", "type": "password" }, + { + "description": "SearXNG secret key", + "key": "SEARXNG_SECRET", + "value": "", + "required": "true", + "generated": "openssl|hex|32" + }, + { + "description": "Crawl4AI API token", + "key": "CRAWL4AI_API_TOKEN", + "value": "", + "required": "true", + "generated": "random|md5|24" + }, { "description": "Postgres database name", "key": "POSTGRES_DB", -- 2.49.1 From 64fad037aef1af6adacdf4bda074e62860337989 Mon Sep 17 00:00:00 2001 From: gyurix Date: Wed, 15 Jul 2026 13:52:05 +0200 Subject: [PATCH 2/2] feat(openwebui): add CRAWL4AI_SECRET for Crawl4AI service Add a new required secret key `SECRET_KEY` referencing `CRAWL4AI_SECRET` in the openwebui-secret configuration, and define the corresponding template entry with generation via `openssl hex 32`. This enables secure authentication for the Crawl4AI integration. --- openwebui/openwebui-secret.json | 3 ++- openwebui/template.json | 7 +++++++ 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/openwebui/openwebui-secret.json b/openwebui/openwebui-secret.json index e85b232..8d83bf7 100644 --- a/openwebui/openwebui-secret.json +++ b/openwebui/openwebui-secret.json @@ -9,7 +9,8 @@ "SEARXNG_SECRET": "#SEARXNG_SECRET" }, "openwebuicrawl4ai": { - "CRAWL4AI_API_TOKEN": "#CRAWL4AI_API_TOKEN" + "CRAWL4AI_API_TOKEN": "#CRAWL4AI_API_TOKEN", + "SECRET_KEY": "#CRAWL4AI_SECRET" }, "openwebuiapp": { "WEBUI_ADMIN_NAME": "#WEBUI_ADMIN_NAME", diff --git a/openwebui/template.json b/openwebui/template.json index 330969c..10271f4 100644 --- a/openwebui/template.json +++ b/openwebui/template.json @@ -69,6 +69,13 @@ "required": "true", "generated": "random|md5|24" }, + { + "description": "Crawl4AI secret key", + "key": "CRAWL4AI_SECRET", + "value": "", + "required": "true", + "generated": "openssl|hex|32" + }, { "description": "Postgres database name", "key": "POSTGRES_DB", -- 2.49.1