From f798ddd4922d793d5e6ccb7c4111810d549ff4f4 Mon Sep 17 00:00:00 2001 From: Gaspard d'Hautefeuille Date: Wed, 9 Jul 2025 07:55:37 +0200 Subject: [mod] migrate from Redis to Valkey (#4795) This patch migrates from `redis==5.2.1` [1] to `valkey==6.1.0` [2]. The migration to valkey is necessary because the company behind Redis has decided to abandon the open source license. After experiencing a drop in user numbers, they now want to run it under a dual license again. But this move demonstrates once again how unreliable the company is and how it treats open source developers. To review first, read the docs:: $ make docs.live Follow the instructions to remove redis: - http://0.0.0.0:8000/admin/settings/settings_redis.html Config and install a local valkey DB: - http://0.0.0.0:8000/admin/settings/settings_valkey.html [1] https://pypi.org/project/redis/ [2] https://pypi.org/project/valkey/ Co-authored-by: HLFH Co-authored-by: Markus Heiser --- docs/admin/settings/index.rst | 3 +- docs/admin/settings/settings_redis.rst | 44 ++++++++++----------------- docs/admin/settings/settings_server.rst | 2 +- docs/admin/settings/settings_valkey.rst | 53 +++++++++++++++++++++++++++++++++ 4 files changed, 71 insertions(+), 31 deletions(-) create mode 100644 docs/admin/settings/settings_valkey.rst (limited to 'docs/admin/settings') diff --git a/docs/admin/settings/index.rst b/docs/admin/settings/index.rst index eb0e07a53..b9d0408ea 100644 --- a/docs/admin/settings/index.rst +++ b/docs/admin/settings/index.rst @@ -20,8 +20,7 @@ Settings settings_server settings_ui settings_redis + settings_valkey settings_outgoing settings_categories_as_tabs settings_plugins - - diff --git a/docs/admin/settings/settings_redis.rst b/docs/admin/settings/settings_redis.rst index 9fb067553..e1221ac32 100644 --- a/docs/admin/settings/settings_redis.rst +++ b/docs/admin/settings/settings_redis.rst @@ -4,46 +4,34 @@ ``redis:`` ========== -.. _Redis.from_url(url): https://redis-py.readthedocs.io/en/stable/connections.html#redis.client.Redis.from_url +.. _Valkey: https://valkey.io -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:: +.. attention:: - ls -la /usr/local/searxng-redis/run/redis.sock - srwxrwx--- 1 searxng-redis searxng-redis ... /usr/local/searxng-redis/run/redis.sock + SearXNG is switching from the Redis DB to Valkey_. The configuration + description of Valkey_ in SearXNG can be found here: :ref:`settings + `. -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 +If you have built and installed a local Redis DB for SearXNG, it is recommended +to uninstall it now and replace it with the installation of a Valkey_ DB. .. _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: +To uninstall SearXNG's local Redis DB you can use: -.. code:: yaml +.. code:: sh - redis: - url: unix:///usr/local/searxng-redis/run/redis.sock?db=0 + # stop your SearXNG instance + $ ./utils/searxng.sh remove.redis -Then use the following commands to install the redis instance (:ref:`manage -redis.help`): +Remove the Redis DB in your YAML setting: -.. code:: sh +.. code:: yaml - $ ./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 + redis: + url: unix:///usr/local/searxng-redis/run/redis.sock?db=0 +To install Valkey_ read: :ref:`Valkey Developer Notes` diff --git a/docs/admin/settings/settings_server.rst b/docs/admin/settings/settings_server.rst index 84908d43f..59c0d7791 100644 --- a/docs/admin/settings/settings_server.rst +++ b/docs/admin/settings/settings_server.rst @@ -36,7 +36,7 @@ ``limiter`` : ``$SEARXNG_LIMITER`` Rate limit the number of request on the instance, block some bots. The - :ref:`limiter` requires a :ref:`settings redis` database. + :ref:`limiter` requires a :ref:`settings valkey` database. .. _public_instance: diff --git a/docs/admin/settings/settings_valkey.rst b/docs/admin/settings/settings_valkey.rst new file mode 100644 index 000000000..396d5c8ad --- /dev/null +++ b/docs/admin/settings/settings_valkey.rst @@ -0,0 +1,53 @@ +.. _settings valkey: + +=========== +``valkey:`` +=========== + +.. _Valkey: + https://valkey.io +.. _Valkey-Installation: + https://valkey.io/topics/installation/ +.. _There are several ways to specify a database number: + https://valkey-py.readthedocs.io/en/stable/connections.html#valkey.Valkey.from_url + +A Valkey_ DB can be connected by an URL, in section :ref:`valkey db` you will +find a description to test your valkey connection in SearXNG. + +``url`` : ``$SEARXNG_VALKEY_URL`` + URL to connect valkey database. `There are several ways to specify a database + number`_:: + + valkey://[[username]:[password]]@localhost:6379/0 + valkeys://[[username]:[password]]@localhost:6379/0 + unix://[[username]:[password]]@/path/to/socket.sock?db=0 + + When using sockets, don't forget to check the access rights on the socket:: + + ls -la /usr/local/searxng-valkey/run/valkey.sock + srwxrwx--- 1 searxng-valkey searxng-valkey ... /usr/local/searxng-valkey/run/valkey.sock + + In this example read/write access is given to the *searxng-valkey* group. To + get access rights to valkey instance (the socket), your SearXNG (or even your + developer) account needs to be added to the *searxng-valkey* group. + + +.. _Valkey Developer Notes: + +Valkey Developer Notes +====================== + +To set up a local Valkey_ DB, set the URL connector in your YAML setting: + +.. code:: yaml + + valkey: + url: valkey://localhost:6379/0 + +To install a local Valkey_ DB from package manager read `Valkey-Installation`_ +or use: + +.. code:: sh + + $ ./utils/searxng.sh install valkey + # restart your SearXNG instance -- cgit v1.2.3