Files
default-applications-tree/openwebui/template.json
gyurix 7ffb4a598a feat(openwebui): add web search config and pipelines secret
- Introduce `PIPELINES_API_KEY` in the secrets file to secure pipelines communication
- Replace hardcoded RAG and web search URLs with template variables, enabling flexible configuration
- Add new template variables (`ENABLE_WEB_SEARCH`, `WEB_SEARCH_ENGINE`, `WEB_LOADER_ENGINE`, `SEARXNG_QUERY_URL`, `EXTERNAL_WEB_LOADER_URL`) with defaults
- Include OpenWebUI secret env file in the service definition for consistent secret injection
- Set `ENABLE_PERSISTENT_CONFIG` to false to align with the parametrized deployment approach

These changes decouple service endpoints from the deployment template, allowing users to easily customize web search and RAG integrations without modifying service definitions.
2026-07-16 15:08:13 +02:00

143 lines
7.6 KiB
JSON

{
"name": "OpenWebUI",
"title": "Open WebUI",
"subtitle": "AI Chat Interface",
"description": "Open WebUI is a user-friendly WebUI for LLMs (formerly Ollama WebUI). It supports various LLM runners including OpenAI compatible APIs, with features like RAG, multi-modal support, and a powerful pipeline system.",
"icon": "data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTgiIGhlaWdodD0iNTkiIHZpZXdCb3g9IjAgMCA1OCA1OSIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPGcgZmlsdGVyPSJ1cmwoI2ZpbHRlcjBfZF85XzYyKSI+CjxnIGZpbHRlcj0idXJsKCNmaWx0ZXIxX2RfOV82MikiPgo8cmVjdCB4PSI0IiB5PSIxIiB3aWR0aD0iNTAiIGhlaWdodD0iNTAiIHJ4PSI3IiBmaWxsPSJ3aGl0ZSIvPgo8L2c+CjxwYXRoIGZpbGwtcnVsZT0iZXZlbm9kZCIgY2xpcC1ydWxlPSJldmVub2RkIiBkPSJNMzUuMTcxNyAyNS43NUMzNS4xNzE3IDMxLjEzNDEgMzAuODc5NiAzNS41IDI1LjU4NTMgMzUuNUMyMC4yOTIyIDM1LjUgMTYgMzEuMTM0MSAxNiAyNS43NUMxNiAyMC4zNjU4IDIwLjI5MjIgMTYgMjUuNTg1MyAxNkMzMC44Nzk2IDE2IDM1LjE3MTcgMjAuMzY1OCAzNS4xNzE3IDI1Ljc1Wk0zMS4yMzI3IDI1Ljc1QzMxLjIzMjcgMjguOTIyIDI4LjcwNDIgMzEuNDkyNyAyNS41ODUzIDMxLjQ5MjdDMjIuNDY3NSAzMS40OTI3IDE5LjkzOSAyOC45MjIgMTkuOTM5IDI1Ljc1QzE5LjkzOSAyMi41NzggMjIuNDY3NSAyMC4wMDcyIDI1LjU4NTMgMjAuMDA3MkMyOC43MDUzIDIwLjAwNzIgMzEuMjMyNyAyMi41NzggMzEuMjMyNyAyNS43NVoiIGZpbGw9ImJsYWNrIi8+CjxwYXRoIGZpbGwtcnVsZT0iZXZlbm9kZCIgY2xpcC1ydWxlPSJldmVub2RkIiBkPSJNNDIuMDAwMSAxNkgzOC4zMjMyVjM1LjVINDIuMDAwMVYxNloiIGZpbGw9ImJsYWNrIi8+CjwvZz4KPGRlZnM+CjxmaWx0ZXIgaWQ9ImZpbHRlcjBfZF85XzYyIiB4PSIyIiB5PSIwIiB3aWR0aD0iNTQiIGhlaWdodD0iNTQiIGZpbHRlclVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgY29sb3ItaW50ZXJwb2xhdGlvbi1maWx0ZXJzPSJzUkdCIj4KPGZlRmxvb2QgZmxvb2Qtb3BhY2l0eT0iMCIgcmVzdWx0PSJCYWNrZ3JvdW5kSW1hZ2VGaXgiLz4KPGZlQ29sb3JNYXRyaXggaW49IlNvdXJjZUFscGhhIiB0eXBlPSJtYXRyaXgiIHZhbHVlcz0iMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMTI3IDAiIHJlc3VsdD0iaGFyZEFscGhhIi8+CjxmZU9mZnNldCBkeT0iMSIvPgo8ZmVHYXVzc2lhbkJsdXIgc3RkRGV2aWF0aW9uPSIxIi8+CjxmZUNvbXBvc2l0ZSBpbjI9ImhhcmRBbHBoYSIgb3BlcmF0b3I9Im91dCIvPgo8ZmVDb2xvck1hdHJpeCB0eXBlPSJtYXRyaXgiIHZhbHVlcz0iMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMC4yNSAwIi8+CjxmZUJsZW5kIG1vZGU9Im5vcm1hbCIgaW4yPSJCYWNrZ3JvdW5kSW1hZ2VGaXgiIHJlc3VsdD0iZWZmZWN0MV9kcm9wU2hhZG93XzlfNjIiLz4KPGZlQmxlbmQgbW9kZT0ibm9ybWFsIiBpbj0iU291cmNlR3JhcGhpYyIgaW4yPSJlZmZlY3QxX2Ryb3BTaGFkb3dfOV82MiIgcmVzdWx0PSJzaGFwZSIvPgo8L2ZpbHRlcj4KPGZpbHRlciBpZD0iZmlsdGVyMV9kXzlfNjIiIHg9IjAiIHk9IjEiIHdpZHRoPSI1OCIgaGVpZ2h0PSI1OCIgZmlsdGVyVW5pdHM9InVzZXJTcGFjZU9uVXNlIiBjb2xvci1pbnRlcnBvbGF0aW9uLWZpbHRlcnM9InNSR0IiPgo8ZmVGbG9vZCBmbG9vZC1vcGFjaXR5PSIwIiByZXN1bHQ9IkJhY2tncm91bmRJbWFnZUZpeCIvPgo8ZmVDb2xvck1hdHJpeCBpbj0iU291cmNlQWxwaGEiIHR5cGU9Im1hdHJpeCIgdmFsdWVzPSIwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAxMjcgMCIgcmVzdWx0PSJoYXJkQWxwaGEiLz4KPGZlT2Zmc2V0IGR5PSI0Ii8+CjxmZUdhdXNzaWFuQmx1ciBzdGREZXZpYXRpb249IjIiLz4KPGZlQ29tcG9zaXRlIGluMj0iaGFyZEFscGhhIiBvcGVyYXRvcj0ib3V0Ii8+CjxmZUNvbG9yTWF0cml4IHR5cGU9Im1hdHJpeCIgdmFsdWVzPSIwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwLjI1IDAiLz4KPGZlQmxlbmQgbW9kZT0ibm9ybWFsIiBpbjI9IkJhY2tncm91bmRJbWFnZUZpeCIgcmVzdWx0PSJlZmZlY3QxX2Ryb3BTaGFkb3dfOV82MiIvPgo8ZmVCbGVuZCBtb2RlPSJub3JtYWwiIGluPSJTb3VyY2VHcmFwaGljIiBpbjI9ImVmZmVjdDFfZHJvcFNoYWRvd185XzYyIiByZXN1bHQ9InNoYXBlIi8+CjwvZmlsdGVyPgo8L2RlZnM+Cjwvc3ZnPgo=",
"fields": [
{
"description": "Domain",
"key": "DOMAIN",
"value": "",
"required": "true"
},
{
"description": "Admin email address",
"key": "WEBUI_ADMIN_EMAIL",
"value": "",
"info": "The initial admin email address for Open WebUI.",
"required": "true"
},
{
"description": "Displayed username",
"key": "WEBUI_ADMIN_NAME",
"value": "",
"info": "The initial displayed username for Open WebUI.",
"required": "true"
},
{
"description": "Admin password",
"key": "WEBUI_ADMIN_PASSWORD",
"value": "",
"info": "The initial admin password for Open WebUI.",
"required": "true",
"type": "password"
},
{
"description": "OpenAI compatible API endpoint",
"key": "OPENAI_API_BASE_URL",
"value": "",
"info": "Optional API url for OpenAI compatible API endpoint.",
"advanced": "true"
},
{
"description": "WebUI secret key",
"key": "WEBUI_SECRET_KEY",
"value": "",
"required": "true",
"generated": "openssl|hex|32"
},
{
"description": "OpenAI API key",
"key": "OPENAI_API_KEY",
"value": "",
"info": "Optional API key for OpenAI compatible API endpoint.",
"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",
"value": "",
"required": "true",
"generated": "time|md5|8"
},
{
"description": "Postgres username",
"key": "POSTGRES_USER",
"value": "",
"required": "true",
"generated": "time|md5|8"
},
{
"description": "Postgres password for user",
"key": "POSTGRES_PASSWORD",
"value": "",
"required": "true",
"generated": "random|md5|12"
},
{
"description": "Postgres root user password",
"key": "POSTGRES_ROOT_PASSWORD",
"value": "",
"required": "true",
"generated": "random|sha256|20"
},
{
"description": "Enable web search",
"key": "ENABLE_WEB_SEARCH",
"value": "true",
"info": "Optional web search enabling, keep it empty if you don't want it",
"advanced": "true"
},
{
"description": "Web search engine",
"key": "WEB_SEARCH_ENGINE",
"value": "searxng",
"info": "Optional web search engine Searxng, keep it empty if you don't want it or define any other if you have",
"advanced": "true"
},
{
"description": "External web search engine",
"key": "WEB_LOADER_ENGINE",
"value": "external",
"info": "If optional web search engine defined, keep it as is, otherwise keep it empty",
"advanced": "true"
},
{
"description": "Web",
"key": "SEARXNG_QUERY_URL",
"value": "http://openwebuisearxng-app:8080/search?q=<query>",
"info": "Optional web search engine Searxng, keep it empty if you don't want it",
"advanced": "true"
},
{
"description": "External web search engine",
"key": "EXTERNAL_WEB_LOADER_URL",
"value": "http://openwebuicrawl4ai-app:11235",
"info": "Optional crawl4ai application url, keep it as is, otherwise keep it empty",
"advanced": "true"
}
]
}