diff --git a/openwebui/openwebui-secret.json b/openwebui/openwebui-secret.json index a096ff4..8d83bf7 100644 --- a/openwebui/openwebui-secret.json +++ b/openwebui/openwebui-secret.json @@ -5,12 +5,21 @@ "POSTGRES_PASSWORD": "#POSTGRES_PASSWORD", "POSTGRES_ROOT_PASSWORD": "#POSTGRES_ROOT_PASSWORD" }, + "openwebuisearxng": { + "SEARXNG_SECRET": "#SEARXNG_SECRET" + }, + "openwebuicrawl4ai": { + "CRAWL4AI_API_TOKEN": "#CRAWL4AI_API_TOKEN", + "SECRET_KEY": "#CRAWL4AI_SECRET" + }, "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..10271f4 100644 --- a/openwebui/template.json +++ b/openwebui/template.json @@ -55,6 +55,27 @@ "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": "Crawl4AI secret key", + "key": "CRAWL4AI_SECRET", + "value": "", + "required": "true", + "generated": "openssl|hex|32" + }, { "description": "Postgres database name", "key": "POSTGRES_DB",