Python's default encoding depends on the platform, set (python) default encoding
UTF-8 in uwsgi ini files:
    LANG=C.UTF-8
    LANGUAGE=C.UTF-8
    LC_ALL=C.UTF-8
Error pattern:
    Traceback (most recent call last):
      File "/usr/local/searx/searx-src/searx/webapp.py", line 74, in <module>
        from searx.search import SearchWithPlugins, get_search_query_from_webapp
      File "/usr/local/searx/searx-src/searx/search.py", line 32, in <module>
        from searx.external_bang import get_bang_url
      File "/usr/local/searx/searx-src/searx/external_bang.py", line 13, in <module>
        for bang in json.load(json_file)['bang']:
      File "/usr/lib/python3.8/json/__init__.py", line 293, in load
        return loads(fp.read(),
      File "/usr/lib/python3.8/encodings/ascii.py", line 26, in decode
        return codecs.ascii_decode(input, self.errors)[0]
      UnicodeDecodeError: 'ascii' codec can't decode byte 0xc3 in position 31341: ordinal not in range(128)
close: https://github.com/asciimoo/searx/issues/2041
Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
		
	
			
		
			
				
	
	
		
			84 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			84 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
[uwsgi]
 | 
						|
 | 
						|
# uWSGI core
 | 
						|
# ----------
 | 
						|
#
 | 
						|
# https://uwsgi-docs.readthedocs.io/en/latest/Options.html#uwsgi-core
 | 
						|
 | 
						|
# Who will run the code
 | 
						|
uid = ${SERVICE_USER}
 | 
						|
gid = ${SERVICE_GROUP}
 | 
						|
 | 
						|
# set (python) default encoding UTF-8
 | 
						|
env = LANG=C.UTF-8
 | 
						|
env = LANGUAGE=C.UTF-8
 | 
						|
env = LC_ALL=C.UTF-8
 | 
						|
 | 
						|
# chdir to specified directory before apps loading
 | 
						|
chdir = ${SEARX_SRC}/searx
 | 
						|
 | 
						|
# searx configuration (settings.yml)
 | 
						|
env = SEARX_SETTINGS_PATH=${SEARX_SETTINGS_PATH}
 | 
						|
 | 
						|
# disable logging for privacy
 | 
						|
disable-logging = true
 | 
						|
 | 
						|
# The right granted on the created socket
 | 
						|
chmod-socket = 666
 | 
						|
 | 
						|
# Plugin to use and interpretor config
 | 
						|
single-interpreter = true
 | 
						|
 | 
						|
# enable master process
 | 
						|
master = true
 | 
						|
 | 
						|
# load apps in each worker instead of the master
 | 
						|
lazy-apps = true
 | 
						|
 | 
						|
# load uWSGI plugins
 | 
						|
plugin = python3,http
 | 
						|
 | 
						|
# By default the Python plugin does not initialize the GIL.  This means your
 | 
						|
# app-generated threads will not run.  If you need threads, remember to enable
 | 
						|
# them with enable-threads.  Running uWSGI in multithreading mode (with the
 | 
						|
# threads options) will automatically enable threading support. This *strange*
 | 
						|
# default behaviour is for performance reasons.
 | 
						|
enable-threads = true
 | 
						|
 | 
						|
 | 
						|
# plugin: python
 | 
						|
# --------------
 | 
						|
#
 | 
						|
# https://uwsgi-docs.readthedocs.io/en/latest/Options.html#plugin-python
 | 
						|
 | 
						|
# load a WSGI module
 | 
						|
module = searx.webapp
 | 
						|
 | 
						|
# set PYTHONHOME/virtualenv
 | 
						|
virtualenv = ${SEARX_PYENV}
 | 
						|
 | 
						|
# add directory (or glob) to pythonpath
 | 
						|
pythonpath = ${SEARX_SRC}
 | 
						|
 | 
						|
 | 
						|
# speak to upstream
 | 
						|
# -----------------
 | 
						|
#
 | 
						|
# Activate the 'http' configuration for filtron or activate the 'socket'
 | 
						|
# configuration if you setup your HTTP server to use uWSGI protocol via sockets.
 | 
						|
 | 
						|
# using IP:
 | 
						|
#
 | 
						|
# https://uwsgi-docs.readthedocs.io/en/latest/Options.html#plugin-http
 | 
						|
# Native HTTP support: https://uwsgi-docs.readthedocs.io/en/latest/HTTP.html
 | 
						|
 | 
						|
# http = ${SEARX_INTERNAL_HTTP}
 | 
						|
 | 
						|
# using unix-sockets:
 | 
						|
#
 | 
						|
# On some distributions you need to create the app folder for the sockets::
 | 
						|
#
 | 
						|
#   mkdir -p /run/uwsgi/app/searx
 | 
						|
#   chown -R ${SERVICE_USER}:${SERVICE_GROUP}  /run/uwsgi/app/searx
 | 
						|
#
 | 
						|
socket = /run/uwsgi/app/searx/socket |