Feature 57 (config and provisioning): modules declare config and provisions, their files rendered from templates; synced with main (issues of feature 57, 874)

This commit is contained in:
2026-10-16 07:37:43 +00:00
parent 1a2c917abf
commit 9652b2d5ce
771 changed files with 52063 additions and 1774 deletions
+81 -3
View File
@@ -29,6 +29,79 @@
}
]
},
"config": {
"general": {
"type": "object",
"description": "SearXNG's general section of settings.yml, laid over the file's own and SearXNG's defaults: the instance's name, contact and debug switches.",
"trusted": true,
"default": {}
},
"brand": {
"type": "object",
"description": "SearXNG's brand section of settings.yml, laid over the file's own and SearXNG's defaults: the links the pages show for the instance's source, issues and documentation.",
"trusted": true,
"default": {}
},
"search": {
"type": "object",
"description": "SearXNG's search section of settings.yml, laid over the file's own and SearXNG's defaults: safe search, autocomplete, the result formats offered and how long an engine is suspended after an error.",
"trusted": true,
"default": {
"formats": [
"html",
"json"
]
}
},
"server": {
"type": "object",
"description": "SearXNG's server section of settings.yml, laid over the file's own and SearXNG's defaults: the public base URL, the request method, the limiter and the image proxy; its secret_key is the vault's.",
"trusted": true,
"default": {
"secret_key": "${secret:secret}",
"base_url": false,
"limiter": false,
"image_proxy": false,
"public_instance": false
}
},
"ui": {
"type": "object",
"description": "SearXNG's ui section of settings.yml, laid over the file's own and SearXNG's defaults: the theme, the default locale and how results are shown.",
"trusted": true,
"default": {}
},
"outgoing": {
"type": "object",
"description": "SearXNG's outgoing section of settings.yml, laid over the file's own and SearXNG's defaults: how SearXNG reaches the engines: timeouts, connection pool and proxies.",
"trusted": true,
"default": {}
},
"engines": {
"type": "list",
"description": "SearXNG's engines section of settings.yml, laid over the file's own and SearXNG's defaults: the engines to add or change, each by its name.",
"trusted": true,
"default": []
},
"plugins": {
"type": "object",
"description": "SearXNG's plugins section of settings.yml, laid over the file's own and SearXNG's defaults: the plugins to switch on or off, by their id.",
"trusted": true,
"default": {}
},
"categories_as_tabs": {
"type": "object",
"description": "SearXNG's categories_as_tabs section of settings.yml, laid over the file's own and SearXNG's defaults: the categories shown as tabs above the results.",
"trusted": true,
"default": {}
},
"preferences": {
"type": "object",
"description": "SearXNG's preferences section of settings.yml, laid over the file's own and SearXNG's defaults: the preferences a user cannot change (lock).",
"trusted": true,
"default": {}
}
},
"resources": [
{
"id": "mesh-state",
@@ -76,7 +149,7 @@
"path": "${dir:state}/settings.yml",
"mode": "0600",
"merge": "json",
"takes-settings": [
"takes-config": [
"general",
"brand",
"search",
@@ -88,7 +161,7 @@
"categories_as_tabs",
"preferences"
],
"content": "{\n \"use_default_settings\": true,\n \"server\": {\n \"secret_key\": \"${secret:secret}\",\n \"base_url\": false,\n \"limiter\": false,\n \"image_proxy\": false,\n \"public_instance\": false\n },\n \"search\": {\n \"formats\": [\"html\", \"json\"]\n },\n \"valkey\": {\n \"url\": \"valkey://valkey:6379/0\"\n }\n}\n"
"template": "files/settings.yml"
},
{
"id": "server",
@@ -111,7 +184,7 @@
"type": "file",
"path": "${dir:mesh-state}/config.json",
"mode": "0600",
"content": "{}\n"
"template": "files/config.json"
}
],
"requires": [
@@ -142,6 +215,11 @@
"MESH_SEARXNG_URL": "http://127.0.0.1:${port:8080}",
"MESH_SEARXNG_CONFIG_FILE": "${dir:mesh-state}/config.json"
}
},
{
"name": "files",
"kind": "archive",
"from": "files"
}
]
}