Skip to content
This repository has been archived by the owner on Sep 7, 2023. It is now read-only.

[fix] ERROR:searx:server.secret_key is not changed #2386

Closed
wants to merge 2 commits into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
2 changes: 1 addition & 1 deletion Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -73,7 +73,7 @@ run: buildenv pyenvinstall
sleep 2 ; \
xdg-open http://127.0.0.1:8888/ ; \
) &
SEARX_DEBUG=1 $(PY_ENV)/bin/python ./searx/webapp.py
$(PY_ENV)/bin/python ./searx/webapp.py

# docs
# ----
Expand Down
4 changes: 0 additions & 4 deletions searx/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -60,7 +60,3 @@
settings['server']['secret_key'] = environ['SEARX_SECRET']
if 'SEARX_BIND_ADDRESS' in environ:
settings['server']['bind_address'] = environ['SEARX_BIND_ADDRESS']

if not searx_debug and settings['server']['secret_key'] == 'ultrasecretkey':
logger.error('server.secret_key is not changed. Please use something else instead of ultrasecretkey.')
exit(1)
49 changes: 33 additions & 16 deletions searx/settings_loader.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
# SPDX-License-Identifier: AGPL-3.0-or-later

from os import urandom

from os import environ
from os.path import dirname, join, abspath, isfile
from collections.abc import Mapping
Expand Down Expand Up @@ -112,21 +114,36 @@ def is_use_default_settings(user_settings):
def load_settings(load_user_setttings=True):
default_settings_path = get_default_settings_path()
user_settings_path = get_user_settings_path()
settings, settings_load_message = None, None

if user_settings_path is None or not load_user_setttings:
# no user settings
return (load_yaml(default_settings_path),
'load the default settings from {}'.format(default_settings_path))

# user settings
user_settings = load_yaml(user_settings_path)
if is_use_default_settings(user_settings):
# the user settings are merged with the default configuration
default_settings = load_yaml(default_settings_path)
update_settings(default_settings, user_settings)
return (default_settings,
'merge the default settings ( {} ) and the user setttings ( {} )'
.format(default_settings_path, user_settings_path))

# the user settings, fully replace the default configuration
return (user_settings,
'load the user settings from {}'.format(user_settings_path))
load_user_setttings = False
settings, settings_load_message = (
load_yaml(default_settings_path),
'load the default settings from {}'.format(default_settings_path)
)
else:
load_user_setttings = True
# user settings
user_settings = load_yaml(user_settings_path)
if is_use_default_settings(user_settings):
# the user settings are merged with the default configuration
default_settings = load_yaml(default_settings_path)
update_settings(default_settings, user_settings)
settings, settings_load_message = (
default_settings,
'merge the default settings ( {} ) and the user setttings ( {} )'.format(
default_settings_path, user_settings_path)
)
else:
# the user settings, fully replace the default configuration
settings, settings_load_message = (
user_settings,
'load the user settings from {}'.format(user_settings_path)
)

if settings['server'].get('secret_key', 'ultrasecretkey') == 'ultrasecretkey':
settings['server']['ultrasecretkey'] = urandom(16).hex()

return settings, settings_load_message
2 changes: 0 additions & 2 deletions tests/__init__.py
Original file line number Diff line number Diff line change
@@ -1,2 +0,0 @@
import os
os.environ['SEARX_DEBUG'] = '1'
2 changes: 1 addition & 1 deletion utils/standalone_searx.py
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@

.. code:: bash

$ SEARX_DEBUG=1 python3 utils/standalone_searx.py rain
$ python3 utils/standalone_searx.py rain

Example to run it from python:

Expand Down