mirror of https://github.com/searxng/searxng.git
[doc] add some documentation about the limiter plugin (and redis)
Requested-by: https://github.com/searxng/searxng/discussions/993#discussioncomment-2396914 Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
This commit is contained in:
parent
16aa731053
commit
37493b0a1e
|
@ -226,6 +226,17 @@ Global Settings
|
||||||
|
|
||||||
.. _Redis.from_url(url): https://redis-py.readthedocs.io/en/stable/connections.html#redis.client.Redis.from_url
|
.. _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.shared.redisdb` you
|
||||||
|
will find a description to test your redis connection in SerXNG. 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``
|
``url``
|
||||||
URL to connect redis database, see `Redis.from_url(url)`_ & :ref:`redis db`::
|
URL to connect redis database, see `Redis.from_url(url)`_ & :ref:`redis db`::
|
||||||
|
|
||||||
|
@ -235,17 +246,21 @@ Global Settings
|
||||||
|
|
||||||
.. admonition:: Tip for developers
|
.. admonition:: Tip for developers
|
||||||
|
|
||||||
To set up a redis instance simply use::
|
To set up a local redis instance using sockets simply use::
|
||||||
|
|
||||||
$ ./manage redis.build
|
$ ./manage redis.build
|
||||||
$ sudo -H ./manage redis.install
|
$ sudo -H ./manage redis.install
|
||||||
|
|
||||||
To get access rights to this instance, your developer account needs to be
|
|
||||||
added to the *searxng-redis* group::
|
|
||||||
|
|
||||||
$ sudo -H ./manage redis.addgrp "${USER}"
|
$ sudo -H ./manage redis.addgrp "${USER}"
|
||||||
# don't forget to logout & login to get member of group
|
# don't forget to logout & login to get member of group
|
||||||
|
|
||||||
|
The YAML setting for such a redis instance is:
|
||||||
|
|
||||||
|
.. code:: yaml
|
||||||
|
|
||||||
|
redis:
|
||||||
|
url: unix:///usr/local/searxng-redis/run/redis.sock?db=0
|
||||||
|
|
||||||
|
|
||||||
.. _settings outgoing:
|
.. _settings outgoing:
|
||||||
|
|
||||||
``outgoing:``
|
``outgoing:``
|
||||||
|
|
|
@ -5,17 +5,19 @@
|
||||||
How to protect an instance
|
How to protect an instance
|
||||||
==========================
|
==========================
|
||||||
|
|
||||||
|
.. tip::
|
||||||
|
|
||||||
|
To protect your instance a installation of filtron (as described here) is no
|
||||||
|
longer needed, alternatively activate the :ref:`limiter plugin` in your
|
||||||
|
``settings.yml``. Note that the :ref:`limiter plugin` requires a :ref:`Redis
|
||||||
|
<settings redis>` database.
|
||||||
|
|
||||||
|
|
||||||
.. sidebar:: further reading
|
.. sidebar:: further reading
|
||||||
|
|
||||||
- :ref:`filtron.sh`
|
- :ref:`filtron.sh`
|
||||||
- :ref:`nginx searxng site`
|
- :ref:`nginx searxng site`
|
||||||
|
|
||||||
|
|
||||||
.. contents:: Contents
|
|
||||||
:depth: 2
|
|
||||||
:local:
|
|
||||||
:backlinks: entry
|
|
||||||
|
|
||||||
.. _filtron: https://github.com/searxng/filtron
|
.. _filtron: https://github.com/searxng/filtron
|
||||||
|
|
||||||
SearXNG depends on external search services. To avoid the abuse of these services
|
SearXNG depends on external search services. To avoid the abuse of these services
|
||||||
|
|
|
@ -4,6 +4,10 @@
|
||||||
Limiter Plugin
|
Limiter Plugin
|
||||||
==============
|
==============
|
||||||
|
|
||||||
|
.. sidebar:: info
|
||||||
|
|
||||||
|
The :ref:`limiter plugin` requires a :ref:`Redis <settings redis>` database.
|
||||||
|
|
||||||
.. automodule:: searx.plugins.limiter
|
.. automodule:: searx.plugins.limiter
|
||||||
:members:
|
:members:
|
||||||
|
|
||||||
|
|
|
@ -3,6 +3,10 @@
|
||||||
# pyright: basic
|
# pyright: basic
|
||||||
"""Some bot protection / rate limitation
|
"""Some bot protection / rate limitation
|
||||||
|
|
||||||
|
To monitore rate limits and protect privacy the IP addresses are getting stored
|
||||||
|
with a hash so the limiter plugin knows who to block. A redis database is
|
||||||
|
needed to store the hash values.
|
||||||
|
|
||||||
Enable the plugin in ``settings.yml``:
|
Enable the plugin in ``settings.yml``:
|
||||||
|
|
||||||
- ``server.limiter: true``
|
- ``server.limiter: true``
|
||||||
|
|
Loading…
Reference in New Issue