mirror of
				https://github.com/searxng/searxng.git
				synced 2025-10-31 18:47:07 -04:00 
			
		
		
		
	Merge pull request #994 from return42/add-limiter-redis-doc
[doc] add some documentation about the limiter plugin (and redis)
This commit is contained in:
		
						commit
						ef8af285a2
					
				| @ -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…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user