Compare commits

..

16 Commits

Author SHA1 Message Date
gyurix
de0e5ae45d removed uneccessary pipelines relevant parts 2026-07-28 11:21:38 +02:00
gyurix
a7e85af935 changed ENABLE_PERSISTENT_CONFIG variable into openwebui 2026-07-18 22:38:33 +02:00
gyurix
88d63ab725 setup crawl4ai correctly 2026-07-18 14:31:14 +02:00
gyurix
8ca027dfc3 correcting searxng related parameters 2026-07-18 14:20:03 +02:00
gyurix
6ac1c69393 updated persistent config settings in openwebui 2026-07-18 13:40:00 +02:00
gyurix
e724d8b2e7 updated searxng configurations 2026-07-18 13:23:02 +02:00
gyurix
f53aebb8d3 fromatting 2026-07-17 00:26:17 +02:00
gyurix
16e9a2572d formatting 2026-07-17 00:21:08 +02:00
gyurix
decc823119 formatting errors 2026-07-17 00:10:58 +02:00
gyurix
a41b7902ea formatting searxng settings 2026-07-17 00:04:21 +02:00
gyurix
10badeb218 correcting init in openwebui searxng content 2026-07-16 19:18:05 +02:00
gyurix
ba68e3cdd3 feat(openwebui): add SearXNG config and Pipelines API key
Added default SearXNG configuration files (settings.yml and limiter.toml) to the service startup command, enabling proper setup with user-agent, bind address, and rate limiting. Introduced a new required PIPELINES_API_KEY environment variable with auto-generation using openssl, ensuring pipeline authentication is configured out of the box.
2026-07-16 18:33:42 +02:00
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
gyurix
64fad037ae 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.
2026-07-15 13:52:05 +02:00
gyurix
8dc456dcda 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.
2026-07-15 13:37:21 +02:00
gyurix
a6a110ec5c formatting roundcube template 2026-07-14 16:08:26 +02:00
4 changed files with 141 additions and 55 deletions
+11 -1
View File
@@ -5,12 +5,22 @@
"POSTGRES_PASSWORD": "#POSTGRES_PASSWORD", "POSTGRES_PASSWORD": "#POSTGRES_PASSWORD",
"POSTGRES_ROOT_PASSWORD": "#POSTGRES_ROOT_PASSWORD" "POSTGRES_ROOT_PASSWORD": "#POSTGRES_ROOT_PASSWORD"
}, },
"openwebuisearxng": {
"SEARXNG_SECRET": "#SEARXNG_SECRET"
},
"openwebuicrawl4ai": {
"CRAWL4AI_API_TOKEN": "#CRAWL4AI_API_TOKEN",
"SECRET_KEY": "#CRAWL4AI_SECRET"
},
"openwebuiapp": { "openwebuiapp": {
"WEBUI_ADMIN_NAME": "#WEBUI_ADMIN_NAME", "WEBUI_ADMIN_NAME": "#WEBUI_ADMIN_NAME",
"WEBUI_ADMIN_EMAIL": "#WEBUI_ADMIN_EMAIL", "WEBUI_ADMIN_EMAIL": "#WEBUI_ADMIN_EMAIL",
"WEBUI_ADMIN_PASSWORD": "#WEBUI_ADMIN_PASSWORD", "WEBUI_ADMIN_PASSWORD": "#WEBUI_ADMIN_PASSWORD",
"WEBUI_SECRET_KEY": "#WEBUI_SECRET_KEY", "WEBUI_SECRET_KEY": "#WEBUI_SECRET_KEY",
"OPENAI_API_KEY": "#OPENAI_API_KEY", "OPENAI_API_KEY": "#OPENAI_API_KEY",
"DATABASE_URL": "postgres://#POSTGRES_USER:#POSTGRES_PASSWORD@openwebuipostgres-db:5432/#POSTGRES_DB" "HF_TOKEN": "#HF_TOKEN",
"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"
} }
} }
+55 -29
View File
@@ -24,7 +24,7 @@
], ],
"START_ON_BOOT": "false", "START_ON_BOOT": "false",
"ENTRYPOINT": "sh -c", "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/qdrant && mkdir -p /etc/user/data/openwebui/searxng && mkdir -p /etc/user/data/openwebui/crawl4ai && printf %s c2VydmVyOgogIGJpbmRfYWRkcmVzczogMC4wLjAuMAogIHBvcnQ6IDgwODAKICBsaW1pdGVyOiBmYWxzZQogIHB1YmxpY19pbnN0YW5jZTogZmFsc2UKc2VhcmNoOgogIGZvcm1hdHM6CiAgICAtIGh0bWwKICAgIC0ganNvbgp1aToKICBzdGF0aWNfdXNlX2hhc2g6IHRydWUKcmVkaXM6CiAgdXJsOiBmYWxzZQpvdXRnb2luZzoKICB1c2VyYWdlbnQ6IE1vemlsbGEvNS4wIChXaW5kb3dzIE5UIDEwLjA7IFdpbjY0OyB4NjQpIEFwcGxlV2ViS2l0LzUzNy4zNiAoS0hUTUwsIGxpa2UgR2Vja28pIENocm9tZS8xMzEuMC4wLjAgU2FmYXJpLzUzNy4zNgp1c2VfZGVmYXVsdF9zZXR0aW5nczoKICBlbmdpbmVzOgogICAgcmVtb3ZlOgogICAgICAtIGFobWlhCiAgICAgIC0gdG9yY2gKICAgICAgLSB3aWtpZGF0YQpib3RkZXRlY3Rpb246CiAgaXBfbGlzdHM6CiAgICBwYXNzX2lwOgogICAgICAtIDAuMC4wLjAvMAogICAgICAtIDo6LzA= | base64 -d > /etc/user/data/openwebui/searxng/settings.yml && printf %s W2JvdGRldGVjdGlvbi5pcF9saW1pdF0KbGlua190b2tlbiA9IGZhbHNlCg== | base64 -d > /etc/user/data/openwebui/searxng/limiter.toml",
"PRE_START": "null", "PRE_START": "null",
"POST_START": "null" "POST_START": "null"
}, },
@@ -62,10 +62,10 @@
{ {
"IMAGE": "qdrant/qdrant:latest", "IMAGE": "qdrant/qdrant:latest",
"UPDATE": "true", "UPDATE": "true",
"NAME": "openwebui-qdrant", "NAME": "openwebuiqdrant-app",
"MEMORY": "1024M", "MEMORY": "1024M",
"NETWORK": "openwebui-net", "NETWORK": "openwebui-net",
"SELECTOR": "openwebui-qdrant", "SELECTOR": "openwebuiqdrant-app",
"VOLUMES": [ "VOLUMES": [
{ {
"SOURCE": "/etc/user/data/openwebui/qdrant", "SOURCE": "/etc/user/data/openwebui/qdrant",
@@ -93,43 +93,60 @@
"POST_START": "null" "POST_START": "null"
}, },
{ {
"IMAGE": "ghcr.io/open-webui/pipelines:main", "IMAGE": "searxng/searxng:latest",
"UPDATE": "true", "UPDATE": "true",
"NAME": "openwebui-pipelines", "NAME": "openwebuisearxng-app",
"MEMORY": "1024M", "MEMORY": "512M",
"NETWORK": "openwebui-net", "NETWORK": "openwebui-net",
"SELECTOR": "openwebui-pipelines", "SELECTOR": "openwebuisearxng-app",
"VOLUMES": [ "VOLUMES": [
{ {
"SOURCE": "/etc/user/data/openwebui/pipelines", "SOURCE": "/etc/user/data/openwebui/searxng",
"DEST": "/app/pipelines", "DEST": "/etc/searxng",
"TYPE": "rw" "TYPE": "rw"
} }
], ],
"PORTS": [ "PORTS": [
{ {
"SOURCE": "null", "SOURCE": "null",
"DEST": "9099", "DEST": "8080",
"TYPE": "tcp" "TYPE": "tcp"
} }
], ],
"ENVS": [ "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": [
{ {
"OPENAI_API_BASE_URL": "#OPENAI_API_BASE_URL" "SOURCE": "/etc/user/data/openwebui/crawl4ai",
}, "DEST": "/app/data",
{ "TYPE": "rw"
"VECTOR_DB": "qdrant"
},
{
"QDRANT_HOST": "openwebui-qdrant"
},
{
"QDRANT_PORT": "6333"
},
{
"QDRANT_URI": "http://openwebui-qdrant:6333"
} }
], ],
"PORTS": [
{
"SOURCE": "null",
"DEST": "11235",
"TYPE": "tcp"
}
],
"ENV_FILES": [
"/etc/user/secret/openwebui/openwebui.json"
],
"EXTRA": "--restart always", "EXTRA": "--restart always",
"DEPEND": [], "DEPEND": [],
"START_ON_BOOT": "false", "START_ON_BOOT": "false",
@@ -159,6 +176,12 @@
} }
], ],
"ENVS": [ "ENVS": [
{
"ENABLE_PERSISTENT_CONFIG": "false"
},
{
"HF_HUB_OFFLINE": "#DISABLE_HUGGINGFACE"
},
{ {
"OPENAI_API_BASE_URL": "#OPENAI_API_BASE_URL" "OPENAI_API_BASE_URL": "#OPENAI_API_BASE_URL"
}, },
@@ -166,19 +189,22 @@
"VECTOR_DB": "qdrant" "VECTOR_DB": "qdrant"
}, },
{ {
"QDRANT_HOST": "openwebui-qdrant" "QDRANT_URI": "http://openwebuiqdrant-app:6333"
}, },
{ {
"QDRANT_PORT": "6333" "ENABLE_WEB_SEARCH": "#ENABLE_WEB_SEARCH"
}, },
{ {
"QDRANT_URI": "http://openwebui-qdrant:6333" "WEB_SEARCH_ENGINE": "#WEB_SEARCH_ENGINE"
}, },
{ {
"ENABLE_RAG_PIPELINE": "True" "WEB_LOADER_ENGINE": "#WEB_LOADER_ENGINE"
}, },
{ {
"RAG_PIPELINE_URL": "http://openwebui-pipelines:9099/v1" "SEARXNG_QUERY_URL": "#SEARXNG_QUERY_URL"
},
{
"EXTERNAL_WEB_LOADER_URL": "#EXTERNAL_WEB_LOADER_URL"
} }
], ],
"ENV_FILES": [ "ENV_FILES": [
+71
View File
@@ -55,6 +55,42 @@
"advanced": "true", "advanced": "true",
"type": "password" "type": "password"
}, },
{
"description": "Hugging Face token",
"key": "HF_TOKEN",
"value": "",
"info": "Optional Hugging Face API token for TTS and model access features.",
"advanced": "true",
"type": "password"
},
{
"description": "Disable Hugging Face requests",
"key": "DISABLE_HUGGINGFACE",
"value": "1",
"info": "Set to 1 to disable all outgoing requests to huggingface.co at startup. Set to 0 or leave empty to allow Hugging Face access.",
"advanced": "true"
},
{
"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", "description": "Postgres database name",
"key": "POSTGRES_DB", "key": "POSTGRES_DB",
@@ -82,6 +118,41 @@
"value": "", "value": "",
"required": "true", "required": "true",
"generated": "random|sha256|20" "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",
"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/crawl",
"info": "Optional crawl4ai application url, keep it as is, otherwise keep it empty",
"advanced": "true"
} }
] ]
} }
+3 -24
View File
@@ -6,54 +6,40 @@
"icon": "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHZpZXdCb3g9IjkuMTQgMTQxLjggNTczLjY1IDU3My42NSI+CjxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+Ci5zdDB7ZmlsbC1ydWxlOmV2ZW5vZGQ7Y2xpcC1ydWxlOmV2ZW5vZGQ7ZmlsbDojNDA0RjU0O30KLnN0MXtmaWxsLXJ1bGU6ZXZlbm9kZDtjbGlwLXJ1bGU6ZXZlbm9kZDtmaWxsOiNFNUU1RTU7fQouc3Qye2ZpbGwtcnVsZTpldmVub2RkO2NsaXAtcnVsZTpldmVub2RkO2ZpbGw6I0NDQ0NDQzt9Ci5zdDN7ZmlsbC1ydWxlOmV2ZW5vZGQ7Y2xpcC1ydWxlOmV2ZW5vZGQ7ZmlsbDojMzdCRUZGO30KPC9zdHlsZT4KPHBvbHlnb24gY2xhc3M9InN0MyIgcG9pbnRzPSI1ODIuNzksNTQ5Ljc3IDI5NS45NiwzODQuMSAyOTUuOTYsMjA3LjI3IDU4Mi43OSwzNzIuOTUgIi8+Cjxwb2x5Z29uIGNsYXNzPSJzdDAiIHBvaW50cz0iOS4xNCw1NDkuNzcgMjk1Ljk2LDM4NC4xIDI5NS45NiwyMDcuMjcgOS4xNCwzNzIuOTUgIi8+CjxwYXRoIGNsYXNzPSJzdDIiIGQ9Ik0yOTUuOTYsMTQxLjhjMTA5LjU2LDAsMTk4LjQxLDg4Ljg1LDE5OC40MSwxOTguNDFjMCwxMDkuNTYtODguODUsMTk4LjQxLTE5OC40MSwxOTguNDEgYy0xMDkuNTYsMC0xOTguNDEtODguODUtMTk4LjQxLTE5OC40MUM5Ny41NSwyMzAuNjUsMTg2LjQsMTQxLjgsMjk1Ljk2LDE0MS44Ii8+CjxwYXRoIGNsYXNzPSJzdDEiIGQ9Ik0yOTUuOTYsMTQxLjhjMTA5LjYsMCwxOTguNDgsODguODUsMTk4LjQ4LDE5OC40MWMwLDEwOS41Ni04OC44OCwxOTguNDEtMTk4LjQ4LDE5OC40MQljLTYyLjkxLTQyLjM0LTg4Ljk0LTEyNy42NC04OC45NC0xOTguM1MyMzMuMDUsMTg0LjIyLDI5NS45NiwxNDEuOCIvPgo8cG9seWdvbiBjbGFzcz0ic3QzIiBwb2ludHM9IjU4Mi43OSwzNzIuOTUgMjk1Ljk2LDUzOC42MiAyOTUuOTYsNzE1LjQ1IDU4Mi43OSw1NDkuNzcgIi8+Cjxwb2x5Z29uIGNsYXNzPSJzdDAiIHBvaW50cz0iOS4xNCwzNzIuOTUgMjk1Ljk2LDUzOC42MiAyOTUuOTYsNzE1LjQ1IDkuMTQsNTQ5Ljc3ICIvPgo8L3N2Zz4K", "icon": "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHZpZXdCb3g9IjkuMTQgMTQxLjggNTczLjY1IDU3My42NSI+CjxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+Ci5zdDB7ZmlsbC1ydWxlOmV2ZW5vZGQ7Y2xpcC1ydWxlOmV2ZW5vZGQ7ZmlsbDojNDA0RjU0O30KLnN0MXtmaWxsLXJ1bGU6ZXZlbm9kZDtjbGlwLXJ1bGU6ZXZlbm9kZDtmaWxsOiNFNUU1RTU7fQouc3Qye2ZpbGwtcnVsZTpldmVub2RkO2NsaXAtcnVsZTpldmVub2RkO2ZpbGw6I0NDQ0NDQzt9Ci5zdDN7ZmlsbC1ydWxlOmV2ZW5vZGQ7Y2xpcC1ydWxlOmV2ZW5vZGQ7ZmlsbDojMzdCRUZGO30KPC9zdHlsZT4KPHBvbHlnb24gY2xhc3M9InN0MyIgcG9pbnRzPSI1ODIuNzksNTQ5Ljc3IDI5NS45NiwzODQuMSAyOTUuOTYsMjA3LjI3IDU4Mi43OSwzNzIuOTUgIi8+Cjxwb2x5Z29uIGNsYXNzPSJzdDAiIHBvaW50cz0iOS4xNCw1NDkuNzcgMjk1Ljk2LDM4NC4xIDI5NS45NiwyMDcuMjcgOS4xNCwzNzIuOTUgIi8+CjxwYXRoIGNsYXNzPSJzdDIiIGQ9Ik0yOTUuOTYsMTQxLjhjMTA5LjU2LDAsMTk4LjQxLDg4Ljg1LDE5OC40MSwxOTguNDFjMCwxMDkuNTYtODguODUsMTk4LjQxLTE5OC40MSwxOTguNDEgYy0xMDkuNTYsMC0xOTguNDEtODguODUtMTk4LjQxLTE5OC40MUM5Ny41NSwyMzAuNjUsMTg2LjQsMTQxLjgsMjk1Ljk2LDE0MS44Ii8+CjxwYXRoIGNsYXNzPSJzdDEiIGQ9Ik0yOTUuOTYsMTQxLjhjMTA5LjYsMCwxOTguNDgsODguODUsMTk4LjQ4LDE5OC40MWMwLDEwOS41Ni04OC44OCwxOTguNDEtMTk4LjQ4LDE5OC40MQljLTYyLjkxLTQyLjM0LTg4Ljk0LTEyNy42NC04OC45NC0xOTguM1MyMzMuMDUsMTg0LjIyLDI5NS45NiwxNDEuOCIvPgo8cG9seWdvbiBjbGFzcz0ic3QzIiBwb2ludHM9IjU4Mi43OSwzNzIuOTUgMjk1Ljk2LDUzOC42MiAyOTUuOTYsNzE1LjQ1IDU4Mi43OSw1NDkuNzcgIi8+Cjxwb2x5Z29uIGNsYXNzPSJzdDAiIHBvaW50cz0iOS4xNCwzNzIuOTUgMjk1Ljk2LDUzOC42MiAyOTUuOTYsNzE1LjQ1IDkuMTQsNTQ5Ljc3ICIvPgo8L3N2Zz4K",
"fields": [ "fields": [
{ {
"title": "Domain",
"details": "The domain name where Roundcube webmail will be accessible.",
"description": "Domain", "description": "Domain",
"key": "DOMAIN", "key": "DOMAIN",
"value": "", "value": "",
"required": "true" "required": "true"
}, },
{ {
"title": "IMAP Host",
"details": "The hostname of your IMAP email server for receiving emails",
"description": "IMAP host", "description": "IMAP host",
"key": "DEFAULT_HOST", "key": "DEFAULT_HOST",
"value": "", "value": "",
"required": "true" "required": "true"
}, },
{ {
"title": "IMAP Port",
"details": "The port number used to connect to your IMAP server",
"description": "IMAP port", "description": "IMAP port",
"key": "DEFAULT_PORT", "key": "DEFAULT_PORT",
"value": "993" "value": "993"
}, },
{ {
"title": "SMTP Server",
"details": "The hostname of your SMTP email server for sending emails",
"description": "SMTP server", "description": "SMTP server",
"key": "SMTP_SERVER", "key": "SMTP_SERVER",
"value": "", "value": "",
"required": "true" "required": "true"
}, },
{ {
"title": "SMTP Port",
"details": "The port number used to connect to your SMTP server",
"description": "SMTP port", "description": "SMTP port",
"key": "SMTP_PORT", "key": "SMTP_PORT",
"value": "465" "value": "465"
}, },
{ {
"title": "SMTP Username",
"details": "The username used to authenticate with the SMTP server",
"description": "SMTP username", "description": "SMTP username",
"key": "SMTP_USER", "key": "SMTP_USER",
"value": "", "value": "",
"advanced": "true" "advanced": "true"
}, },
{ {
"title": "SMTP Password",
"details": "The password used to authenticate with the SMTP server",
"description": "SMTP password", "description": "SMTP password",
"key": "SMTP_PASSWORD", "key": "SMTP_PASSWORD",
"value": "", "value": "",
@@ -61,31 +47,27 @@
"type": "password" "type": "password"
}, },
{ {
"title": "Skip Host Validation", "info": "Set to true to disable SSL certificate validation",
"details": "Set to true to disable SSL certificate validation",
"description": "Skip host validation", "description": "Skip host validation",
"key": "SKIP_HOST_VALIDATION", "key": "SKIP_HOST_VALIDATION",
"value": "false", "value": "false",
"advanced": "true" "advanced": "true"
}, },
{ {
"title": "Plugins", "info": "Comma-separated list of Roundcube plugins to enable",
"details": "Comma-separated list of Roundcube plugins to enable",
"description": "Plugins", "description": "Plugins",
"key": "PLUGINS", "key": "PLUGINS",
"value": "calendar,password", "value": "calendar,password",
"advanced": "true" "advanced": "true"
}, },
{ {
"title": "Upload Max Filesize", "info": "Maximum allowed file size for email attachments",
"details": "Maximum allowed file size for email attachments",
"description": "Upload max filesize", "description": "Upload max filesize",
"key": "UPLOAD_MAX_FILESIZE", "key": "UPLOAD_MAX_FILESIZE",
"value": "50M", "value": "50M",
"advanced": "true" "advanced": "true"
}, },
{ {
"title": "Postgres Database Name",
"description": "Postgres database name", "description": "Postgres database name",
"key": "POSTGRES_DB", "key": "POSTGRES_DB",
"value": "", "value": "",
@@ -93,7 +75,6 @@
"generated": "time|md5|8" "generated": "time|md5|8"
}, },
{ {
"title": "Postgres Username",
"description": "Postgres username", "description": "Postgres username",
"key": "POSTGRES_USER", "key": "POSTGRES_USER",
"value": "", "value": "",
@@ -101,7 +82,6 @@
"generated": "time|md5|8" "generated": "time|md5|8"
}, },
{ {
"title": "Postgres User Password",
"description": "Postgres password for user", "description": "Postgres password for user",
"key": "POSTGRES_PASSWORD", "key": "POSTGRES_PASSWORD",
"value": "", "value": "",
@@ -109,7 +89,6 @@
"generated": "random|md5|12" "generated": "random|md5|12"
}, },
{ {
"title": "Postgres Root Password",
"description": "Postgres root user password", "description": "Postgres root user password",
"key": "POSTGRES_ROOT_PASSWORD", "key": "POSTGRES_ROOT_PASSWORD",
"value": "", "value": "",