You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 
Go to file
Markus Heiser fd814aac86 [mod] isolation of botdetection from the limiter
This patch was inspired by the discussion around PR-2882 [2].  The goals of this
patch are:

1. Convert plugin searx.plugin.limiter to normal code [1]
2. isolation of botdetection from the limiter [2]
3. searx/{tools => botdetection}/config.py and drop searx.tools
4. in URL /config, 'limiter.enabled' is true only if the limiter is really
   enabled (Redis is available).

This patch moves all the code that belongs to botdetection into namespace
searx.botdetection and code that belongs to limiter is placed in namespace
searx.limiter.

Tthe limiter used to be a plugin at some point botdetection was added, it was
not a plugin.  The modularization of these two components was long overdue.
With the clear modularization, the documentation could then also be organized
according to the architecture.

[1] https://github.com/searxng/searxng/pull/2882
[2] https://github.com/searxng/searxng/pull/2882#issuecomment-1741716891

To test:

- check the app works without the limiter, check `/config`
- check the app works with the limiter and with the token, check `/config`
- make docs.live .. and read
  - http://0.0.0.0:8000/admin/searx.limiter.html
  - http://0.0.0.0:8000/src/searx.botdetection.html#botdetection

Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
7 months ago
.devcontainer Add GitHub Codespaces configuration 1 year ago
.github Add support for Python 3.12 7 months ago
.vscode Add GitHub Codespaces configuration 1 year ago
dockerfiles [fix] harmonize default settings for caching of /static files 8 months ago
docs [mod] isolation of botdetection from the limiter 7 months ago
examples Fix whitespaces 8 years ago
searx [mod] isolation of botdetection from the limiter 7 months ago
searxng_extra [fix] update user agent 8 months ago
src/brand [simple] ImageLayout.watch: `img_load_error.svg` if img load fails 3 years ago
tests [mod] isolation of botdetection from the limiter 7 months ago
utils [mod] settings.yml: remove plugin settings for plugins that don't exist anymore 8 months ago
.coveragerc [mod] use github actions instead of travis 4 years ago
.dir-locals.el [emacs] .dir-locals.el: add Language Server Protocol Support (LSP) 1 year ago
.dockerignore [fix] tidy up ignore lists .gitignore & .dockerignore 3 years ago
.editorconfig [enh] add .editorconfig 1 year ago
.gitattributes [fix] update .gitattributes 3 years ago
.gitignore SearXNG version: fix make docker 1 year ago
.nvmrc Upgrade dependencies 8 months ago
.pylintrc [mod] make python code pylint 2.16.1 compliant 1 year ago
.weblate weblate: migration to https://translate.codeberg.org/ 1 year ago
.yamllint.yml [enh] add test.yamllint - lint yaml files 3 years ago
AUTHORS.rst [fix] keyboard navigation / simple theme (UI) 9 months ago
CHANGELOG.rst [releases] rolling release: commit history replaces the CHANGELOG 1 year ago
CONTRIBUTING.md reference docs.searxng.org 2 years ago
Dockerfile Bump Alpine 3.18 (Python 3.11) 1 year ago
LICENSE [fix] full AGPLv3+ license according to #382 9 years ago
Makefile [doc] improve documentation of make targets and ./manage script 10 months ago
PULL_REQUEST_TEMPLATE.md [chore] fix typo and spacing in pull request template 9 months ago
README.rst readme typo 8 months ago
SECURITY.md [enh] add security policy 2 years ago
babel.cfg [fix] jinja/babel: WithExtension and AutoEscapeExtension are built-in now. 2 years ago
manage [fix] black --exclude option is a regular expression 8 months ago
package.json Upgrade dependencies 8 months ago
pyrightconfig-ci.json [mod] add test.pyright to test & ci.test targets 2 years ago
pyrightconfig.json [fix] pyrightconfig.json include only dedicated folders in the test 2 years ago
requirements-dev.txt Bump sphinx-tabs from 3.4.1 to 3.4.4 7 months ago
requirements.txt Bump babel from 2.13.0 to 2.13.1 7 months ago
setup.py [mod] replace /help by /info pages and include pages in project docs 2 years ago

README.rst

.. SPDX-License-Identifier: AGPL-3.0-or-later

----

.. figure:: https://raw.githubusercontent.com/searxng/searxng/master/src/brand/searxng.svg
   :target: https://docs.searxng.org/
   :alt: SearXNG
   :width: 100%
   :align: center

