Files
mesh-catalog/modules/searxng/module.json
T

227 lines
5.9 KiB
JSON

{
"module": "searxng",
"version": "1",
"capabilities": [
"container-runtime"
],
"own-secrets": {
"secret": {
"path": "${dir:mesh-state}/secret",
"taken": "at-start"
}
},
"listens": [
{
"name": "web",
"port": 8080,
"protocol": "tcp",
"from": "mesh",
"why": "the search pages"
}
],
"data": {
"own": [
{
"id": "valkey",
"path": "${dir:valkey-data}",
"class": "cache",
"why": "the search cache"
}
]
},
"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",
"type": "directory",
"mode": "0700",
"place": "mesh"
},
{
"id": "state",
"type": "directory",
"mode": "0700",
"place": "."
},
{
"id": "valkey-data",
"type": "directory",
"mode": "0700"
},
{
"id": "net",
"type": "network",
"name": "searxng"
},
{
"id": "cache",
"type": "container",
"name": "valkey",
"image": "valkey/valkey@sha256:b21fd94099dcd4bc6b2b9230daef69b6558b887ad4a2a1afe56ff6e745a88cdb",
"network": "searxng",
"args": [
"valkey-server",
"--save",
"30",
"1",
"--loglevel",
"warning"
],
"volumes": [
"${dir:valkey-data}:/data"
]
},
{
"id": "settings",
"type": "file",
"path": "${dir:state}/settings.yml",
"mode": "0600",
"merge": "json",
"takes-config": [
"general",
"brand",
"search",
"server",
"ui",
"outgoing",
"engines",
"plugins",
"categories_as_tabs",
"preferences"
],
"template": "files/settings.yml"
},
{
"id": "server",
"type": "container",
"name": "searxng",
"image": "searxng/searxng@sha256:cd8812607ab73730a0b1a0dc4990223fe1b9e383f6f35947114d0bef7f8bb441",
"network": "searxng",
"ports": [
"8080"
],
"volumes": [
"${dir:state}/settings.yml:/etc/searxng/settings.yml:ro"
],
"restart-on": [
"settings"
]
},
{
"id": "runtime-config",
"type": "file",
"path": "${dir:mesh-state}/config.json",
"mode": "0600",
"template": "files/config.json"
}
],
"requires": [
"route"
],
"contributes": {
"route": {
"label": "searxng",
"endpoint": "web"
}
},
"binds": {
"route": "${dir:state}/route.json"
},
"build": {
"artifacts": [
{
"name": "tools",
"kind": "bundle",
"language": "typescript",
"entrypoints": [
"tools/index.js"
],
"loads": [
"tools/index.js"
],
"env": {
"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"
}
]
}
}