forked from Ponysearch/Ponysearch
Merge pull request #373 from dalf/searxng-environ
SearXNG: environment variables
This commit is contained in:
commit
9da9dbcbb4
28 changed files with 114 additions and 92 deletions
|
@ -17,14 +17,14 @@
|
||||||
# --------------
|
# --------------
|
||||||
|
|
||||||
# The setup of the SearXNG instance is done in the settings.yml
|
# The setup of the SearXNG instance is done in the settings.yml
|
||||||
# (SEARX_SETTINGS_PATH). Read the remarks in [1] carefully and don't forget to
|
# (SEARXNG_SETTINGS_PATH). Read the remarks in [1] carefully and don't forget to
|
||||||
# rebuild instance's environment (make buildenv) if needed. The settings.yml
|
# rebuild instance's environment (make buildenv) if needed. The settings.yml
|
||||||
# file of an already installed instance is shown by::
|
# file of an already installed instance is shown by::
|
||||||
#
|
#
|
||||||
# $ ./utils/searx.sh --help
|
# $ ./utils/searx.sh --help
|
||||||
# ---- SearXNG instance setup (already installed)
|
# ---- SearXNG instance setup (already installed)
|
||||||
# SEARX_SETTINGS_PATH : /etc/searx/settings.yml
|
# SEARXNG_SETTINGS_PATH : /etc/searx/settings.yml
|
||||||
# SEARX_SRC : /usr/local/searx/searx-src
|
# SEARX_SRC : /usr/local/searx/searx-src
|
||||||
#
|
#
|
||||||
# [1] https://searxng.github.io/searxng/admin/engines/settings.html
|
# [1] https://searxng.github.io/searxng/admin/engines/settings.html
|
||||||
|
|
||||||
|
|
|
@ -360,7 +360,7 @@ News
|
||||||
- Docker image updates
|
- Docker image updates
|
||||||
- Bang expression fixes
|
- Bang expression fixes
|
||||||
- Result merging fixes
|
- Result merging fixes
|
||||||
- New environment variable added: SEARX_BIND_ADDRESS
|
- New environment variable added: SEARXNG_BIND_ADDRESS
|
||||||
|
|
||||||
|
|
||||||
News
|
News
|
||||||
|
|
|
@ -15,7 +15,7 @@ ENV INSTANCE_NAME=searxng \
|
||||||
BASE_URL= \
|
BASE_URL= \
|
||||||
MORTY_KEY= \
|
MORTY_KEY= \
|
||||||
MORTY_URL= \
|
MORTY_URL= \
|
||||||
SEARX_SETTINGS_PATH=/etc/searx/settings.yml \
|
SEARXNG_SETTINGS_PATH=/etc/searx/settings.yml \
|
||||||
UWSGI_SETTINGS_PATH=/etc/searx/uwsgi.ini
|
UWSGI_SETTINGS_PATH=/etc/searx/uwsgi.ini
|
||||||
|
|
||||||
WORKDIR /usr/local/searx
|
WORKDIR /usr/local/searx
|
||||||
|
|
2
Makefile
2
Makefile
|
@ -29,7 +29,7 @@ run: install
|
||||||
sleep 2 ; \
|
sleep 2 ; \
|
||||||
xdg-open http://127.0.0.1:8888/ ; \
|
xdg-open http://127.0.0.1:8888/ ; \
|
||||||
) &
|
) &
|
||||||
SEARX_DEBUG=1 ./manage pyenv.cmd python -m searx.webapp
|
SEARXNG_DEBUG=1 ./manage pyenv.cmd python -m searx.webapp
|
||||||
|
|
||||||
PHONY += install uninstall
|
PHONY += install uninstall
|
||||||
install uninstall:
|
install uninstall:
|
||||||
|
|
|
@ -132,7 +132,7 @@ update_conf() {
|
||||||
update_conf "${FORCE_CONF_UPDATE}" "${UWSGI_SETTINGS_PATH}" "/usr/local/searx/dockerfiles/uwsgi.ini" "patch_uwsgi_settings"
|
update_conf "${FORCE_CONF_UPDATE}" "${UWSGI_SETTINGS_PATH}" "/usr/local/searx/dockerfiles/uwsgi.ini" "patch_uwsgi_settings"
|
||||||
|
|
||||||
# make sure there are searx settings
|
# make sure there are searx settings
|
||||||
update_conf "${FORCE_CONF_UPDATE}" "${SEARX_SETTINGS_PATH}" "/usr/local/searx/searx/settings.yml" "patch_searx_settings"
|
update_conf "${FORCE_CONF_UPDATE}" "${SEARXNG_SETTINGS_PATH}" "/usr/local/searx/searx/settings.yml" "patch_searx_settings"
|
||||||
|
|
||||||
# dry run (to update configuration files, then inspect them)
|
# dry run (to update configuration files, then inspect them)
|
||||||
if [ $DRY_RUN -eq 1 ]; then
|
if [ $DRY_RUN -eq 1 ]; then
|
||||||
|
|
|
@ -24,7 +24,7 @@ settings.yml location
|
||||||
|
|
||||||
The initial ``settings.yml`` we be load from these locations:
|
The initial ``settings.yml`` we be load from these locations:
|
||||||
|
|
||||||
1. the full path specified in the ``SEARX_SETTINGS_PATH`` environment variable.
|
1. the full path specified in the ``SEARXNG_SETTINGS_PATH`` environment variable.
|
||||||
2. ``/etc/searx/settings.yml``
|
2. ``/etc/searx/settings.yml``
|
||||||
|
|
||||||
If these files don't exist (or are empty or can't be read), SearXNG uses the
|
If these files don't exist (or are empty or can't be read), SearXNG uses the
|
||||||
|
@ -74,7 +74,7 @@ Global Settings
|
||||||
instance_name: "SearXNG" # displayed name
|
instance_name: "SearXNG" # displayed name
|
||||||
contact_url: false # mailto:contact@example.com
|
contact_url: false # mailto:contact@example.com
|
||||||
|
|
||||||
``debug`` : ``$SEARX_DEBUG``
|
``debug`` : ``$SEARXNG_DEBUG``
|
||||||
Allow a more detailed log if you run SearXNG directly. Display *detailed* error
|
Allow a more detailed log if you run SearXNG directly. Display *detailed* error
|
||||||
messages in the browser too, so this must be deactivated in production.
|
messages in the browser too, so this must be deactivated in production.
|
||||||
|
|
||||||
|
@ -114,12 +114,12 @@ Global Settings
|
||||||
If you change the value, don't forget to rebuild instance's environment
|
If you change the value, don't forget to rebuild instance's environment
|
||||||
(:ref:`utils/brand.env <make buildenv>`)
|
(:ref:`utils/brand.env <make buildenv>`)
|
||||||
|
|
||||||
``port`` & ``bind_address``: :ref:`buildenv SEARX_PORT & SEARX_BIND_ADDRESS <make buildenv>`
|
``port`` & ``bind_address``: :ref:`buildenv SEARXNG_PORT & SEARXNG_BIND_ADDRESS <make buildenv>`
|
||||||
Port number and *bind address* of the SearXNG web application if you run it
|
Port number and *bind address* of the SearXNG web application if you run it
|
||||||
directly using ``python searx/webapp.py``. Doesn't apply to SearXNG running on
|
directly using ``python searx/webapp.py``. Doesn't apply to SearXNG running on
|
||||||
Apache or Nginx.
|
Apache or Nginx.
|
||||||
|
|
||||||
``secret_key`` : ``$SEARX_SECRET``
|
``secret_key`` : ``$SEARXNG_SECRET``
|
||||||
Used for cryptography purpose.
|
Used for cryptography purpose.
|
||||||
|
|
||||||
``image_proxy`` :
|
``image_proxy`` :
|
||||||
|
|
|
@ -107,7 +107,7 @@ Check
|
||||||
=====
|
=====
|
||||||
|
|
||||||
To check your SearXNG setup, optional enable debugging and start the *webapp*.
|
To check your SearXNG setup, optional enable debugging and start the *webapp*.
|
||||||
SearXNG looks at the exported environment ``$SEARX_SETTINGS_PATH`` for a
|
SearXNG looks at the exported environment ``$SEARXNG_SETTINGS_PATH`` for a
|
||||||
configuration file.
|
configuration file.
|
||||||
|
|
||||||
.. kernel-include:: $DOCS_BUILD/includes/searx.rst
|
.. kernel-include:: $DOCS_BUILD/includes/searx.rst
|
||||||
|
|
|
@ -133,17 +133,17 @@ ${fedora_build}
|
||||||
|
|
||||||
.. code-block:: sh
|
.. code-block:: sh
|
||||||
|
|
||||||
$ sudo -H mkdir -p \"$(dirname ${SEARX_SETTINGS_PATH})\"
|
$ sudo -H mkdir -p \"$(dirname ${SEARXNG_SETTINGS_PATH})\"
|
||||||
$ sudo -H cp \"$SEARX_SRC/utils/templates/etc/searx/settings.yml\" \\
|
$ sudo -H cp \"$SEARX_SRC/utils/templates/etc/searx/settings.yml\" \\
|
||||||
\"${SEARX_SETTINGS_PATH}\"
|
\"${SEARXNG_SETTINGS_PATH}\"
|
||||||
|
|
||||||
.. group-tab:: searx/settings.yml
|
.. group-tab:: searx/settings.yml
|
||||||
|
|
||||||
.. code-block:: sh
|
.. code-block:: sh
|
||||||
|
|
||||||
$ sudo -H mkdir -p \"$(dirname ${SEARX_SETTINGS_PATH})\"
|
$ sudo -H mkdir -p \"$(dirname ${SEARXNG_SETTINGS_PATH})\"
|
||||||
$ sudo -H cp \"$SEARX_SRC/searx/settings.yml\" \\
|
$ sudo -H cp \"$SEARX_SRC/searx/settings.yml\" \\
|
||||||
\"${SEARX_SETTINGS_PATH}\"
|
\"${SEARXNG_SETTINGS_PATH}\"
|
||||||
|
|
||||||
.. tabs::
|
.. tabs::
|
||||||
|
|
||||||
|
@ -151,7 +151,7 @@ ${fedora_build}
|
||||||
|
|
||||||
.. code-block:: sh
|
.. code-block:: sh
|
||||||
|
|
||||||
$ sudo -H sed -i -e \"s/ultrasecretkey/\$(openssl rand -hex 16)/g\" \"$SEARX_SETTINGS_PATH\"
|
$ sudo -H sed -i -e \"s/ultrasecretkey/\$(openssl rand -hex 16)/g\" \"$SEARXNG_SETTINGS_PATH\"
|
||||||
|
|
||||||
.. END searx config
|
.. END searx config
|
||||||
|
|
||||||
|
@ -164,16 +164,16 @@ ${fedora_build}
|
||||||
.. code-block:: sh
|
.. code-block:: sh
|
||||||
|
|
||||||
# enable debug ..
|
# enable debug ..
|
||||||
$ sudo -H sed -i -e \"s/debug : False/debug : True/g\" \"$SEARX_SETTINGS_PATH\"
|
$ sudo -H sed -i -e \"s/debug : False/debug : True/g\" \"$SEARXNG_SETTINGS_PATH\"
|
||||||
|
|
||||||
# start webapp
|
# start webapp
|
||||||
$ sudo -H -u ${SERVICE_USER} -i
|
$ sudo -H -u ${SERVICE_USER} -i
|
||||||
(${SERVICE_USER})$ cd ${SEARX_SRC}
|
(${SERVICE_USER})$ cd ${SEARX_SRC}
|
||||||
(${SERVICE_USER})$ export SEARX_SETTINGS_PATH=\"${SEARX_SETTINGS_PATH}\"
|
(${SERVICE_USER})$ export SEARXNG_SETTINGS_PATH=\"${SEARXNG_SETTINGS_PATH}\"
|
||||||
(${SERVICE_USER})$ python searx/webapp.py
|
(${SERVICE_USER})$ python searx/webapp.py
|
||||||
|
|
||||||
# disable debug
|
# disable debug
|
||||||
$ sudo -H sed -i -e \"s/debug : True/debug : False/g\" \"$SEARX_SETTINGS_PATH\"
|
$ sudo -H sed -i -e \"s/debug : True/debug : False/g\" \"$SEARXNG_SETTINGS_PATH\"
|
||||||
|
|
||||||
Open WEB browser and visit http://$SEARX_INTERNAL_HTTP . If you are inside a
|
Open WEB browser and visit http://$SEARX_INTERNAL_HTTP . If you are inside a
|
||||||
container or in a script, test with curl:
|
container or in a script, test with curl:
|
||||||
|
|
|
@ -288,7 +288,7 @@ The uWSGI-App for the archlinux dsitros is configured in
|
||||||
least you should attend the settings of ``uid``, ``chdir``, ``env`` and
|
least you should attend the settings of ``uid``, ``chdir``, ``env`` and
|
||||||
``http``::
|
``http``::
|
||||||
|
|
||||||
env = SEARX_SETTINGS_PATH=/etc/searx/settings.yml
|
env = SEARXNG_SETTINGS_PATH=/etc/searx/settings.yml
|
||||||
http = 127.0.0.1:8888
|
http = 127.0.0.1:8888
|
||||||
|
|
||||||
chdir = /usr/local/searx/searx-src/searx
|
chdir = /usr/local/searx/searx-src/searx
|
||||||
|
|
|
@ -109,8 +109,8 @@ from the YAML configuration:
|
||||||
|
|
||||||
- ``SEARX_URL`` from :ref:`server.base_url <settings global server>` (aka
|
- ``SEARX_URL`` from :ref:`server.base_url <settings global server>` (aka
|
||||||
``PUBLIC_URL``)
|
``PUBLIC_URL``)
|
||||||
- ``SEARX_BIND_ADDRESS`` from :ref:`server.bind_address <settings global server>`
|
- ``SEARXNG_BIND_ADDRESS`` from :ref:`server.bind_address <settings global server>`
|
||||||
- ``SEARX_PORT`` from :ref:`server.port <settings global server>`
|
- ``SEARXNG_PORT`` from :ref:`server.port <settings global server>`
|
||||||
|
|
||||||
.. _make run:
|
.. _make run:
|
||||||
|
|
||||||
|
@ -124,7 +124,7 @@ browser (:man:`xdg-open`)::
|
||||||
|
|
||||||
$ make run
|
$ make run
|
||||||
PYENV OK
|
PYENV OK
|
||||||
SEARX_DEBUG=1 ./manage.sh pyenv.cmd python ./searx/webapp.py
|
SEARXNG_DEBUG=1 ./manage.sh pyenv.cmd python ./searx/webapp.py
|
||||||
...
|
...
|
||||||
INFO:werkzeug: * Running on http://127.0.0.1:8888/ (Press CTRL+C to quit)
|
INFO:werkzeug: * Running on http://127.0.0.1:8888/ (Press CTRL+C to quit)
|
||||||
|
|
||||||
|
@ -210,15 +210,15 @@ by underline::
|
||||||
|
|
||||||
make search.checker.google_news
|
make search.checker.google_news
|
||||||
|
|
||||||
To see HTTP requests and more use SEARX_DEBUG::
|
To see HTTP requests and more use SEARXNG_DEBUG::
|
||||||
|
|
||||||
make SEARX_DEBUG=1 search.checker.google_news
|
make SEARXNG_DEBUG=1 search.checker.google_news
|
||||||
|
|
||||||
.. _3xx: https://en.wikipedia.org/wiki/List_of_HTTP_status_codes#3xx_redirection
|
.. _3xx: https://en.wikipedia.org/wiki/List_of_HTTP_status_codes#3xx_redirection
|
||||||
|
|
||||||
To filter out HTTP redirects (3xx_)::
|
To filter out HTTP redirects (3xx_)::
|
||||||
|
|
||||||
make SEARX_DEBUG=1 search.checker.google_news | grep -A1 "HTTP/1.1\" 3[0-9][0-9]"
|
make SEARXNG_DEBUG=1 search.checker.google_news | grep -A1 "HTTP/1.1\" 3[0-9][0-9]"
|
||||||
...
|
...
|
||||||
Engine google news Checking
|
Engine google news Checking
|
||||||
https://news.google.com:443 "GET /search?q=life&hl=en&lr=lang_en&ie=utf8&oe=utf8&ceid=US%3Aen&gl=US HTTP/1.1" 302 0
|
https://news.google.com:443 "GET /search?q=life&hl=en&lr=lang_en&ie=utf8&oe=utf8&ceid=US%3Aen&gl=US HTTP/1.1" 302 0
|
||||||
|
|
8
manage
8
manage
|
@ -105,17 +105,17 @@ export DOCS_BUILD
|
||||||
buildenv() {
|
buildenv() {
|
||||||
|
|
||||||
# settings file from repository's working tree are used by default
|
# settings file from repository's working tree are used by default
|
||||||
SEARX_SETTINGS_PATH="${REPO_ROOT}/searx/settings.yml"
|
SEARXNG_SETTINGS_PATH="${REPO_ROOT}/searx/settings.yml"
|
||||||
|
|
||||||
if [ -r '/etc/searx/settings.yml' ]; then
|
if [ -r '/etc/searx/settings.yml' ]; then
|
||||||
if ask_yn "should settings read from: /etc/searx/settings.yml"; then
|
if ask_yn "should settings read from: /etc/searx/settings.yml"; then
|
||||||
SEARX_SETTINGS_PATH='/etc/searx/settings.yml'
|
SEARXNG_SETTINGS_PATH='/etc/searx/settings.yml'
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
export SEARX_SETTINGS_PATH
|
export SEARXNG_SETTINGS_PATH
|
||||||
(
|
(
|
||||||
set -e
|
set -e
|
||||||
SEARX_DEBUG=1 pyenv.cmd python utils/build_env.py 2>&1 \
|
SEARXNG_DEBUG=1 pyenv.cmd python utils/build_env.py 2>&1 \
|
||||||
| prefix_stdout "${_Blue}BUILDENV${_creset} "
|
| prefix_stdout "${_Blue}BUILDENV${_creset} "
|
||||||
)
|
)
|
||||||
return "${PIPESTATUS[0]}"
|
return "${PIPESTATUS[0]}"
|
||||||
|
|
|
@ -62,7 +62,7 @@ def logging_config_debug():
|
||||||
except ImportError:
|
except ImportError:
|
||||||
coloredlogs = None
|
coloredlogs = None
|
||||||
|
|
||||||
log_level = os.environ.get('SEARX_DEBUG_LOG_LEVEL', 'DEBUG')
|
log_level = os.environ.get('SEARXNG_DEBUG_LOG_LEVEL', 'DEBUG')
|
||||||
if coloredlogs and is_color_terminal():
|
if coloredlogs and is_color_terminal():
|
||||||
level_styles = {
|
level_styles = {
|
||||||
'spam': {'color': 'green', 'faint': True},
|
'spam': {'color': 'green', 'faint': True},
|
||||||
|
|
|
@ -41,6 +41,17 @@ STR_TO_BOOL = {
|
||||||
}
|
}
|
||||||
_UNDEFINED = object()
|
_UNDEFINED = object()
|
||||||
|
|
||||||
|
# compatibility
|
||||||
|
SEARX_ENVIRON_VARIABLES = {
|
||||||
|
'SEARX_DISABLE_ETC_SETTINGS': 'SEARXNG_DISABLE_ETC_SETTINGS',
|
||||||
|
'SEARX_SETTINGS_PATH': 'SEARXNG_SETTINGS_PATH',
|
||||||
|
'SEARX_DEBUG': 'SEARXNG_DEBUG',
|
||||||
|
'SEARX_PORT': 'SEARXNG_PORT',
|
||||||
|
'SEARX_BIND_ADDRESS': 'SEARXNG_BIND_ADDRESS',
|
||||||
|
'SEARX_SECRET': 'SEARXNG_SECRET',
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
class SettingsValue:
|
class SettingsValue:
|
||||||
"""Check and update a setting value
|
"""Check and update a setting value
|
||||||
|
@ -87,7 +98,6 @@ class SettingsValue:
|
||||||
self.check_type_definition(value)
|
self.check_type_definition(value)
|
||||||
return value
|
return value
|
||||||
|
|
||||||
|
|
||||||
class SettingsDirectoryValue(SettingsValue):
|
class SettingsDirectoryValue(SettingsValue):
|
||||||
"""Check and update a setting value that is a directory path
|
"""Check and update a setting value that is a directory path
|
||||||
"""
|
"""
|
||||||
|
@ -124,8 +134,8 @@ def apply_schema(settings, schema, path_list):
|
||||||
|
|
||||||
SCHEMA = {
|
SCHEMA = {
|
||||||
'general': {
|
'general': {
|
||||||
'debug': SettingsValue(bool, False, 'SEARX_DEBUG'),
|
'debug': SettingsValue(bool, False, 'SEARXNG_DEBUG'),
|
||||||
'instance_name': SettingsValue(str, 'searxng'),
|
'instance_name': SettingsValue(str, 'SearXNG'),
|
||||||
'contact_url': SettingsValue((None, False, str), None),
|
'contact_url': SettingsValue((None, False, str), None),
|
||||||
},
|
},
|
||||||
'brand': {
|
'brand': {
|
||||||
|
@ -144,9 +154,9 @@ SCHEMA = {
|
||||||
'formats': SettingsValue(list, OUTPUT_FORMATS),
|
'formats': SettingsValue(list, OUTPUT_FORMATS),
|
||||||
},
|
},
|
||||||
'server': {
|
'server': {
|
||||||
'port': SettingsValue((int,str), 8888, 'SEARX_PORT'),
|
'port': SettingsValue((int,str), 8888, 'SEARXNG_PORT'),
|
||||||
'bind_address': SettingsValue(str, '127.0.0.1', 'SEARX_BIND_ADDRESS'),
|
'bind_address': SettingsValue(str, '127.0.0.1', 'SEARXNG_BIND_ADDRESS'),
|
||||||
'secret_key': SettingsValue(str, environ_name='SEARX_SECRET'),
|
'secret_key': SettingsValue(str, environ_name='SEARXNG_SECRET'),
|
||||||
'base_url': SettingsValue((False, str), False),
|
'base_url': SettingsValue((False, str), False),
|
||||||
'image_proxy': SettingsValue(bool, False),
|
'image_proxy': SettingsValue(bool, False),
|
||||||
'http_protocol_version': SettingsValue(('1.0', '1.1'), '1.0'),
|
'http_protocol_version': SettingsValue(('1.0', '1.1'), '1.0'),
|
||||||
|
@ -201,5 +211,11 @@ SCHEMA = {
|
||||||
}
|
}
|
||||||
|
|
||||||
def settings_set_defaults(settings):
|
def settings_set_defaults(settings):
|
||||||
|
# compatibility with searx variables
|
||||||
|
for searx, searxng in SEARX_ENVIRON_VARIABLES.items():
|
||||||
|
if searx in os.environ and searxng not in os.environ:
|
||||||
|
os.environ[searxng] = os.environ[searx]
|
||||||
|
logger.warning('%s uses value from %s', searxng, searx)
|
||||||
|
|
||||||
apply_schema(settings, SCHEMA, [])
|
apply_schema(settings, SCHEMA, [])
|
||||||
return settings
|
return settings
|
||||||
|
|
|
@ -35,12 +35,12 @@ def get_default_settings_path():
|
||||||
|
|
||||||
def get_user_settings_path():
|
def get_user_settings_path():
|
||||||
# find location of settings.yml
|
# find location of settings.yml
|
||||||
if 'SEARX_SETTINGS_PATH' in environ:
|
if 'SEARXNG_SETTINGS_PATH' in environ:
|
||||||
# if possible set path to settings using the
|
# if possible set path to settings using the
|
||||||
# enviroment variable SEARX_SETTINGS_PATH
|
# enviroment variable SEARXNG_SETTINGS_PATH
|
||||||
return check_settings_yml(environ['SEARX_SETTINGS_PATH'])
|
return check_settings_yml(environ['SEARXNG_SETTINGS_PATH'])
|
||||||
|
|
||||||
if environ.get('SEARX_DISABLE_ETC_SETTINGS', '').lower() in ('1', 'true'):
|
if environ.get('SEARXNG_DISABLE_ETC_SETTINGS', '').lower() in ('1', 'true'):
|
||||||
return None
|
return None
|
||||||
|
|
||||||
# if not, get it from searx code base or last solution from /etc/searx
|
# if not, get it from searx code base or last solution from /etc/searx
|
||||||
|
|
|
@ -2,11 +2,17 @@ import os
|
||||||
|
|
||||||
import aiounittest
|
import aiounittest
|
||||||
|
|
||||||
os.environ['SEARX_DEBUG'] = '1'
|
os.environ.pop('SEARX_DEBUG', None)
|
||||||
os.environ['SEARX_DEBUG_LOG_LEVEL'] = 'WARNING'
|
os.environ.pop('SEARX_DEBUG_LOG_LEVEL', None)
|
||||||
os.environ['SEARX_DISABLE_ETC_SETTINGS'] = '1'
|
os.environ.pop('SEARX_DISABLE_ETC_SETTINGS', None)
|
||||||
os.environ.pop('SEARX_SETTINGS_PATH', None)
|
os.environ.pop('SEARX_SETTINGS_PATH', None)
|
||||||
|
|
||||||
|
os.environ.pop('SEARXNG_SETTINGS_PATH', None)
|
||||||
|
|
||||||
|
os.environ['SEARXNG_DEBUG'] = '1'
|
||||||
|
os.environ['SEARXNG_DEBUG_LOG_LEVEL'] = 'WARNING'
|
||||||
|
os.environ['SEARXNG_DISABLE_ETC_SETTINGS'] = '1'
|
||||||
|
|
||||||
|
|
||||||
class SearxTestLayer:
|
class SearxTestLayer:
|
||||||
"""Base layer for non-robot tests."""
|
"""Base layer for non-robot tests."""
|
||||||
|
|
|
@ -35,10 +35,10 @@ class SearxRobotLayer():
|
||||||
# - debug mode: https://flask.palletsprojects.com/quickstart/#debug-mode
|
# - debug mode: https://flask.palletsprojects.com/quickstart/#debug-mode
|
||||||
# - Flask.run(..): https://flask.palletsprojects.com/api/#flask.Flask.run
|
# - Flask.run(..): https://flask.palletsprojects.com/api/#flask.Flask.run
|
||||||
|
|
||||||
os.environ['SEARX_DEBUG'] = '0'
|
os.environ['SEARXNG_DEBUG'] = '0'
|
||||||
|
|
||||||
# set robot settings path
|
# set robot settings path
|
||||||
os.environ['SEARX_SETTINGS_PATH'] = str(tests_path / 'robot' / 'settings_robot.yml')
|
os.environ['SEARXNG_SETTINGS_PATH'] = str(tests_path / 'robot' / 'settings_robot.yml')
|
||||||
|
|
||||||
# run the server
|
# run the server
|
||||||
self.server = subprocess.Popen( # pylint: disable=consider-using-with
|
self.server = subprocess.Popen( # pylint: disable=consider-using-with
|
||||||
|
@ -52,7 +52,7 @@ class SearxRobotLayer():
|
||||||
def tearDown(self):
|
def tearDown(self):
|
||||||
os.kill(self.server.pid, 9)
|
os.kill(self.server.pid, 9)
|
||||||
# remove previously set environment variable
|
# remove previously set environment variable
|
||||||
del os.environ['SEARX_SETTINGS_PATH']
|
del os.environ['SEARXNG_SETTINGS_PATH']
|
||||||
|
|
||||||
|
|
||||||
def run_robot_tests(tests):
|
def run_robot_tests(tests):
|
||||||
|
|
|
@ -2,5 +2,5 @@ import os
|
||||||
from os.path import dirname, sep, abspath
|
from os.path import dirname, sep, abspath
|
||||||
|
|
||||||
# In unit tests the user settings from unit/settings/test_settings.yml are used.
|
# In unit tests the user settings from unit/settings/test_settings.yml are used.
|
||||||
os.environ['SEARX_SETTINGS_PATH'] = abspath(
|
os.environ['SEARXNG_SETTINGS_PATH'] = abspath(
|
||||||
dirname(__file__) + sep + 'settings' + sep + 'test_settings.yml')
|
dirname(__file__) + sep + 'settings' + sep + 'test_settings.yml')
|
||||||
|
|
|
@ -58,14 +58,14 @@ class TestUserSettings(SearxTestCase):
|
||||||
|
|
||||||
def test_user_settings_not_found(self):
|
def test_user_settings_not_found(self):
|
||||||
with patch.dict(settings_loader.environ,
|
with patch.dict(settings_loader.environ,
|
||||||
{'SEARX_SETTINGS_PATH': '/dev/null'}):
|
{'SEARXNG_SETTINGS_PATH': '/dev/null'}):
|
||||||
settings, msg = settings_loader.load_settings()
|
settings, msg = settings_loader.load_settings()
|
||||||
self.assertTrue(msg.startswith('load the default settings from'))
|
self.assertTrue(msg.startswith('load the default settings from'))
|
||||||
self.assertEqual(settings['server']['secret_key'], "ultrasecretkey")
|
self.assertEqual(settings['server']['secret_key'], "ultrasecretkey")
|
||||||
|
|
||||||
def test_user_settings(self):
|
def test_user_settings(self):
|
||||||
with patch.dict(settings_loader.environ,
|
with patch.dict(settings_loader.environ,
|
||||||
{'SEARX_SETTINGS_PATH': join(test_dir, 'settings/user_settings_simple.yml')}):
|
{'SEARXNG_SETTINGS_PATH': join(test_dir, 'settings/user_settings_simple.yml')}):
|
||||||
settings, msg = settings_loader.load_settings()
|
settings, msg = settings_loader.load_settings()
|
||||||
self.assertTrue(msg.startswith('merge the default settings'))
|
self.assertTrue(msg.startswith('merge the default settings'))
|
||||||
self.assertEqual(settings['server']['secret_key'], "user_secret_key")
|
self.assertEqual(settings['server']['secret_key'], "user_secret_key")
|
||||||
|
@ -73,7 +73,7 @@ class TestUserSettings(SearxTestCase):
|
||||||
|
|
||||||
def test_user_settings_remove(self):
|
def test_user_settings_remove(self):
|
||||||
with patch.dict(settings_loader.environ,
|
with patch.dict(settings_loader.environ,
|
||||||
{'SEARX_SETTINGS_PATH': join(test_dir, 'settings/user_settings_remove.yml')}):
|
{'SEARXNG_SETTINGS_PATH': join(test_dir, 'settings/user_settings_remove.yml')}):
|
||||||
settings, msg = settings_loader.load_settings()
|
settings, msg = settings_loader.load_settings()
|
||||||
self.assertTrue(msg.startswith('merge the default settings'))
|
self.assertTrue(msg.startswith('merge the default settings'))
|
||||||
self.assertEqual(settings['server']['secret_key'], "user_secret_key")
|
self.assertEqual(settings['server']['secret_key'], "user_secret_key")
|
||||||
|
@ -85,7 +85,7 @@ class TestUserSettings(SearxTestCase):
|
||||||
|
|
||||||
def test_user_settings_remove2(self):
|
def test_user_settings_remove2(self):
|
||||||
with patch.dict(settings_loader.environ,
|
with patch.dict(settings_loader.environ,
|
||||||
{'SEARX_SETTINGS_PATH': join(test_dir, 'settings/user_settings_remove2.yml')}):
|
{'SEARXNG_SETTINGS_PATH': join(test_dir, 'settings/user_settings_remove2.yml')}):
|
||||||
settings, msg = settings_loader.load_settings()
|
settings, msg = settings_loader.load_settings()
|
||||||
self.assertTrue(msg.startswith('merge the default settings'))
|
self.assertTrue(msg.startswith('merge the default settings'))
|
||||||
self.assertEqual(settings['server']['secret_key'], "user_secret_key")
|
self.assertEqual(settings['server']['secret_key'], "user_secret_key")
|
||||||
|
@ -102,7 +102,7 @@ class TestUserSettings(SearxTestCase):
|
||||||
|
|
||||||
def test_user_settings_keep_only(self):
|
def test_user_settings_keep_only(self):
|
||||||
with patch.dict(settings_loader.environ,
|
with patch.dict(settings_loader.environ,
|
||||||
{'SEARX_SETTINGS_PATH': join(test_dir, 'settings/user_settings_keep_only.yml')}):
|
{'SEARXNG_SETTINGS_PATH': join(test_dir, 'settings/user_settings_keep_only.yml')}):
|
||||||
settings, msg = settings_loader.load_settings()
|
settings, msg = settings_loader.load_settings()
|
||||||
self.assertTrue(msg.startswith('merge the default settings'))
|
self.assertTrue(msg.startswith('merge the default settings'))
|
||||||
engine_names = [engine['name'] for engine in settings['engines']]
|
engine_names = [engine['name'] for engine in settings['engines']]
|
||||||
|
@ -112,7 +112,7 @@ class TestUserSettings(SearxTestCase):
|
||||||
|
|
||||||
def test_custom_settings(self):
|
def test_custom_settings(self):
|
||||||
with patch.dict(settings_loader.environ,
|
with patch.dict(settings_loader.environ,
|
||||||
{'SEARX_SETTINGS_PATH': join(test_dir, 'settings/user_settings.yml')}):
|
{'SEARXNG_SETTINGS_PATH': join(test_dir, 'settings/user_settings.yml')}):
|
||||||
settings, msg = settings_loader.load_settings()
|
settings, msg = settings_loader.load_settings()
|
||||||
self.assertTrue(msg.startswith('load the user settings from'))
|
self.assertTrue(msg.startswith('load the user settings from'))
|
||||||
self.assertEqual(settings['server']['port'], 9000)
|
self.assertEqual(settings['server']['port'], 9000)
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
export SEARX_URL=''
|
export SEARX_URL=''
|
||||||
export SEARX_PORT='8888'
|
export SEARXNG_PORT='8888'
|
||||||
export SEARX_BIND_ADDRESS='127.0.0.1'
|
export SEARXNG_BIND_ADDRESS='127.0.0.1'
|
||||||
export GIT_URL='https://github.com/searxng/searxng'
|
export GIT_URL='https://github.com/searxng/searxng'
|
||||||
export GIT_BRANCH='master'
|
export GIT_BRANCH='master'
|
||||||
|
|
|
@ -12,7 +12,7 @@ sys.path.insert(0, repo_root)
|
||||||
|
|
||||||
# Assure that the settings file from reposetorie's working tree is used to
|
# Assure that the settings file from reposetorie's working tree is used to
|
||||||
# generate the build_env, not from /etc/searx/settings.yml.
|
# generate the build_env, not from /etc/searx/settings.yml.
|
||||||
os.environ['SEARX_SETTINGS_PATH'] = join(repo_root, 'etc', 'settings.yml')
|
os.environ['SEARXNG_SETTINGS_PATH'] = join(repo_root, 'etc', 'settings.yml')
|
||||||
|
|
||||||
def _env(*arg, **kwargs):
|
def _env(*arg, **kwargs):
|
||||||
val = get_setting(*arg, **kwargs)
|
val = get_setting(*arg, **kwargs)
|
||||||
|
@ -29,15 +29,15 @@ def _env(*arg, **kwargs):
|
||||||
name_val = [
|
name_val = [
|
||||||
|
|
||||||
('SEARX_URL' , 'server.base_url'),
|
('SEARX_URL' , 'server.base_url'),
|
||||||
('SEARX_PORT' , 'server.port'),
|
('SEARXNG_PORT' , 'server.port'),
|
||||||
('SEARX_BIND_ADDRESS' , 'server.bind_address'),
|
('SEARXNG_BIND_ADDRESS' , 'server.bind_address'),
|
||||||
|
|
||||||
]
|
]
|
||||||
|
|
||||||
brand_env = 'utils' + sep + 'brand.env'
|
brand_env = 'utils' + sep + 'brand.env'
|
||||||
|
|
||||||
# Some defaults in the settings.yml are taken from the environment,
|
# Some defaults in the settings.yml are taken from the environment,
|
||||||
# e.g. SEARX_BIND_ADDRESS (:py:obj:`searx.settings_defaults.SHEMA`). When the
|
# e.g. SEARXNG_BIND_ADDRESS (:py:obj:`searx.settings_defaults.SHEMA`). When the
|
||||||
# 'brand.env' file is created these enviroment variables should be unset first::
|
# 'brand.env' file is created these enviroment variables should be unset first::
|
||||||
|
|
||||||
_unset = object()
|
_unset = object()
|
||||||
|
@ -51,7 +51,7 @@ for name, option in name_val:
|
||||||
from searx.version import GIT_URL, GIT_BRANCH
|
from searx.version import GIT_URL, GIT_BRANCH
|
||||||
from searx import get_setting
|
from searx import get_setting
|
||||||
|
|
||||||
print('build %s (settings from: %s)' % (brand_env, os.environ['SEARX_SETTINGS_PATH']))
|
print('build %s (settings from: %s)' % (brand_env, os.environ['SEARXNG_SETTINGS_PATH']))
|
||||||
sys.path.insert(0, repo_root)
|
sys.path.insert(0, repo_root)
|
||||||
|
|
||||||
with open(repo_root + sep + brand_env, 'w', encoding='utf-8') as f:
|
with open(repo_root + sep + brand_env, 'w', encoding='utf-8') as f:
|
||||||
|
|
|
@ -28,7 +28,7 @@ FILTRON_LISTEN="${FILTRON_LISTEN:-127.0.0.1:4004}"
|
||||||
# server.bind_address. The default of FILTRON_TARGET is taken from the YAML
|
# server.bind_address. The default of FILTRON_TARGET is taken from the YAML
|
||||||
# configuration, do not change this value without reinstalling the entire
|
# configuration, do not change this value without reinstalling the entire
|
||||||
# SearXNG suite including filtron & morty.
|
# SearXNG suite including filtron & morty.
|
||||||
FILTRON_TARGET="${SEARX_BIND_ADDRESS}:${SEARX_PORT}"
|
FILTRON_TARGET="${SEARXNG_BIND_ADDRESS}:${SEARXNG_PORT}"
|
||||||
|
|
||||||
SERVICE_NAME="filtron"
|
SERVICE_NAME="filtron"
|
||||||
SERVICE_USER="${SERVICE_USER:-${SERVICE_NAME}}"
|
SERVICE_USER="${SERVICE_USER:-${SERVICE_NAME}}"
|
||||||
|
|
|
@ -53,7 +53,7 @@ source_dot_config() {
|
||||||
export eval_SEARX_SRC='true'
|
export eval_SEARX_SRC='true'
|
||||||
SEARX_SRC=$("${REPO_ROOT}/utils/searx.sh" --getenv SEARX_SRC)
|
SEARX_SRC=$("${REPO_ROOT}/utils/searx.sh" --getenv SEARX_SRC)
|
||||||
SEARX_PYENV=$("${REPO_ROOT}/utils/searx.sh" --getenv SEARX_PYENV)
|
SEARX_PYENV=$("${REPO_ROOT}/utils/searx.sh" --getenv SEARX_PYENV)
|
||||||
SEARX_SETTINGS_PATH=$("${REPO_ROOT}/utils/searx.sh" --getenv SEARX_SETTINGS_PATH)
|
SEARXNG_SETTINGS_PATH=$("${REPO_ROOT}/utils/searx.sh" --getenv SEARXNG_SETTINGS_PATH)
|
||||||
if [ ! -r "${SEARX_SRC}" ]; then
|
if [ ! -r "${SEARX_SRC}" ]; then
|
||||||
info_msg "not yet cloned: ${SEARX_SRC}"
|
info_msg "not yet cloned: ${SEARX_SRC}"
|
||||||
orig_source_dot_config
|
orig_source_dot_config
|
||||||
|
@ -115,7 +115,7 @@ init_SEARX_SRC_INIT_FILES(){
|
||||||
install_log_searx_instance() {
|
install_log_searx_instance() {
|
||||||
|
|
||||||
echo -e "---- SearXNG instance setup ${_BBlue}(status: $(install_searx_get_state))${_creset}"
|
echo -e "---- SearXNG instance setup ${_BBlue}(status: $(install_searx_get_state))${_creset}"
|
||||||
echo -e " SEARX_SETTINGS_PATH : ${_BBlue}${SEARX_SETTINGS_PATH}${_creset}"
|
echo -e " SEARXNG_SETTINGS_PATH : ${_BBlue}${SEARXNG_SETTINGS_PATH}${_creset}"
|
||||||
echo -e " SSEARX_PYENV : ${_BBlue}${SEARX_PYENV}${_creset}"
|
echo -e " SSEARX_PYENV : ${_BBlue}${SEARX_PYENV}${_creset}"
|
||||||
echo -e " SEARX_SRC : ${_BBlue}${SEARX_SRC:-none}${_creset}"
|
echo -e " SEARX_SRC : ${_BBlue}${SEARX_SRC:-none}${_creset}"
|
||||||
echo -e " SEARX_URL : ${_BBlue}${SEARX_URL:-none}${_creset}"
|
echo -e " SEARX_URL : ${_BBlue}${SEARX_URL:-none}${_creset}"
|
||||||
|
@ -163,7 +163,7 @@ install_searx_get_state(){
|
||||||
echo "missing-searx-pyenv"
|
echo "missing-searx-pyenv"
|
||||||
return
|
return
|
||||||
fi
|
fi
|
||||||
if ! [ -r "${SEARX_SETTINGS_PATH}" ]; then
|
if ! [ -r "${SEARXNG_SETTINGS_PATH}" ]; then
|
||||||
echo "missing-settings"
|
echo "missing-settings"
|
||||||
return
|
return
|
||||||
fi
|
fi
|
||||||
|
|
|
@ -111,7 +111,7 @@ info_searx() {
|
||||||
cat <<EOF
|
cat <<EOF
|
||||||
To activate result and image proxy in SearXNG read:
|
To activate result and image proxy in SearXNG read:
|
||||||
https://searxng.github.io/searxng/admin/morty.html
|
https://searxng.github.io/searxng/admin/morty.html
|
||||||
Check settings in file ${SEARX_SETTINGS_PATH} ...
|
Check settings in file ${SEARXNG_SETTINGS_PATH} ...
|
||||||
result_proxy:
|
result_proxy:
|
||||||
url : ${PUBLIC_URL_MORTY}
|
url : ${PUBLIC_URL_MORTY}
|
||||||
server:
|
server:
|
||||||
|
|
|
@ -12,7 +12,7 @@ source "${REPO_ROOT}/utils/lib_install.sh"
|
||||||
# config
|
# config
|
||||||
# ----------------------------------------------------------------------------
|
# ----------------------------------------------------------------------------
|
||||||
|
|
||||||
SEARX_INTERNAL_HTTP="${SEARX_BIND_ADDRESS}:${SEARX_PORT}"
|
SEARX_INTERNAL_HTTP="${SEARXNG_BIND_ADDRESS}:${SEARXNG_PORT}"
|
||||||
|
|
||||||
SEARX_URL_PATH="${SEARX_URL_PATH:-$(echo "${PUBLIC_URL}" \
|
SEARX_URL_PATH="${SEARX_URL_PATH:-$(echo "${PUBLIC_URL}" \
|
||||||
| sed -e 's,^.*://[^/]*\(/.*\),\1,g')}"
|
| sed -e 's,^.*://[^/]*\(/.*\),\1,g')}"
|
||||||
|
@ -28,7 +28,7 @@ SERVICE_GROUP="${SERVICE_USER}"
|
||||||
GIT_BRANCH="${GIT_BRANCH:-master}"
|
GIT_BRANCH="${GIT_BRANCH:-master}"
|
||||||
SEARX_PYENV="${SERVICE_HOME}/searx-pyenv"
|
SEARX_PYENV="${SERVICE_HOME}/searx-pyenv"
|
||||||
SEARX_SRC="${SERVICE_HOME}/searx-src"
|
SEARX_SRC="${SERVICE_HOME}/searx-src"
|
||||||
SEARX_SETTINGS_PATH="/etc/searx/settings.yml"
|
SEARXNG_SETTINGS_PATH="/etc/searx/settings.yml"
|
||||||
SEARX_UWSGI_APP="searx.ini"
|
SEARX_UWSGI_APP="searx.ini"
|
||||||
# shellcheck disable=SC2034
|
# shellcheck disable=SC2034
|
||||||
SEARX_UWSGI_SOCKET="/run/uwsgi/app/searx/socket"
|
SEARX_UWSGI_SOCKET="/run/uwsgi/app/searx/socket"
|
||||||
|
@ -130,7 +130,7 @@ CONFIG_FILES=(
|
||||||
|
|
||||||
# shellcheck disable=SC2034
|
# shellcheck disable=SC2034
|
||||||
CONFIG_BACKUP_ENCRYPTED=(
|
CONFIG_BACKUP_ENCRYPTED=(
|
||||||
"${SEARX_SETTINGS_PATH}"
|
"${SEARXNG_SETTINGS_PATH}"
|
||||||
)
|
)
|
||||||
|
|
||||||
# ----------------------------------------------------------------------------
|
# ----------------------------------------------------------------------------
|
||||||
|
@ -160,7 +160,7 @@ install / remove
|
||||||
:init-src: copy files (SEARX_SRC_INIT_FILES) to ${SEARX_SRC}
|
:init-src: copy files (SEARX_SRC_INIT_FILES) to ${SEARX_SRC}
|
||||||
:pyenv: create/remove virtualenv (python) in $SEARX_PYENV
|
:pyenv: create/remove virtualenv (python) in $SEARX_PYENV
|
||||||
:uwsgi: install searx uWSGI application
|
:uwsgi: install searx uWSGI application
|
||||||
:settings: reinstall settings from ${SEARX_SETTINGS_PATH}
|
:settings: reinstall settings from ${SEARXNG_SETTINGS_PATH}
|
||||||
:packages: install needed packages from OS package manager
|
:packages: install needed packages from OS package manager
|
||||||
:buildhost: install packages from OS package manager needed by buildhosts
|
:buildhost: install packages from OS package manager needed by buildhosts
|
||||||
update searx
|
update searx
|
||||||
|
@ -613,16 +613,16 @@ install_DOT_CONFIG(){
|
||||||
}
|
}
|
||||||
|
|
||||||
install_settings() {
|
install_settings() {
|
||||||
rst_title "${SEARX_SETTINGS_PATH}" section
|
rst_title "${SEARXNG_SETTINGS_PATH}" section
|
||||||
|
|
||||||
if ! clone_is_available; then
|
if ! clone_is_available; then
|
||||||
err_msg "you have to install SearXNG first"
|
err_msg "you have to install SearXNG first"
|
||||||
exit 42
|
exit 42
|
||||||
fi
|
fi
|
||||||
|
|
||||||
mkdir -p "$(dirname "${SEARX_SETTINGS_PATH}")"
|
mkdir -p "$(dirname "${SEARXNG_SETTINGS_PATH}")"
|
||||||
install_template --no-eval \
|
install_template --no-eval \
|
||||||
"${SEARX_SETTINGS_PATH}" \
|
"${SEARXNG_SETTINGS_PATH}" \
|
||||||
"${SERVICE_USER}" "${SERVICE_GROUP}"
|
"${SERVICE_USER}" "${SERVICE_GROUP}"
|
||||||
configure_searx
|
configure_searx
|
||||||
}
|
}
|
||||||
|
@ -630,8 +630,8 @@ install_settings() {
|
||||||
remove_settings() {
|
remove_settings() {
|
||||||
rst_title "remove SearXNG settings" section
|
rst_title "remove SearXNG settings" section
|
||||||
echo
|
echo
|
||||||
info_msg "delete ${SEARX_SETTINGS_PATH}"
|
info_msg "delete ${SEARXNG_SETTINGS_PATH}"
|
||||||
rm -f "${SEARX_SETTINGS_PATH}"
|
rm -f "${SEARXNG_SETTINGS_PATH}"
|
||||||
}
|
}
|
||||||
|
|
||||||
remove_searx() {
|
remove_searx() {
|
||||||
|
@ -692,11 +692,11 @@ EOF
|
||||||
|
|
||||||
configure_searx() {
|
configure_searx() {
|
||||||
rst_title "Configure SearXNG" section
|
rst_title "Configure SearXNG" section
|
||||||
rst_para "Setup SearXNG config located at $SEARX_SETTINGS_PATH"
|
rst_para "Setup SearXNG config located at $SEARXNG_SETTINGS_PATH"
|
||||||
echo
|
echo
|
||||||
tee_stderr 0.1 <<EOF | sudo -H -i 2>&1 | prefix_stdout "$_service_prefix"
|
tee_stderr 0.1 <<EOF | sudo -H -i 2>&1 | prefix_stdout "$_service_prefix"
|
||||||
cd ${SEARX_SRC}
|
cd ${SEARX_SRC}
|
||||||
sed -i -e "s/ultrasecretkey/$(openssl rand -hex 16)/g" "$SEARX_SETTINGS_PATH"
|
sed -i -e "s/ultrasecretkey/$(openssl rand -hex 16)/g" "$SEARXNG_SETTINGS_PATH"
|
||||||
EOF
|
EOF
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -711,15 +711,15 @@ test_local_searx() {
|
||||||
return
|
return
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
sed -i -e "s/debug: false/debug: true/g" "$SEARX_SETTINGS_PATH"
|
sed -i -e "s/debug: false/debug: true/g" "$SEARXNG_SETTINGS_PATH"
|
||||||
tee_stderr 0.1 <<EOF | sudo -H -u "${SERVICE_USER}" -i 2>&1 | prefix_stdout "$_service_prefix"
|
tee_stderr 0.1 <<EOF | sudo -H -u "${SERVICE_USER}" -i 2>&1 | prefix_stdout "$_service_prefix"
|
||||||
export SEARX_SETTINGS_PATH="${SEARX_SETTINGS_PATH}"
|
export SEARXNG_SETTINGS_PATH="${SEARXNG_SETTINGS_PATH}"
|
||||||
cd ${SEARX_SRC}
|
cd ${SEARX_SRC}
|
||||||
timeout 10 python searx/webapp.py &
|
timeout 10 python searx/webapp.py &
|
||||||
sleep 3
|
sleep 3
|
||||||
curl --location --verbose --head --insecure $SEARX_INTERNAL_HTTP
|
curl --location --verbose --head --insecure $SEARX_INTERNAL_HTTP
|
||||||
EOF
|
EOF
|
||||||
sed -i -e "s/debug: true/debug: false/g" "$SEARX_SETTINGS_PATH"
|
sed -i -e "s/debug: true/debug: false/g" "$SEARXNG_SETTINGS_PATH"
|
||||||
}
|
}
|
||||||
|
|
||||||
install_searx_uwsgi() {
|
install_searx_uwsgi() {
|
||||||
|
@ -753,7 +753,7 @@ enable_image_proxy() {
|
||||||
info_msg "try to enable image_proxy ..."
|
info_msg "try to enable image_proxy ..."
|
||||||
tee_stderr 0.1 <<EOF | sudo -H -i 2>&1 | prefix_stdout "$_service_prefix"
|
tee_stderr 0.1 <<EOF | sudo -H -i 2>&1 | prefix_stdout "$_service_prefix"
|
||||||
cd ${SEARX_SRC}
|
cd ${SEARX_SRC}
|
||||||
sed -i -e "s/image_proxy: false/image_proxy: true/g" "$SEARX_SETTINGS_PATH"
|
sed -i -e "s/image_proxy: false/image_proxy: true/g" "$SEARXNG_SETTINGS_PATH"
|
||||||
EOF
|
EOF
|
||||||
uWSGI_restart "$SEARX_UWSGI_APP"
|
uWSGI_restart "$SEARX_UWSGI_APP"
|
||||||
}
|
}
|
||||||
|
@ -762,7 +762,7 @@ disable_image_proxy() {
|
||||||
info_msg "try to enable image_proxy ..."
|
info_msg "try to enable image_proxy ..."
|
||||||
tee_stderr 0.1 <<EOF | sudo -H -i 2>&1 | prefix_stdout "$_service_prefix"
|
tee_stderr 0.1 <<EOF | sudo -H -i 2>&1 | prefix_stdout "$_service_prefix"
|
||||||
cd ${SEARX_SRC}
|
cd ${SEARX_SRC}
|
||||||
sed -i -e "s/image_proxy: true/image_proxy: false/g" "$SEARX_SETTINGS_PATH"
|
sed -i -e "s/image_proxy: true/image_proxy: false/g" "$SEARXNG_SETTINGS_PATH"
|
||||||
EOF
|
EOF
|
||||||
uWSGI_restart "$SEARX_UWSGI_APP"
|
uWSGI_restart "$SEARX_UWSGI_APP"
|
||||||
}
|
}
|
||||||
|
@ -772,7 +772,7 @@ enable_debug() {
|
||||||
info_msg "try to enable debug mode ..."
|
info_msg "try to enable debug mode ..."
|
||||||
tee_stderr 0.1 <<EOF | sudo -H -i 2>&1 | prefix_stdout "$_service_prefix"
|
tee_stderr 0.1 <<EOF | sudo -H -i 2>&1 | prefix_stdout "$_service_prefix"
|
||||||
cd ${SEARX_SRC}
|
cd ${SEARX_SRC}
|
||||||
sed -i -e "s/debug: false/debug: true/g" "$SEARX_SETTINGS_PATH"
|
sed -i -e "s/debug: false/debug: true/g" "$SEARXNG_SETTINGS_PATH"
|
||||||
EOF
|
EOF
|
||||||
uWSGI_restart "$SEARX_UWSGI_APP"
|
uWSGI_restart "$SEARX_UWSGI_APP"
|
||||||
}
|
}
|
||||||
|
@ -781,7 +781,7 @@ disable_debug() {
|
||||||
info_msg "try to disable debug mode ..."
|
info_msg "try to disable debug mode ..."
|
||||||
tee_stderr 0.1 <<EOF | sudo -H -i 2>&1 | prefix_stdout "$_service_prefix"
|
tee_stderr 0.1 <<EOF | sudo -H -i 2>&1 | prefix_stdout "$_service_prefix"
|
||||||
cd ${SEARX_SRC}
|
cd ${SEARX_SRC}
|
||||||
sed -i -e "s/debug: true/debug: false/g" "$SEARX_SETTINGS_PATH"
|
sed -i -e "s/debug: true/debug: false/g" "$SEARXNG_SETTINGS_PATH"
|
||||||
EOF
|
EOF
|
||||||
uWSGI_restart "$SEARX_UWSGI_APP"
|
uWSGI_restart "$SEARX_UWSGI_APP"
|
||||||
}
|
}
|
||||||
|
@ -791,8 +791,8 @@ set_result_proxy() {
|
||||||
# usage: set_result_proxy <URL> [<key>]
|
# usage: set_result_proxy <URL> [<key>]
|
||||||
|
|
||||||
info_msg "try to set result proxy: '$1' ($2)"
|
info_msg "try to set result proxy: '$1' ($2)"
|
||||||
cp "${SEARX_SETTINGS_PATH}" "${SEARX_SETTINGS_PATH}.bak"
|
cp "${SEARXNG_SETTINGS_PATH}" "${SEARXNG_SETTINGS_PATH}.bak"
|
||||||
_set_result_proxy "$1" "$2" > "${SEARX_SETTINGS_PATH}"
|
_set_result_proxy "$1" "$2" > "${SEARXNG_SETTINGS_PATH}"
|
||||||
}
|
}
|
||||||
|
|
||||||
_set_result_proxy() {
|
_set_result_proxy() {
|
||||||
|
@ -829,7 +829,7 @@ _set_result_proxy() {
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
echo "$line"
|
echo "$line"
|
||||||
done < "${SEARX_SETTINGS_PATH}.bak"
|
done < "${SEARXNG_SETTINGS_PATH}.bak"
|
||||||
}
|
}
|
||||||
|
|
||||||
function has_substring() {
|
function has_substring() {
|
||||||
|
|
|
@ -18,7 +18,7 @@ env = LC_ALL=C.UTF-8
|
||||||
chdir = ${SEARX_SRC}/searx
|
chdir = ${SEARX_SRC}/searx
|
||||||
|
|
||||||
# searx configuration (settings.yml)
|
# searx configuration (settings.yml)
|
||||||
env = SEARX_SETTINGS_PATH=${SEARX_SETTINGS_PATH}
|
env = SEARXNG_SETTINGS_PATH=${SEARXNG_SETTINGS_PATH}
|
||||||
|
|
||||||
# disable logging for privacy
|
# disable logging for privacy
|
||||||
logger = systemd
|
logger = systemd
|
||||||
|
|
|
@ -18,7 +18,7 @@ env = LC_ALL=C.UTF-8
|
||||||
chdir = ${SEARX_SRC}/searx
|
chdir = ${SEARX_SRC}/searx
|
||||||
|
|
||||||
# searx configuration (settings.yml)
|
# searx configuration (settings.yml)
|
||||||
env = SEARX_SETTINGS_PATH=${SEARX_SETTINGS_PATH}
|
env = SEARXNG_SETTINGS_PATH=${SEARXNG_SETTINGS_PATH}
|
||||||
|
|
||||||
# disable logging for privacy
|
# disable logging for privacy
|
||||||
logger = systemd
|
logger = systemd
|
||||||
|
|
|
@ -18,7 +18,7 @@ env = LC_ALL=C.UTF-8
|
||||||
chdir = ${SEARX_SRC}/searx
|
chdir = ${SEARX_SRC}/searx
|
||||||
|
|
||||||
# searx configuration (settings.yml)
|
# searx configuration (settings.yml)
|
||||||
env = SEARX_SETTINGS_PATH=${SEARX_SETTINGS_PATH}
|
env = SEARXNG_SETTINGS_PATH=${SEARXNG_SETTINGS_PATH}
|
||||||
|
|
||||||
# disable logging for privacy
|
# disable logging for privacy
|
||||||
disable-logging = true
|
disable-logging = true
|
||||||
|
|
|
@ -18,7 +18,7 @@ env = LC_ALL=C.UTF-8
|
||||||
chdir = ${SEARX_SRC}/searx
|
chdir = ${SEARX_SRC}/searx
|
||||||
|
|
||||||
# searx configuration (settings.yml)
|
# searx configuration (settings.yml)
|
||||||
env = SEARX_SETTINGS_PATH=${SEARX_SETTINGS_PATH}
|
env = SEARXNG_SETTINGS_PATH=${SEARXNG_SETTINGS_PATH}
|
||||||
|
|
||||||
# disable logging for privacy
|
# disable logging for privacy
|
||||||
disable-logging = true
|
disable-logging = true
|
||||||
|
|
Loading…
Reference in a new issue