forked from Ponysearch/Ponysearch
Merge pull request #1954 from dalf/fix.redis.init.2
[fix] follow up of PR-1856
This commit is contained in:
commit
9e9f57e48b
14 changed files with 30 additions and 25 deletions
|
@ -294,7 +294,7 @@ Global Settings
|
|||
|
||||
.. _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
|
||||
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 SerXNG. When using
|
||||
sockets, don't forget to check the access rights on the socket::
|
||||
|
||||
|
|
|
@ -239,8 +239,8 @@ For example on Fedora (RHEL): If you try to install a redis DB with socket
|
|||
communication and you want to connect to it from the SearXNG uWSGI, you will see a
|
||||
*Permission denied* in the log of your instance::
|
||||
|
||||
ERROR:searx.shared.redis: [searxng (993)] can't connect redis DB ...
|
||||
ERROR:searx.shared.redis: Error 13 connecting to unix socket: /usr/local/searxng-redis/run/redis.sock. Permission denied.
|
||||
ERROR:searx.redisdb: [searxng (993)] can't connect redis DB ...
|
||||
ERROR:searx.redisdb: Error 13 connecting to unix socket: /usr/local/searxng-redis/run/redis.sock. Permission denied.
|
||||
ERROR:searx.plugins.limiter: init limiter DB failed!!!
|
||||
|
||||
Even if your *searxng* user of the uWSGI process is added to additional groups
|
||||
|
|
|
@ -132,5 +132,5 @@ to see if there are some left overs. In this example there exists a *old*
|
|||
INFO: [OK] (old) account 'filtron' does not exists
|
||||
INFO: [OK] (old) account 'morty' does not exists
|
||||
...
|
||||
INFO searx.shared : Use shared_simple implementation
|
||||
INFO searx.shared.redis : connected redis DB --> default
|
||||
INFO searx.redisdb : connecting to Redis db=0 path='/usr/local/searxng-redis/run/redis.sock'
|
||||
INFO searx.redisdb : connected to Redis
|
||||
|
|
|
@ -4,5 +4,5 @@
|
|||
Redis DB
|
||||
========
|
||||
|
||||
.. automodule:: searx.shared.redisdb
|
||||
.. automodule:: searx.redisdb
|
||||
:members:
|
12
manage
12
manage
|
@ -32,6 +32,12 @@ export NODE_MINIMUM_VERSION="16.13.0"
|
|||
BLACK_OPTIONS=("--target-version" "py37" "--line-length" "120" "--skip-string-normalization")
|
||||
BLACK_TARGETS=("--exclude" "searx/static,searx/languages.py" "--include" 'searxng.msg|\.pyi?$' "searx" "searxng_extra" "tests")
|
||||
|
||||
_dev_redis_sock="/usr/local/searxng-redis/run/redis.sock"
|
||||
# set SEARXNG_REDIS_URL if it is not defined and "{_dev_redis_sock}" exists.
|
||||
if [ -S "${_dev_redis_sock}" ] && [ -z "${SEARXNG_REDIS_URL}" ]; then
|
||||
export SEARXNG_REDIS_URL="unix://${_dev_redis_sock}?db=0"
|
||||
fi
|
||||
|
||||
pylint.FILES() {
|
||||
|
||||
# List files tagged by comment:
|
||||
|
@ -65,6 +71,8 @@ help() {
|
|||
cat <<EOF
|
||||
buildenv:
|
||||
rebuild ./utils/brand.env
|
||||
webapp.:
|
||||
run : run developer instance
|
||||
weblate.:
|
||||
push.translations: push translation changes from SearXNG to Weblate's counterpart
|
||||
to.translations: Update 'translations' branch with last additions from Weblate.
|
||||
|
@ -121,6 +129,10 @@ pygments.:
|
|||
EOF
|
||||
go.help
|
||||
static_help
|
||||
cat <<EOF
|
||||
environment ...
|
||||
SEARXNG_REDIS_URL : ${SEARXNG_REDIS_URL}
|
||||
EOF
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -16,7 +16,7 @@ Enable the plugin in ``settings.yml``:
|
|||
import re
|
||||
from flask import request
|
||||
|
||||
from searx.shared import redisdb
|
||||
from searx import redisdb
|
||||
from searx.redislib import incr_sliding_window
|
||||
|
||||
name = "Request limiter"
|
||||
|
|
|
@ -7,8 +7,8 @@
|
|||
This implementation uses the :ref:`settings redis` setup from ``settings.yml``.
|
||||
A redis DB connect can be tested by::
|
||||
|
||||
>>> from searx.shared import redisdb
|
||||
>>> redisdb.init()
|
||||
>>> from searx import redisdb
|
||||
>>> redisdb.initialize()
|
||||
True
|
||||
>>> db = redisdb.client()
|
||||
>>> db.set("foo", "bar")
|
||||
|
@ -30,7 +30,7 @@ OLD_REDIS_URL_DEFAULT_URL = 'unix:///usr/local/searxng-redis/run/redis.sock?db=0
|
|||
"""This was the default Redis URL in settings.yml."""
|
||||
|
||||
_CLIENT = None
|
||||
logger = logging.getLogger('searx.shared.redisdb')
|
||||
logger = logging.getLogger(__name__)
|
||||
|
||||
|
||||
def client() -> redis.Redis:
|
|
@ -14,7 +14,7 @@ from typing_extensions import TypedDict, Literal
|
|||
import redis.exceptions
|
||||
|
||||
from searx import logger, settings, searx_debug
|
||||
from searx.shared.redisdb import client as get_redis_client
|
||||
from searx.redisdb import client as get_redis_client
|
||||
from searx.exceptions import SearxSettingsException
|
||||
from searx.search.processors import PROCESSORS
|
||||
from searx.search.checker import Checker
|
||||
|
|
|
@ -17,7 +17,7 @@ import time
|
|||
import importlib
|
||||
from typing import Callable
|
||||
|
||||
from searx.shared.redisdb import client as get_redis_client
|
||||
from searx.redisdb import client as get_redis_client
|
||||
from searx.redislib import lua_script_storage
|
||||
|
||||
|
||||
|
|
|
@ -174,7 +174,7 @@ SCHEMA = {
|
|||
'default_http_headers': SettingsValue(dict, {}),
|
||||
},
|
||||
'redis': {
|
||||
'url': SettingsValue((None, False, str), False),
|
||||
'url': SettingsValue((None, False, str), False, 'SEARXNG_REDIS_URL'),
|
||||
},
|
||||
'ui': {
|
||||
'static_path': SettingsDirectoryValue(str, os.path.join(searx_dir, 'static')),
|
||||
|
|
|
@ -1,6 +0,0 @@
|
|||
# SPDX-License-Identifier: AGPL-3.0-or-later
|
||||
# lint: pylint
|
||||
"""Initialization of a *shared* storage.
|
||||
"""
|
||||
|
||||
from . import redisdb
|
|
@ -120,7 +120,7 @@ from searx.locales import (
|
|||
# renaming names from searx imports ...
|
||||
from searx.autocomplete import search_autocomplete, backends as autocomplete_backends
|
||||
from searx.languages import language_codes as languages
|
||||
from searx.shared.redisdb import initialize as redis_initialize
|
||||
from searx.redisdb import initialize as redis_initialize
|
||||
from searx.search import SearchWithPlugins, initialize as search_initialize
|
||||
from searx.network import stream as http_stream, set_context_network_name
|
||||
from searx.search.checker import get_result as checker_get_result
|
||||
|
|
|
@ -295,7 +295,7 @@ In your instance, redis DB connector is configured at:
|
|||
|
||||
${redis_url}
|
||||
"
|
||||
if searxng.instance.exec python -c "from searx.shared import redisdb; redisdb.initialize() or exit(42)"; then
|
||||
if searxng.instance.exec python -c "from searx import redisdb; redisdb.initialize() or exit(42)"; then
|
||||
info_msg "SearXNG instance is able to connect redis DB."
|
||||
return
|
||||
fi
|
||||
|
@ -317,8 +317,8 @@ In your instance, redis DB connector is configured at:
|
|||
# fedora35 there is v2.0.20 installed --> no way to get additional
|
||||
# groups on fedora's tyrant mode.
|
||||
#
|
||||
# ERROR:searx.shared.redis: [searxng (993)] can't connect redis DB ...
|
||||
# ERROR:searx.shared.redis: Error 13 connecting to unix socket: /usr/local/searxng-redis/run/redis.sock. Permission denied.
|
||||
# ERROR:searx.redisdb: [searxng (993)] can't connect redis DB ...
|
||||
# ERROR:searx.redisdb: Error 13 connecting to unix socket: /usr/local/searxng-redis/run/redis.sock. Permission denied.
|
||||
# ERROR:searx.plugins.limiter: init limiter DB failed!!!
|
||||
#
|
||||
# $ ps -aef | grep '/usr/sbin/uwsgi --ini searxng.ini'
|
||||
|
|
|
@ -26,8 +26,7 @@ if os.path.isfile(OLD_SETTING):
|
|||
))
|
||||
warnings.warn(msg, DeprecationWarning)
|
||||
|
||||
from searx.shared import redisdb
|
||||
from searx import get_setting
|
||||
from searx import redisdb, get_setting
|
||||
|
||||
if not redisdb.initialize():
|
||||
warnings.warn("can't connect to redis DB at: %s" % get_setting('redis.url'), RuntimeWarning, stacklevel=2)
|
||||
|
|
Loading…
Reference in a new issue