diff options
-rw-r--r-- | .config.sh | 57 | ||||
-rw-r--r-- | docs/admin/api.rst | 2 | ||||
-rwxr-xr-x | utils/filtron.sh | 1 | ||||
-rwxr-xr-x | utils/lib_install.sh | 15 | ||||
-rwxr-xr-x | utils/morty.sh | 5 | ||||
-rwxr-xr-x | utils/searx.sh | 4 | ||||
-rw-r--r-- | utils/templates/etc/searx/settings.yml (renamed from utils/templates/etc/searx/use_default_settings.yml) | 40 |
7 files changed, 74 insertions, 50 deletions
diff --git a/.config.sh b/.config.sh index 3a17b8b29..4d86aca42 100644 --- a/.config.sh +++ b/.config.sh @@ -2,48 +2,41 @@ # SPDX-License-Identifier: AGPL-3.0-or-later # shellcheck shell=bash disable=SC2034 # -# This environment is used by ./utils scripts like filtron.sh or searx.sh. The -# default values are *most flexible* and *best maintained*, you normally not -# need to change the defaults (except PUBLIC_URL). +# This file should be edited only ones just before the installation of any +# service is done. After the installation of the searx service a copy of this +# file is placed into the $SEARX_SRC of the instance, e.g.:: # -# Before you change any value here you have to uninstall any previous -# installation. Further is it recommended to backup your changes simply by -# adding them to you local brand (git branch):: +# /usr/local/searx/searx-src/.config.sh # -# git add .config - -# The public URL of the searx instance: PUBLIC_URL="https://mydomain.xy/searx" -# The default is taken from ./utils/brand.env. - -PUBLIC_URL="${SEARX_URL}" - -if [[ ${PUBLIC_URL} == "https://searx.me" ]]; then - # hint: Linux containers do not have DNS entries, lets use IPs - PUBLIC_URL="http://$(primary_ip)/searx" -fi - -# searx.sh -# --------- +# .. hint:: +# +# Before you change a value here, You have to fully uninstall any previous +# installation of searx, morty and filtron services! -# SEARX_INTERNAL_HTTP="127.0.0.1:8888" -# SEARX_SETTINGS_TEMPLATE="${REPO_ROOT}/utils/templates/etc/searx/use_default_settings.yml" +# utils/searx.sh +# -------------- -# Only change, if you maintain a searx brand in your searx fork (GIT_URL) which -# is not hold by branch 'master'. The branch has to be a local branch, in the -# repository from which you install (which is most often the case). If you want -# to install branch 'foo', don't forget to run 'git branch foo origin/foo' once. -# GIT_BRANCH="${GIT_BRANCH:-master}" +# 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 +# rebuild instance's environment (make buildenv) if needed. The settings.yml +# file of an already installed instance is shown by:: +# +# $ ./utils/searx.sh --help +# ---- SearXNG instance setup (already installed) +# SEARX_SETTINGS_PATH : /etc/searx/settings.yml +# SEARX_SRC : /usr/local/searx/searx-src +# +# [1] https://searxng.github.io/searxng/admin/engines/settings.html -# filtron.sh -# ---------- +# utils/filtron.sh +# ---------------- # FILTRON_API="127.0.0.1:4005" # FILTRON_LISTEN="127.0.0.1:4004" # FILTRON_TARGET="127.0.0.1:8888" -# FILTRON_RULES_TEMPLATE="${REPO_ROOT}/utils/templates/etc/searx/use_default_settings.yml" -# morty.sh -# -------- +# utils/morty.sh +# -------------- # morty listen address # MORTY_LISTEN="127.0.0.1:3000" diff --git a/docs/admin/api.rst b/docs/admin/api.rst index 7804a8664..8c782ea9c 100644 --- a/docs/admin/api.rst +++ b/docs/admin/api.rst @@ -87,7 +87,7 @@ HTML of the site. URL of the searx instance and values are customizable. .. code:: html - <form method="post" action="https://searx.me/"> + <form method="post" action="https://example.org/"> <!-- search --> <input type="text" name="q" /> <!-- categories --> <input type="hidden" name="categories" value="general,social media" /> <!-- language --> <input type="hidden" name="lang" value="all" /> diff --git a/utils/filtron.sh b/utils/filtron.sh index 7469cd801..dfd899096 100755 --- a/utils/filtron.sh +++ b/utils/filtron.sh @@ -11,7 +11,6 @@ source "${REPO_ROOT}/utils/lib_install.sh" # config # ---------------------------------------------------------------------------- -PUBLIC_URL="${PUBLIC_URL:-http://$(uname -n)/searx}" PUBLIC_HOST="${PUBLIC_HOST:-$(echo "$PUBLIC_URL" | sed -e 's/[^/]*\/\/\([^@]*@\)\?\([^:/]*\).*/\2/')}" FILTRON_URL_PATH="${FILTRON_URL_PATH:-$(echo "${PUBLIC_URL}" \ diff --git a/utils/lib_install.sh b/utils/lib_install.sh index 19d438c43..a8cb23ab2 100755 --- a/utils/lib_install.sh +++ b/utils/lib_install.sh @@ -52,6 +52,8 @@ source_dot_config() { if [ -z "$eval_SEARX_SRC" ]; then export eval_SEARX_SRC='true' SEARX_SRC=$("${REPO_ROOT}/utils/searx.sh" --getenv SEARX_SRC) + SEARX_PYENV=$("${REPO_ROOT}/utils/searx.sh" --getenv SEARX_PYENV) + SEARX_SETTINGS_PATH=$("${REPO_ROOT}/utils/searx.sh" --getenv SEARX_SETTINGS_PATH) if [ ! -r "${SEARX_SRC}" ]; then build_msg INSTANCE "not yet cloned: ${SEARX_SRC}" orig_source_dot_config @@ -114,6 +116,7 @@ install_log_searx_instance() { echo -e "---- SearXNG instance setup ${_BBlue}(status: $(install_searx_get_state))${_creset}" echo -e " SEARX_SETTINGS_PATH : ${_BBlue}${SEARX_SETTINGS_PATH}${_creset}" + echo -e " SSEARX_PYENV : ${_BBlue}${SEARX_PYENV}${_creset}" echo -e " SEARX_SRC : ${_BBlue}${SEARX_SRC:-none}${_creset}" echo -e " SEARX_URL : ${_BBlue}${SEARX_URL:-none}${_creset}" @@ -177,6 +180,18 @@ install_searx_get_state(){ # shellcheck source=utils/brand.env source "${REPO_ROOT}/utils/brand.env" +# SEARX_URL aka PUBLIC_URL: the public URL of the instance (e.g. +# "https://example.org/searx"). The value is taken from environment $SEARX_URL +# in ./utils/brand.env. This variable is a empty string if server.base_url in +# the settings.yml is set to 'false'. + +SEARX_URL="${SEARX_URL:-http://$(uname -n)}" +if in_container; then + # hint: Linux containers do not have DNS entries, lets use IPs + SEARX_URL="http://$(primary_ip)" +fi +PUBLIC_URL="${SEARX_URL}" + source_dot_config # shellcheck source=utils/lxc-searx.env diff --git a/utils/morty.sh b/utils/morty.sh index afda41d22..b473eeef4 100755 --- a/utils/morty.sh +++ b/utils/morty.sh @@ -110,8 +110,9 @@ EOF info_searx() { # shellcheck disable=SC1117 cat <<EOF -To activate result and image proxy in searx, edit settings.yml (read: -${DOCS_URL}/admin/morty.html):: +To activate result and image proxy in SearXNG read: + ${DOCS_URL}/admin/morty.html +Check settings in file ${SEARX_SETTINGS_PATH} ... result_proxy: url : ${PUBLIC_URL_MORTY} server: diff --git a/utils/searx.sh b/utils/searx.sh index c4750c6f3..e8c2720ec 100755 --- a/utils/searx.sh +++ b/utils/searx.sh @@ -12,7 +12,6 @@ source "${REPO_ROOT}/utils/lib_install.sh" # config # ---------------------------------------------------------------------------- -PUBLIC_URL="${PUBLIC_URL:-http://$(uname -n)/searx}" SEARX_INTERNAL_HTTP="${SEARX_BIND_ADDRESS}:${SEARX_PORT}" SEARX_URL_PATH="${SEARX_URL_PATH:-$(echo "${PUBLIC_URL}" \ @@ -29,8 +28,7 @@ SERVICE_GROUP="${SERVICE_USER}" GIT_BRANCH="${GIT_BRANCH:-master}" SEARX_PYENV="${SERVICE_HOME}/searx-pyenv" SEARX_SRC="${SERVICE_HOME}/searx-src" -SEARX_SETTINGS_PATH="${SEARX_SETTINGS_PATH:-/etc/searx/settings.yml}" -SEARX_SETTINGS_TEMPLATE="${SEARX_SETTINGS_TEMPLATE:-${REPO_ROOT}/utils/templates/etc/searx/use_default_settings.yml}" +SEARX_SETTINGS_PATH="/etc/searx/settings.yml" SEARX_UWSGI_APP="searx.ini" # shellcheck disable=SC2034 SEARX_UWSGI_SOCKET="/run/uwsgi/app/searx/socket" diff --git a/utils/templates/etc/searx/use_default_settings.yml b/utils/templates/etc/searx/settings.yml index 1e7530cdc..8fb29319f 100644 --- a/utils/templates/etc/searx/use_default_settings.yml +++ b/utils/templates/etc/searx/settings.yml @@ -1,9 +1,14 @@ +# SearXNG settings, before editing this file read: +# +# ${DOCS_URL}/admin/engines/settings.html + use_default_settings: true general: - debug: false # Debug mode, only for development - instance_name: "searxng" # displayed name - contact_url: false # mailto:contact@example.com + # Debug mode, only for development + debug: false + # change displayed name + # instance_name: "SearXNG" search: # Filter results. 0: None, 1: Moderate, 2: Strict @@ -11,24 +16,37 @@ search: # Existing autocomplete backends: "dbpedia", "duckduckgo", "google", # "startpage", "swisscows", "qwant", "wikipedia" - leave blank to turn it off # by default. - autocomplete: "" + autocomplete: '' # Default search language - leave blank to detect from browser information or # use codes from 'languages.py' - default_lang: "" + default_lang: '' # remove format to deny access, use lower case. formats: [html, csv, json, rss] server: - port: 8888 - # address to listen on - bind_address: "127.0.0.1" secret_key: "ultrasecretkey" # change this! - # Set custom base_url. Possible values: - # false or "https://your.custom.host/location/" - # base_url: https://example.org/searx # Proxying image results through searx image_proxy: false # result_proxy: # url: http://127.0.0.1:3000/ # key: !!binary "your_morty_proxy_key" + +# plugins: +# - only_show_green_results + +# engines: +# +# - name: duckduckgo +# disabled: false +# +# - name: fdroid +# disabled: false +# +# - name: apk mirror +# disabled: false +# +# - name: mediathekviewweb +# engine: mediathekviewweb +# shortcut: mvw +# categories: general |