summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.config.sh57
-rw-r--r--docs/admin/api.rst2
-rwxr-xr-xutils/filtron.sh1
-rwxr-xr-xutils/lib_install.sh15
-rwxr-xr-xutils/morty.sh5
-rwxr-xr-xutils/searx.sh4
-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