{ "module": "searxng", "version": "1", "capabilities": [ "container-runtime" ], "own-secrets": { "secret": "/var/lib/mesh/searxng/secret", "broker": "/var/lib/mesh/searxng/broker" }, "listens": [ { "name": "web", "port": 8080, "protocol": "tcp", "from": "mesh", "why": "the search pages" } ], "resources": [ { "id": "mesh-state", "type": "directory", "path": "/var/lib/mesh/searxng", "mode": "0700" }, { "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", "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" }, { "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": "/var/lib/mesh/searxng/config.json", "mode": "0600", "content": "{}\n" }, { "id": "runtime", "type": "container", "name": "mesh-searxng", "network": "host", "volumes": [ "/var/lib/mesh/searxng/broker:/run/secrets/broker:ro", "/var/lib/mesh/searxng/config.json:/run/config/config.json:ro" ], "env": { "MESH_BROKER_FILE": "/run/secrets/broker", "MESH_SEARXNG_URL": "http://127.0.0.1:${port:8080}", "MESH_SEARXNG_CONFIG_FILE": "/run/config/config.json" }, "restart-on": [ "runtime-config" ], "artifact": "runtime" } ], "requires": [ "route" ], "contributes": { "route": { "label": "searxng", "endpoint": "web" } }, "binds": { "route": "${dir:state}/route.json" }, "build": { "on": [ { "arg": "BUILD_BASE", "module": "mesh-tools", "artifact": "build" }, { "arg": "RUNTIME_BASE", "module": "mesh-tools", "artifact": "runtime" } ], "artifacts": [ { "name": "runtime", "kind": "image", "from": "Dockerfile" } ] } }