----

Privacy-respecting, hackable `metasearch engine`_

Searx.space_ lists ready-to-use running instances.

A user_, admin_ and developer_ handbook is available on the homepage_.

|SearXNG install|
|SearXNG homepage|
|SearXNG wiki|
|AGPL License|
|Issues|
|commits|
|weblate|
|SearXNG logo|

----

.. _searx.space: https://searx.space
.. _user: https://docs.searxng.org/user
.. _admin: https://docs.searxng.org/admin
.. _developer: https://docs.searxng.org/dev
.. _homepage: https://docs.searxng.org/
.. _metasearch engine: https://en.wikipedia.org/wiki/Metasearch_engine

.. |SearXNG logo| image:: https://raw.githubusercontent.com/searxng/searxng/master/src/brand/searxng-wordmark.svg
   :target: https://docs.searxng.org/
   :width: 5%

.. |SearXNG install| image:: https://img.shields.io/badge/-install-blue
   :target: https://docs.searxng.org/admin/installation.html

.. |SearXNG homepage| image:: https://img.shields.io/badge/-homepage-blue
   :target: https://docs.searxng.org/

.. |SearXNG wiki| image:: https://img.shields.io/badge/-wiki-blue
   :target: https://github.com/searxng/searxng/wiki

.. |AGPL License|  image:: https://img.shields.io/badge/license-AGPL-blue.svg
   :target: https://github.com/searxng/searxng/blob/master/LICENSE

.. |Issues| image:: https://img.shields.io/github/issues/searxng/searxng?color=yellow&label=issues
   :target: https://github.com/searxng/searxng/issues

.. |PR| image:: https://img.shields.io/github/issues-pr-raw/searxng/searxng?color=yellow&label=PR
   :target: https://github.com/searxng/searxng/pulls

.. |commits| image:: https://img.shields.io/github/commit-activity/y/searxng/searxng?color=yellow&label=commits
   :target: https://github.com/searxng/searxng/commits/master

.. |weblate| image:: https://translate.codeberg.org/widgets/searxng/-/searxng/svg-badge.svg
   :target: https://translate.codeberg.org/projects/searxng/


Contact
=======

Ask questions or just chat about SearXNG on

IRC
  `#searxng on libera.chat <https://web.libera.chat/?channel=#searxng>`_
  which is bridged to Matrix.

Matrix
  `#searxng:matrix.org <https://matrix.to/#/#searxng:matrix.org>`_


Setup
=====

- A well maintained `Docker image`_, also built for ARM64 and ARM/v7
  architectures.
- Alternatively there are *up to date* `installation scripts`_.
- For individual setup consult our detailed `Step by step`_ instructions.
- To fine-tune your instance, take a look at the `Administrator documentation`_.

.. _Administrator documentation: https://docs.searxng.org/admin/index.html
.. _Step by step: https://docs.searxng.org/admin/installation-searxng.html
.. _installation scripts: https://docs.searxng.org/admin/installation-scripts.html
.. _Docker image: https://github.com/searxng/searxng-docker

Translations
============

.. _Weblate: https://translate.codeberg.org/projects/searxng/searxng/

Help translate SearXNG at `Weblate`_

.. figure:: https://translate.codeberg.org/widgets/searxng/-/multi-auto.svg
   :target: https://translate.codeberg.org/projects/searxng/


Contributing
============

.. _development quickstart: https://docs.searxng.org/dev/quickstart.html
.. _developer documentation: https://docs.searxng.org/dev/index.html

Are you a developer?  Have a look at our `development quickstart`_ guide, it's
very easy to contribute.  Additionally we have a `developer documentation`_.


Codespaces
==========

You can contribute from your browser using `GitHub Codespaces`_:

- Fork the repository
- Click on the ``<> Code`` green button
- Click on the ``Codespaces`` tab instead of ``Local``
- Click on ``Create codespace on master``
- VSCode is going to start in the browser
- Wait for ``git pull && make install`` to appear and then disappear
- You have `120 hours per month`_ (see also your `list of existing Codespaces`_)
- You can start SearXNG using ``make run`` in the terminal or by pressing ``Ctrl+Shift+B``

.. _GitHub Codespaces: https://docs.github.com/en/codespaces/overview
.. _120 hours per month: https://github.com/settings/billing
.. _list of existing Codespaces: https://github.com/codespaces