summaryrefslogtreecommitdiff
path: root/_sources/admin/settings
diff options
context:
space:
mode:
Diffstat (limited to '_sources/admin/settings')
-rw-r--r--_sources/admin/settings/index.rst.txt27
-rw-r--r--_sources/admin/settings/settings.rst.txt117
-rw-r--r--_sources/admin/settings/settings_brand.rst.txt25
-rw-r--r--_sources/admin/settings/settings_categories_as_tabs.rst.txt31
-rw-r--r--_sources/admin/settings/settings_engine.rst.txt244
-rw-r--r--_sources/admin/settings/settings_general.rst.txt42
-rw-r--r--_sources/admin/settings/settings_outgoing.rst.txt110
-rw-r--r--_sources/admin/settings/settings_redis.rst.txt49
-rw-r--r--_sources/admin/settings/settings_search.rst.txt104
-rw-r--r--_sources/admin/settings/settings_server.rst.txt57
-rw-r--r--_sources/admin/settings/settings_ui.rst.txt74
11 files changed, 880 insertions, 0 deletions
diff --git a/_sources/admin/settings/index.rst.txt b/_sources/admin/settings/index.rst.txt
new file mode 100644
index 000000000..acc91dbdd
--- /dev/null
+++ b/_sources/admin/settings/index.rst.txt
@@ -0,0 +1,27 @@
+.. _searxng settings.yml:
+
+========
+Settings
+========
+
+.. sidebar:: Further reading ..
+
+ - :ref:`engine settings`
+ - :ref:`engine file`
+
+.. toctree::
+ :maxdepth: 2
+
+ settings
+ settings_engine
+ settings_brand
+ settings_general
+ settings_search
+ settings_server
+ settings_ui
+ settings_redis
+ settings_outgoing
+ settings_categories_as_tabs
+
+
+
diff --git a/_sources/admin/settings/settings.rst.txt b/_sources/admin/settings/settings.rst.txt
new file mode 100644
index 000000000..9c6fb01be
--- /dev/null
+++ b/_sources/admin/settings/settings.rst.txt
@@ -0,0 +1,117 @@
+.. _settings.yml:
+
+================
+``settings.yml``
+================
+
+This page describe the options possibilities of the :origin:`searx/settings.yml`
+file.
+
+.. sidebar:: Further reading ..
+
+ - :ref:`use_default_settings.yml`
+ - :ref:`search API`
+
+.. contents::
+ :depth: 2
+ :local:
+ :backlinks: entry
+
+.. _settings location:
+
+settings.yml location
+=====================
+
+The initial ``settings.yml`` we be load from these locations:
+
+1. the full path specified in the ``SEARXNG_SETTINGS_PATH`` environment variable.
+2. ``/etc/searxng/settings.yml``
+
+If these files don't exist (or are empty or can't be read), SearXNG uses the
+:origin:`searx/settings.yml` file. Read :ref:`settings use_default_settings` to
+see how you can simplify your *user defined* ``settings.yml``.
+
+
+
+.. _settings use_default_settings:
+
+use_default_settings
+====================
+
+.. sidebar:: ``use_default_settings: true``
+
+ - :ref:`settings location`
+ - :ref:`use_default_settings.yml`
+ - :origin:`/etc/searxng/settings.yml <utils/templates/etc/searxng/settings.yml>`
+
+The user defined ``settings.yml`` is loaded from the :ref:`settings location`
+and can relied on the default configuration :origin:`searx/settings.yml` using:
+
+ ``use_default_settings: true``
+
+``server:``
+ In the following example, the actual settings are the default settings defined
+ in :origin:`searx/settings.yml` with the exception of the ``secret_key`` and
+ the ``bind_address``:
+
+ .. code:: yaml
+
+ use_default_settings: true
+ server:
+ secret_key: "ultrasecretkey" # change this!
+ bind_address: "0.0.0.0"
+
+``engines:``
+ With ``use_default_settings: true``, each settings can be override in a
+ similar way, the ``engines`` section is merged according to the engine
+ ``name``. In this example, SearXNG will load all the default engines, will
+ enable the ``bing`` engine and define a :ref:`token <private engines>` for
+ the arch linux engine:
+
+ .. code:: yaml
+
+ use_default_settings: true
+ server:
+ secret_key: "ultrasecretkey" # change this!
+ engines:
+ - name: arch linux wiki
+ tokens: ['$ecretValue']
+ - name: bing
+ disabled: false
+
+
+``engines:`` / ``remove:``
+ It is possible to remove some engines from the default settings. The following
+ example is similar to the above one, but SearXNG doesn't load the the google
+ engine:
+
+ .. code:: yaml
+
+ use_default_settings:
+ engines:
+ remove:
+ - google
+ server:
+ secret_key: "ultrasecretkey" # change this!
+ engines:
+ - name: arch linux wiki
+ tokens: ['$ecretValue']
+
+``engines:`` / ``keep_only:``
+ As an alternative, it is possible to specify the engines to keep. In the
+ following example, SearXNG has only two engines:
+
+ .. code:: yaml
+
+ use_default_settings:
+ engines:
+ keep_only:
+ - google
+ - duckduckgo
+ server:
+ secret_key: "ultrasecretkey" # change this!
+ engines:
+ - name: google
+ tokens: ['$ecretValue']
+ - name: duckduckgo
+ tokens: ['$ecretValue']
diff --git a/_sources/admin/settings/settings_brand.rst.txt b/_sources/admin/settings/settings_brand.rst.txt
new file mode 100644
index 000000000..0f1a0d9a9
--- /dev/null
+++ b/_sources/admin/settings/settings_brand.rst.txt
@@ -0,0 +1,25 @@
+.. _settings brand:
+
+==========
+``brand:``
+==========
+
+.. code:: yaml
+
+ brand:
+ issue_url: https://github.com/searxng/searxng/issues
+ docs_url: https://docs.searxng.org
+ public_instances: https://searx.space
+ wiki_url: https://github.com/searxng/searxng/wiki
+
+``issue_url`` :
+ If you host your own issue tracker change this URL.
+
+``docs_url`` :
+ If you host your own documentation change this URL.
+
+``public_instances`` :
+ If you host your own https://searx.space change this URL.
+
+``wiki_url`` :
+ Link to your wiki (or ``false``)
diff --git a/_sources/admin/settings/settings_categories_as_tabs.rst.txt b/_sources/admin/settings/settings_categories_as_tabs.rst.txt
new file mode 100644
index 000000000..732d04678
--- /dev/null
+++ b/_sources/admin/settings/settings_categories_as_tabs.rst.txt
@@ -0,0 +1,31 @@
+.. _settings categories_as_tabs:
+
+=======================
+``categories_as_tabs:``
+=======================
+
+A list of the categories that are displayed as tabs in the user interface.
+Categories not listed here can still be searched with the :ref:`search-syntax`.
+
+.. code:: yaml
+
+ categories_as_tabs:
+ general:
+ images:
+ videos:
+ news:
+ map:
+ music:
+ it:
+ science:
+ files:
+ social media:
+
+Engines are added to ``categories:`` (compare :ref:`engine categories`), the
+categories listed in ``categories_as_tabs`` are shown as tabs in the UI. If
+there are no active engines in a category, the tab is not displayed (e.g. if a
+user disables all engines in a category).
+
+On the preferences page (``/preferences``) -- under *engines* -- there is an
+additional tab, called *other*. In this tab are all engines listed that are not
+in one of the UI tabs (not included in ``categories_as_tabs``).
diff --git a/_sources/admin/settings/settings_engine.rst.txt b/_sources/admin/settings/settings_engine.rst.txt
new file mode 100644
index 000000000..454fcd241
--- /dev/null
+++ b/_sources/admin/settings/settings_engine.rst.txt
@@ -0,0 +1,244 @@
+.. _settings engine:
+
+===========
+``engine:``
+===========
+
+.. sidebar:: Further reading ..
+
+ - :ref:`configured engines`
+ - :ref:`engines-dev`
+
+In the code example below a *full fledged* example of a YAML setup from a dummy
+engine is shown. Most of the options have a default value or even are optional.
+
+.. hint::
+
+ A few more options are possible, but they are pretty specific to some
+ engines (:ref:`engine implementations`).
+
+.. code:: yaml
+
+ - name: example engine
+ engine: example
+ shortcut: demo
+ base_url: 'https://{language}.example.com/'
+ send_accept_language_header: false
+ categories: general
+ timeout: 3.0
+ api_key: 'apikey'
+ disabled: false
+ language: en_US
+ tokens: [ 'my-secret-token' ]
+ weight: 1
+ display_error_messages: true
+ about:
+ website: https://example.com
+ wikidata_id: Q306656
+ official_api_documentation: https://example.com/api-doc
+ use_official_api: true
+ require_api_key: true
+ results: HTML
+
+ # overwrite values from section 'outgoing:'
+ enable_http2: false
+ retries: 1
+ max_connections: 100
+ max_keepalive_connections: 10
+ keepalive_expiry: 5.0
+ using_tor_proxy: false
+ proxies:
+ http:
+ - http://proxy1:8080
+ - http://proxy2:8080
+ https:
+ - http://proxy1:8080
+ - http://proxy2:8080
+ - socks5://user:password@proxy3:1080
+ - socks5h://user:password@proxy4:1080
+
+ # other network settings
+ enable_http: false
+ retry_on_http_error: true # or 403 or [404, 429]
+
+
+``name`` :
+ Name that will be used across SearXNG to define this engine. In settings, on
+ the result page...
+
+``engine`` :
+ Name of the python file used to handle requests and responses to and from this
+ search engine.
+
+``shortcut`` :
+ Code used to execute bang requests (in this case using ``!bi``)
+
+``base_url`` : optional
+ Part of the URL that should be stable across every request. Can be useful to
+ use multiple sites using only one engine, or updating the site URL without
+ touching at the code.
+
+``send_accept_language_header`` :
+ Several engines that support languages (or regions) deal with the HTTP header
+ ``Accept-Language`` to build a response that fits to the locale. When this
+ option is activated, the language (locale) that is selected by the user is used
+ to build and send a ``Accept-Language`` header in the request to the origin
+ search engine.
+
+.. _engine categories:
+
+``categories`` : optional
+ Specifies to which categories the engine should be added. Engines can be
+ assigned to multiple categories.
+
+ Categories can be shown as tabs (:ref:`settings categories_as_tabs`) in the
+ UI. A search in a tab (in the UI) will query all engines that are active in
+ this tab. In the preferences page (``/preferences``) -- under *engines* --
+ users can select what engine should be active when querying in this tab.
+
+ Alternatively, :ref:`\!bang <search-syntax>` can be used to search all engines
+ in a category, regardless of whether they are active or not, or whether they
+ are in a tab of the UI or not. For example, ``!dictionaries`` can be used to
+ query all search engines in that category (group).
+
+``timeout`` : optional
+ Timeout of the search with the current search engine. Overwrites
+ ``request_timeout`` from :ref:`settings outgoing`. **Be careful, it will
+ modify the global timeout of SearXNG.**
+
+``api_key`` : optional
+ In a few cases, using an API needs the use of a secret key. How to obtain them
+ is described in the file.
+
+``disabled`` : optional
+ To disable by default the engine, but not deleting it. It will allow the user
+ to manually activate it in the settings.
+
+``inactive``: optional
+ Remove the engine from the settings (*disabled & removed*).
+
+``language`` : optional
+ If you want to use another language for a specific engine, you can define it
+ by using the ISO code of language (and region), like ``fr``, ``en-US``,
+ ``de-DE``.
+
+``tokens`` : optional
+ A list of secret tokens to make this engine *private*, more details see
+ :ref:`private engines`.
+
+``weight`` : default ``1``
+ Weighting of the results of this engine.
+
+``display_error_messages`` : default ``true``
+ When an engine returns an error, the message is displayed on the user interface.
+
+``network`` : optional
+ Use the network configuration from another engine.
+ In addition, there are two default networks:
+
+ - ``ipv4`` set ``local_addresses`` to ``0.0.0.0`` (use only IPv4 local addresses)
+ - ``ipv6`` set ``local_addresses`` to ``::`` (use only IPv6 local addresses)
+
+``enable_http`` : optional
+ Enable HTTP for this engine (by default only HTTPS is enabled).
+
+``retry_on_http_error`` : optional
+ Retry request on some HTTP status code.
+
+ Example:
+
+ * ``true`` : on HTTP status code between 400 and 599.
+ * ``403`` : on HTTP status code 403.
+ * ``[403, 429]``: on HTTP status code 403 and 429.
+
+``proxies`` :
+ Overwrites proxy settings from :ref:`settings outgoing`.
+
+``using_tor_proxy`` :
+ Using tor proxy (``true``) or not (``false``) for this engine. The default is
+ taken from ``using_tor_proxy`` of the :ref:`settings outgoing`.
+
+.. _Pool limit configuration: https://www.python-httpx.org/advanced/#pool-limit-configuration
+
+``max_keepalive_connection#s`` :
+ `Pool limit configuration`_, overwrites value ``pool_maxsize`` from
+ :ref:`settings outgoing` for this engine.
+
+``max_connections`` :
+ `Pool limit configuration`_, overwrites value ``pool_connections`` from
+ :ref:`settings outgoing` for this engine.
+
+``keepalive_expiry`` :
+ `Pool limit configuration`_, overwrites value ``keepalive_expiry`` from
+ :ref:`settings outgoing` for this engine.
+
+
+.. _private engines:
+
+Private Engines (``tokens``)
+============================
+
+Administrators might find themselves wanting to limit access to some of the
+enabled engines on their instances. It might be because they do not want to
+expose some private information through :ref:`offline engines`. Or they would
+rather share engines only with their trusted friends or colleagues.
+
+.. sidebar:: info
+
+ Initial sponsored by `Search and Discovery Fund
+ <https://nlnet.nl/discovery>`_ of `NLnet Foundation <https://nlnet.nl/>`_.
+
+To solve this issue the concept of *private engines* exists.
+
+A new option was added to engines named `tokens`. It expects a list of strings.
+If the user making a request presents one of the tokens of an engine, they can
+access information about the engine and make search requests.
+
+Example configuration to restrict access to the Arch Linux Wiki engine:
+
+.. code:: yaml
+
+ - name: arch linux wiki
+ engine: archlinux
+ shortcut: al
+ tokens: [ 'my-secret-token' ]
+
+Unless a user has configured the right token, the engine is going to be hidden
+from them. It is not going to be included in the list of engines on the
+Preferences page and in the output of `/config` REST API call.
+
+Tokens can be added to one's configuration on the Preferences page under "Engine
+tokens". The input expects a comma separated list of strings.
+
+The distribution of the tokens from the administrator to the users is not carved
+in stone. As providing access to such engines implies that the admin knows and
+trusts the user, we do not see necessary to come up with a strict process.
+Instead, we would like to add guidelines to the documentation of the feature.
+
+
+Example: Multilingual Search
+============================
+
+SearXNG does not support true multilingual search. You have to use the language
+prefix in your search query when searching in a different language.
+
+But there is a workaround: By adding a new search engine with a different
+language, SearXNG will search in your default and other language.
+
+Example configuration in settings.yml for a German and English speaker:
+
+.. code-block:: yaml
+
+ search:
+ default_lang : "de"
+ ...
+
+ engines:
+ - name : google english
+ engine : google
+ language : en
+ ...
+
+When searching, the default google engine will return German results and
+"google english" will return English results.
+
diff --git a/_sources/admin/settings/settings_general.rst.txt b/_sources/admin/settings/settings_general.rst.txt
new file mode 100644
index 000000000..75acb4f6d
--- /dev/null
+++ b/_sources/admin/settings/settings_general.rst.txt
@@ -0,0 +1,42 @@
+.. _settings general:
+
+============
+``general:``
+============
+
+.. code:: yaml
+
+ general:
+ debug: false
+ instance_name: "SearXNG"
+ privacypolicy_url: false
+ donation_url: false
+ contact_url: false
+ enable_metrics: true
+ open_metrics: ''
+
+``debug`` : ``$SEARXNG_DEBUG``
+ Allow a more detailed log if you run SearXNG directly. Display *detailed* error
+ messages in the browser too, so this must be deactivated in production.
+
+``donation_url`` :
+ Set value to ``true`` to use your own donation page written in the
+ :ref:`searx/info/en/donate.md <searx.infopage>` and use ``false`` to disable
+ the donation link altogether.
+
+``privacypolicy_url``:
+ Link to privacy policy.
+
+``contact_url``:
+ Contact ``mailto:`` address or WEB form.
+
+``enable_metrics``:
+ Enabled by default. Record various anonymous metrics available at ``/stats``,
+ ``/stats/errors`` and ``/preferences``.
+
+``open_metrics``:
+ Disabled by default. Set to a secret password to expose an
+ `OpenMetrics API <https://github.com/prometheus/OpenMetrics>`_ at ``/metrics``,
+ e.g. for usage with Prometheus. The ``/metrics`` endpoint is using HTTP Basic Auth,
+ where the password is the value of ``open_metrics`` set above. The username used for
+ Basic Auth can be randomly chosen as only the password is being validated.
diff --git a/_sources/admin/settings/settings_outgoing.rst.txt b/_sources/admin/settings/settings_outgoing.rst.txt
new file mode 100644
index 000000000..7d49ab789
--- /dev/null
+++ b/_sources/admin/settings/settings_outgoing.rst.txt
@@ -0,0 +1,110 @@
+.. _settings outgoing:
+
+=============
+``outgoing:``
+=============
+
+Communication with search engines.
+
+.. code:: yaml
+
+ outgoing:
+ request_timeout: 2.0 # default timeout in seconds, can be override by engine
+ max_request_timeout: 10.0 # the maximum timeout in seconds
+ useragent_suffix: "" # information like an email address to the administrator
+ pool_connections: 100 # Maximum number of allowable connections, or null
+ # for no limits. The default is 100.
+ pool_maxsize: 10 # Number of allowable keep-alive connections, or null
+ # to always allow. The default is 10.
+ enable_http2: true # See https://www.python-httpx.org/http2/
+ # uncomment below section if you want to use a custom server certificate
+ # see https://www.python-httpx.org/advanced/#changing-the-verification-defaults
+ # and https://www.python-httpx.org/compatibility/#ssl-configuration
+ # verify: ~/.mitmproxy/mitmproxy-ca-cert.cer
+ #
+ # uncomment below section if you want to use a proxyq see: SOCKS proxies
+ # https://2.python-requests.org/en/latest/user/advanced/#proxies
+ # are also supported: see
+ # https://2.python-requests.org/en/latest/user/advanced/#socks
+ #
+ # proxies:
+ # all://:
+ # - http://proxy1:8080
+ # - http://proxy2:8080
+ #
+ # using_tor_proxy: true
+ #
+ # Extra seconds to add in order to account for the time taken by the proxy
+ #
+ # extra_proxy_timeout: 10.0
+ #
+
+``request_timeout`` :
+ Global timeout of the requests made to others engines in seconds. A bigger
+ timeout will allow to wait for answers from slow engines, but in consequence
+ will slow SearXNG reactivity (the result page may take the time specified in the
+ timeout to load). Can be override by ``timeout`` in the :ref:`settings engine`.
+
+``useragent_suffix`` :
+ Suffix to the user-agent SearXNG uses to send requests to others engines. If an
+ engine wish to block you, a contact info here may be useful to avoid that.
+
+.. _Pool limit configuration: https://www.python-httpx.org/advanced/#pool-limit-configuration
+
+``pool_maxsize``:
+ Number of allowable keep-alive connections, or ``null`` to always allow. The
+ default is 10. See ``max_keepalive_connections`` `Pool limit configuration`_.
+
+``pool_connections`` :
+ Maximum number of allowable connections, or ``null`` # for no limits. The
+ default is 100. See ``max_connections`` `Pool limit configuration`_.
+
+``keepalive_expiry`` :
+ Number of seconds to keep a connection in the pool. By default 5.0 seconds.
+ See ``keepalive_expiry`` `Pool limit configuration`_.
+
+.. _httpx proxies: https://www.python-httpx.org/advanced/#http-proxying
+
+``proxies`` :
+ Define one or more proxies you wish to use, see `httpx proxies`_.
+ If there are more than one proxy for one protocol (http, https),
+ requests to the engines are distributed in a round-robin fashion.
+
+``source_ips`` :
+ If you use multiple network interfaces, define from which IP the requests must
+ be made. Example:
+
+ * ``0.0.0.0`` any local IPv4 address.
+ * ``::`` any local IPv6 address.
+ * ``192.168.0.1``
+ * ``[ 192.168.0.1, 192.168.0.2 ]`` these two specific IP addresses
+ * ``fe80::60a2:1691:e5a2:ee1f``
+ * ``fe80::60a2:1691:e5a2:ee1f/126`` all IP addresses in this network.
+ * ``[ 192.168.0.1, fe80::/126 ]``
+
+``retries`` :
+ Number of retry in case of an HTTP error. On each retry, SearXNG uses an
+ different proxy and source ip.
+
+``enable_http2`` :
+ Enable by default. Set to ``false`` to disable HTTP/2.
+
+.. _httpx verification defaults: https://www.python-httpx.org/advanced/#changing-the-verification-defaults
+.. _httpx ssl configuration: https://www.python-httpx.org/compatibility/#ssl-configuration
+
+``verify``: : ``$SSL_CERT_FILE``, ``$SSL_CERT_DIR``
+ Allow to specify a path to certificate.
+ see `httpx verification defaults`_.
+
+ In addition to ``verify``, SearXNG supports the ``$SSL_CERT_FILE`` (for a file) and
+ ``$SSL_CERT_DIR`` (for a directory) OpenSSL variables.
+ see `httpx ssl configuration`_.
+
+``max_redirects`` :
+ 30 by default. Maximum redirect before it is an error.
+
+``using_tor_proxy`` :
+ Using tor proxy (``true``) or not (``false``) for all engines. The default is
+ ``false`` and can be overwritten in the :ref:`settings engine`
+
+
diff --git a/_sources/admin/settings/settings_redis.rst.txt b/_sources/admin/settings/settings_redis.rst.txt
new file mode 100644
index 000000000..9fb067553
--- /dev/null
+++ b/_sources/admin/settings/settings_redis.rst.txt
@@ -0,0 +1,49 @@
+.. _settings redis:
+
+==========
+``redis:``
+==========
+
+.. _Redis.from_url(url): https://redis-py.readthedocs.io/en/stable/connections.html#redis.client.Redis.from_url
+
+A redis DB can be connected by an URL, in :py:obj:`searx.redisdb` you
+will find a description to test your redis connection in SearXNG. When using
+sockets, don't forget to check the access rights on the socket::
+
+ ls -la /usr/local/searxng-redis/run/redis.sock
+ srwxrwx--- 1 searxng-redis searxng-redis ... /usr/local/searxng-redis/run/redis.sock
+
+In this example read/write access is given to the *searxng-redis* group. To get
+access rights to redis instance (the socket), your SearXNG (or even your
+developer) account needs to be added to the *searxng-redis* group.
+
+``url`` : ``$SEARXNG_REDIS_URL``
+ URL to connect redis database, see `Redis.from_url(url)`_ & :ref:`redis db`::
+
+ redis://[[username]:[password]]@localhost:6379/0
+ rediss://[[username]:[password]]@localhost:6379/0
+ unix://[[username]:[password]]@/path/to/socket.sock?db=0
+
+.. _Redis Developer Notes:
+
+Redis Developer Notes
+=====================
+
+To set up a local redis instance, first set the socket path of the Redis DB
+in your YAML setting:
+
+.. code:: yaml
+
+ redis:
+ url: unix:///usr/local/searxng-redis/run/redis.sock?db=0
+
+Then use the following commands to install the redis instance (:ref:`manage
+redis.help`):
+
+.. code:: sh
+
+ $ ./manage redis.build
+ $ sudo -H ./manage redis.install
+ $ sudo -H ./manage redis.addgrp "${USER}"
+ # don't forget to logout & login to get member of group
+
diff --git a/_sources/admin/settings/settings_search.rst.txt b/_sources/admin/settings/settings_search.rst.txt
new file mode 100644
index 000000000..b8f37b423
--- /dev/null
+++ b/_sources/admin/settings/settings_search.rst.txt
@@ -0,0 +1,104 @@
+.. _settings search:
+
+===========
+``search:``
+===========
+
+.. code:: yaml
+
+ search:
+ safe_search: 0
+ autocomplete: ""
+ favicon_resolver: ""
+ default_lang: ""
+ ban_time_on_fail: 5
+ max_ban_time_on_fail: 120
+ suspended_times:
+ SearxEngineAccessDenied: 86400
+ SearxEngineCaptcha: 86400
+ SearxEngineTooManyRequests: 3600
+ cf_SearxEngineCaptcha: 1296000
+ cf_SearxEngineAccessDenied: 86400
+ recaptcha_SearxEngineCaptcha: 604800
+ formats:
+ - html
+
+``safe_search``:
+ Filter results.
+
+ - ``0``: None
+ - ``1``: Moderate
+ - ``2``: Strict
+
+``autocomplete``:
+ Existing autocomplete backends, leave blank to turn it off.
+
+ - ``dbpedia``
+ - ``duckduckgo``
+ - ``google``
+ - ``mwmbl``
+ - ``startpage``
+ - ``swisscows``
+ - ``qwant``
+ - ``wikipedia``
+
+``favicon_resolver``:
+ To activate favicons in SearXNG's result list select a default
+ favicon-resolver, leave blank to turn off the feature. Don't activate the
+ favicons before reading the :ref:`Favicons documentation <favicons>`.
+
+``default_lang``:
+ Default search language - leave blank to detect from browser information or
+ use codes from :origin:`searx/languages.py`.
+
+``languages``:
+ List of available languages - leave unset to use all codes from
+ :origin:`searx/languages.py`. Otherwise list codes of available languages.
+ The ``all`` value is shown as the ``Default language`` in the user interface
+ (in most cases, it is meant to send the query without a language parameter ;
+ in some cases, it means the English language) Example:
+
+ .. code:: yaml
+
+ languages:
+ - all
+ - en
+ - en-US
+ - de
+ - it-IT
+ - fr
+ - fr-BE
+
+``ban_time_on_fail``:
+ Ban time in seconds after engine errors.
+
+``max_ban_time_on_fail``:
+ Max ban time in seconds after engine errors.
+
+``suspended_times``:
+ Engine suspension time after error (in seconds; set to 0 to disable)
+
+ ``SearxEngineAccessDenied``: 86400
+ For error "Access denied" and "HTTP error [402, 403]"
+
+ ``SearxEngineCaptcha``: 86400
+ For error "CAPTCHA"
+
+ ``SearxEngineTooManyRequests``: 3600
+ For error "Too many request" and "HTTP error 429"
+
+ Cloudflare CAPTCHA:
+ - ``cf_SearxEngineCaptcha``: 1296000
+ - ``cf_SearxEngineAccessDenied``: 86400
+
+ Google CAPTCHA:
+ - ``recaptcha_SearxEngineCaptcha``: 604800
+
+``formats``:
+ Result formats available from web, remove format to deny access (use lower
+ case).
+
+ - ``html``
+ - ``csv``
+ - ``json``
+ - ``rss``
diff --git a/_sources/admin/settings/settings_server.rst.txt b/_sources/admin/settings/settings_server.rst.txt
new file mode 100644
index 000000000..cf480683e
--- /dev/null
+++ b/_sources/admin/settings/settings_server.rst.txt
@@ -0,0 +1,57 @@
+.. _settings server:
+
+===========
+``server:``
+===========
+
+.. code:: yaml
+
+ server:
+ base_url: http://example.org/location # change this!
+ port: 8888
+ bind_address: "127.0.0.1"
+ secret_key: "ultrasecretkey" # change this!
+ limiter: false
+ public_instance: false
+ image_proxy: false
+ default_http_headers:
+ X-Content-Type-Options : nosniff
+ X-Download-Options : noopen
+ X-Robots-Tag : noindex, nofollow
+ Referrer-Policy : no-referrer
+
+``base_url`` : ``$SEARXNG_URL``
+ The base URL where SearXNG is deployed. Used to create correct inbound links.
+
+``port`` & ``bind_address``: ``$SEARXNG_PORT`` & ``$SEARXNG_BIND_ADDRESS``
+ Port number and *bind address* of the SearXNG web application if you run it
+ directly using ``python searx/webapp.py``. Doesn't apply to a SearXNG
+ services running behind a proxy and using socket communications.
+
+``secret_key`` : ``$SEARXNG_SECRET``
+ Used for cryptography purpose.
+
+``limiter`` : ``$SEARXNG_LIMITER``
+ Rate limit the number of request on the instance, block some bots. The
+ :ref:`limiter` requires a :ref:`settings redis` database.
+
+.. _public_instance:
+
+``public_instance`` : ``$SEARXNG_PUBLIC_INSTANCE``
+
+ Setting that allows to enable features specifically for public instances (not
+ needed for local usage). By set to ``true`` the following features are
+ activated:
+
+ - :py:obj:`searx.botdetection.link_token` in the :ref:`limiter`
+
+.. _image_proxy:
+
+``image_proxy`` : ``$SEARXNG_IMAGE_PROXY``
+ Allow your instance of SearXNG of being able to proxy images. Uses memory space.
+
+.. _HTTP headers: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers
+
+``default_http_headers`` :
+ Set additional HTTP headers, see `#755 <https://github.com/searx/searx/issues/715>`__
+
diff --git a/_sources/admin/settings/settings_ui.rst.txt b/_sources/admin/settings/settings_ui.rst.txt
new file mode 100644
index 000000000..75f617683
--- /dev/null
+++ b/_sources/admin/settings/settings_ui.rst.txt
@@ -0,0 +1,74 @@
+.. _settings ui:
+
+=======
+``ui:``
+=======
+
+.. _cache busting:
+ https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Cache-Control#caching_static_assets_with_cache_busting
+
+.. code:: yaml
+
+ ui:
+ static_use_hash: false
+ default_locale: ""
+ query_in_title: false
+ infinite_scroll: false
+ center_alignment: false
+ cache_url: https://web.archive.org/web/
+ default_theme: simple
+ theme_args:
+ simple_style: auto
+ search_on_category_select: true
+ hotkeys: default
+ url_formatting: pretty
+
+.. _static_use_hash:
+
+``static_use_hash`` : ``$SEARXNG_STATIC_USE_HASH``
+ Enables `cache busting`_ of static files.
+
+``default_locale`` :
+ SearXNG interface language. If blank, the locale is detected by using the
+ browser language. If it doesn't work, or you are deploying a language
+ specific instance of searx, a locale can be defined using an ISO language
+ code, like ``fr``, ``en``, ``de``.
+
+``query_in_title`` :
+ When true, the result page's titles contains the query it decreases the
+ privacy, since the browser can records the page titles.
+
+``infinite_scroll``:
+ When true, automatically loads the next page when scrolling to bottom of the current page.
+
+``center_alignment`` : default ``false``
+ When enabled, the results are centered instead of being in the left (or RTL)
+ side of the screen. This setting only affects the *desktop layout*
+ (:origin:`min-width: @tablet <searx/static/themes/simple/src/less/definitions.less>`)
+
+.. cache_url:
+
+``cache_url`` : ``https://web.archive.org/web/``
+ URL prefix of the internet archive or cache, don't forget trailing slash (if
+ needed). The default is https://web.archive.org/web/ alternatives are:
+
+ - https://webcache.googleusercontent.com/search?q=cache:
+ - https://archive.today/
+
+``default_theme`` :
+ Name of the theme you want to use by default on your SearXNG instance.
+
+``theme_args.simple_style``:
+ Style of simple theme: ``auto``, ``light``, ``dark``, ``black``
+
+``results_on_new_tab``:
+ Open result links in a new tab by default.
+
+``search_on_category_select``:
+ Perform search immediately if a category selected. Disable to select multiple categories.
+
+``hotkeys``:
+ Hotkeys to use in the search interface: ``default``, ``vim`` (Vim-like).
+
+``url_formatting``:
+ Formatting type to use for result URLs: ``pretty``, ``full`` or ``host``.