From 8dc456dcdabb4adedaf7c61307b29fef83113e59 Mon Sep 17 00:00:00 2001 From: gyurix Date: Wed, 15 Jul 2026 13:37:21 +0200 Subject: [PATCH] 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",