123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272 |
- {
- "title": "SearXNG config",
- "description": "Unofficial schema draft for SearXNG config",
- "type": "object",
- "properties": {
- "autocomplete": {
- "description": "The search engine used for autocomplete results",
- "type": "string",
- "minLength": 0,
- "maxLength": 255
- },
- "brand": {
- "description": "Metadata for this instance",
- "type": "object",
- "properties": {
- "CONTACT_URL": {
- "oneOf": [
- {
- "type": "boolean"
- },
- {
- "type": "string",
- "format": "uri"
- },
- {
- "type": "null"
- }
- ]
- },
- "DOCS_URL": {
- "oneOf": [
- {
- "type": "boolean"
- },
- {
- "type": "string",
- "format": "uri"
- },
- {
- "type": "null"
- }
- ]
- },
- "GIT_BRANCH": {"type": "string"},
- "GIT_URL": {"type": "string", "format": "uri"},
- "PRIVACYPOLICY_URL": {
- "oneOf": [
- {
- "type": "boolean"
- },
- {
- "type": "string",
- "format": "uri"
- },
- {
- "type": "null"
- }
- ]
- }
- },
- "additionalProperties": false
- },
- "categories": {
- "description": "List with search categories",
- "type": "array",
- "items": {
- "type": "string",
- "minLength": 1,
- "maxLength": 255
- },
- "minItems": 0,
- "maxItems": 128
- },
- "default_doi_resolver": {
- "type": "string",
- "format": "uri"
- },
- "default_locale": {
- "type": "string",
- "minLength": 0,
- "maxLength": 32
- },
- "default_theme": {
- "type": "string",
- "minLength": 0,
- "maxLength": 32
- },
- "doi_resolvers": {
- "description": "Available doi resolvers",
- "type": "array",
- "items": {
- "type": "string",
- "format": "uri"
- },
- "minItems": 0,
- "maxItems": 128
- },
- "engines": {
- "description": "List with search engine objects",
- "type": "array",
- "items": {
- "type": "object",
- "properties": {
- "categories": {
- "description": "List with search categories that this engine is part of",
- "type": "array",
- "items": {
- "type": "string",
- "minLength": 1,
- "maxLength": 255
- },
- "minItems": 0,
- "maxItems": 128
- },
- "enabled": {
- "description": "Whether this engine is enabled or not",
- "type": "boolean"
- },
- "language_support": {
- "description": "Whether this engine supports searching in a given language",
- "type": "boolean"
- },
- "languages": {
- "description": "Languages this search engines supports (SearXNG)",
- "type": "array",
- "items": {
- "type": "string",
- "minLength": 1,
- "maxLength": 32
- },
- "minItems": 0,
- "maxItems": 1024
- },
- "supported_languages": {
- "description": "Languages this search engines supports (SearX)",
- "type": "array",
- "items": {
- "type": "string",
- "minLength": 1,
- "maxLength": 32
- },
- "minItems": 0,
- "maxItems": 8192
- },
- "name": {
- "description": "Search engine name",
- "type": "string",
- "minLength": 1,
- "maxLength": 128
- },
- "paging": {
- "description": "Whether this engine supports paging",
- "type": "boolean"
- },
- "regions": {
- "description": "Regions this search engines supports (TODO this the same as languages?)",
- "type": "array",
- "items": {
- "description": "Example: da-DK",
- "type": "string",
- "minLength": 1,
- "maxLength": 32
- },
- "minItems": 0,
- "maxItems": 1024
- },
- "safesearch": {
- "description": "Whether safe search is supported by this engine",
- "type": "boolean"
- },
- "shortcut": {
- "description": "Shortcut for this engine",
- "type": "string",
- "minLength": 0,
- "maxLength": 16
- },
- "time_range_support": {
- "description": "Whether this engine supports searching based on time range",
- "type": "boolean"
- },
- "timeout": {
- "type": "number",
- "minimum": 1,
- "maximum": 120
- }
- },
- "additionalProperties": false
- },
- "minItems": 0,
- "maxItems": 1024
- },
- "instance_name": {
- "description": "Fancy name of this instance",
- "type": "string",
- "minLength": 1,
- "maxLength": 255
- },
- "limiter": {
- "type": "object",
- "properties": {
- "botdetection.ip_limit.link_token": {
- "type": "boolean"
- },
- "botdetection.ip_lists.pass_searxng_org": {
- "type": "boolean"
- },
- "enabled": {
- "type": "boolean"
- }
- }
- },
- "locales": {
- "description": "List of locales this SearXNG instance supports",
- "type": "object",
- "propertyNames": {
- "description": "Locale code",
- "type": "string",
- "minLength": 2,
- "maxLength": 16
- },
- "additionalProperties": {
- "description": "Locale full name",
- "type": "string",
- "minLength": 3,
- "maxLength": 128
- }
- },
- "plugins": {
- "description": "List of available plugins and their status",
- "type": "array",
- "items": {
- "type": "object",
- "properties": {
- "enabled": {
- "description": "Whether this plugin is enabled or not",
- "type": "boolean"
- },
- "name": {
- "description": "Name of this plugin",
- "type": "string"
- }
- },
- "additionalProperties": false
- }
- },
- "public_instance": {
- "description": "Whether this is a public (true) or private (false) instance",
- "type": "boolean"
- },
- "safe_search": {
- "description": "Whether safe search is enabled or not",
- "type": "number",
- "enum": [0, 1, 2]
- },
- "version": {
- "anyOf": [
- {
- "type": "string",
- "description": "Version pattern SearXNG",
- "pattern": "^([0-9]{1,4}\\.){2}([0-9]{1,4})(\\+[a-fA-F0-9]{1,9})?$"
- },
- {
- "type": "string",
- "description": "Version pattern SearX",
- "pattern": "^([0-9]{1,4}\\.){2}([0-9]{1,4})((\\-[0-9]{1,4}\\-[a-fA-F0-9]{1,10})|(-unknown))?$"
- }
- ]
- }
- },
- "additionalProperties": false
- }
|