From 2cfd3fc44b16e7f3c6010c0ac1004efb6dacf382 Mon Sep 17 00:00:00 2001
From: Ivan Gabaldon
Date: Sat, 5 Apr 2025 10:59:07 +0200
Subject: [PATCH] [enh] tidy: clean old morty, filtron, searx references
Everyone should have already switched from legacy methods
---
Makefile | 5 +-
container/docker-entrypoint.sh | 43 +-----
docs/admin/arch_public.dot | 2 +-
docs/admin/update-searxng.rst | 45 -------
docs/dev/lxcdev.rst | 5 +-
docs/own-instance.rst | 3 +-
docs/utils/searxng.sh.rst | 2 +-
searx/settings.yml | 12 --
searx/settings_defaults.py | 5 -
searx/templates/simple/macros.html | 4 +-
.../simple/result_templates/code.html | 2 +-
.../simple/result_templates/default.html | 2 +-
.../simple/result_templates/map.html | 2 +-
.../simple/result_templates/paper.html | 2 +-
.../simple/result_templates/products.html | 2 +-
.../simple/result_templates/torrent.html | 2 +-
.../simple/result_templates/videos.html | 2 +-
searx/webapp.py | 25 ----
tests/unit/settings/user_settings_simple.yml | 3 -
utils/filtron.sh | 125 ------------------
utils/lib.sh | 4 +-
utils/morty.sh | 124 -----------------
utils/searx.sh | 88 ------------
utils/searxng.sh | 9 --
.../lib/systemd/system/filtron.service | 29 ----
.../lib/systemd/system/morty.service | 29 ----
26 files changed, 18 insertions(+), 558 deletions(-)
delete mode 100755 utils/filtron.sh
delete mode 100755 utils/morty.sh
delete mode 100755 utils/searx.sh
delete mode 100644 utils/templates/lib/systemd/system/filtron.service
delete mode 100644 utils/templates/lib/systemd/system/morty.service
diff --git a/Makefile b/Makefile
index 15e43be08..917d3aeb4 100644
--- a/Makefile
+++ b/Makefile
@@ -65,10 +65,7 @@ test.shell:
utils/lib_redis.sh \
utils/searxng.sh \
utils/lxc.sh \
- utils/lxc-searxng.env \
- utils/searx.sh \
- utils/filtron.sh \
- utils/morty.sh
+ utils/lxc-searxng.env
$(Q)$(MTOOLS) build_msg TEST "$@ OK"
diff --git a/container/docker-entrypoint.sh b/container/docker-entrypoint.sh
index 72d020dcf..ee14b2f05 100755
--- a/container/docker-entrypoint.sh
+++ b/container/docker-entrypoint.sh
@@ -12,8 +12,7 @@ Environment variables:
INSTANCE_NAME settings.yml : general.instance_name
AUTOCOMPLETE settings.yml : search.autocomplete
BASE_URL settings.yml : server.base_url
- MORTY_URL settings.yml : result_proxy.url
- MORTY_KEY settings.yml : result_proxy.key
+
Volume:
/etc/searxng the docker entry point copies settings.yml and uwsgi.ini in
this directory (see the -f command line option)"
@@ -70,20 +69,6 @@ patch_searxng_settings() {
-e "s/autocomplete: \"\"/autocomplete: \"${AUTOCOMPLETE}\"/g" \
-e "s/ultrasecretkey/$(head -c 24 /dev/urandom | base64 | tr -dc 'a-zA-Z0-9')/g" \
"${CONF}"
-
- # Morty configuration
-
- if [ -n "${MORTY_KEY}" ] && [ -n "${MORTY_URL}" ]; then
- sed -i -e "s/image_proxy: false/image_proxy: true/g" \
- "${CONF}"
- cat >> "${CONF}" <<-EOF
-
-# Morty configuration
-result_proxy:
- url: ${MORTY_URL}
- key: !!binary "${MORTY_KEY}"
-EOF
- fi
}
update_conf() {
@@ -122,30 +107,6 @@ update_conf() {
fi
}
-# searx compatibility: copy /etc/searx/* to /etc/searxng/*
-SEARX_CONF=0
-if [ -f "/etc/searx/settings.yml" ]; then
- if [ ! -f "${SEARXNG_SETTINGS_PATH}" ]; then
- printf '⚠️ /etc/searx/settings.yml is copied to /etc/searxng\n'
- cp "/etc/searx/settings.yml" "${SEARXNG_SETTINGS_PATH}"
- fi
- SEARX_CONF=1
-fi
-if [ -f "/etc/searx/uwsgi.ini" ]; then
- printf '⚠️ /etc/searx/uwsgi.ini is ignored. Use the volume /etc/searxng\n'
- SEARX_CONF=1
-fi
-if [ "$SEARX_CONF" -eq "1" ]; then
- printf '⚠️ The deprecated volume /etc/searx is mounted. Please update your configuration to use /etc/searxng ⚠️\n'
- cat << EOF > /etc/searx/deprecated_volume_read_me.txt
-This Docker image uses the volume /etc/searxng
-Update your configuration:
-* remove uwsgi.ini (or very carefully update your existing uwsgi.ini using https://github.com/searxng/searxng/blob/master/container/uwsgi.ini )
-* mount /etc/searxng instead of /etc/searx
-EOF
-fi
-# end of searx compatibility
-
# make sure there are uwsgi settings
update_conf "${FORCE_CONF_UPDATE}" "${UWSGI_SETTINGS_PATH}" "/usr/local/searxng/container/uwsgi.ini" "patch_uwsgi_settings"
@@ -158,8 +119,6 @@ if [ $DRY_RUN -eq 1 ]; then
exit
fi
-unset MORTY_KEY
-
printf 'Listen on %s\n' "${BIND_ADDRESS}"
# Start uwsgi
diff --git a/docs/admin/arch_public.dot b/docs/admin/arch_public.dot
index 526fb53da..49b03d157 100644
--- a/docs/admin/arch_public.dot
+++ b/docs/admin/arch_public.dot
@@ -6,7 +6,7 @@ digraph G {
browser [label="browser", shape=tab, fillcolor=aliceblue];
rp [label="reverse proxy"];
static [label="static files", shape=folder, href="url to configure static files", fillcolor=lightgray];
- uwsgi [label="uwsgi", shape=parallelogram href="https://docs.searxng.org/utils/searx.sh.html"]
+ uwsgi [label="uwsgi", shape=parallelogram href="https://docs.searxng.org/utils/searxng.sh.html"]
redis [label="redis DB", shape=cylinder];
searxng1 [label="SearXNG #1", fontcolor=blue3];
searxng2 [label="SearXNG #2", fontcolor=blue3];
diff --git a/docs/admin/update-searxng.rst b/docs/admin/update-searxng.rst
index b9d15c3f7..16715f00d 100644
--- a/docs/admin/update-searxng.rst
+++ b/docs/admin/update-searxng.rst
@@ -58,9 +58,6 @@ and then, to name just a few:
- Bot protection has been switched from filtron to SearXNG's :ref:`limiter
`, this requires a :ref:`Redis ` database.
-- The image proxy morty is no longer needed, it has been replaced by the
- :ref:`image proxy ` from SearXNG.
-
- To save bandwidth :ref:`cache busting ` has been implemented.
To get in use, the ``static-expires`` needs to be set in the :ref:`uwsgi
setup`.
@@ -71,12 +68,6 @@ examples show, this is not always enough, sometimes services have to be set up
or reconfigured and sometimes services that are no longer needed should be
uninstalled.
-.. hint::
-
- First of all: SearXNG is installed by the script :ref:`searxng.sh`. If you
- have old filtron, morty or searx setup you should consider complete
- uninstall/reinstall.
-
Here you will find a list of changes that affect the infrastructure. Please
check to what extent it is necessary to update your installations:
@@ -85,39 +76,6 @@ check to what extent it is necessary to update your installations:
file manually.
-remove obsolete services
-------------------------
-
-If your searx instance was installed *"Step by step"* or by the *"Installation
-scripts"*, you need to undo the installation procedure completely. If you have
-morty & filtron installed, it is recommended to uninstall these services also.
-In case of scripts, to uninstall use the scripts from the origin you installed
-searx from or try::
-
- $ sudo -H ./utils/filtron.sh remove all
- $ sudo -H ./utils/morty.sh remove all
- $ sudo -H ./utils/searx.sh remove all
-
-.. hint::
-
- If you are migrate from searx take into account that the ``.config.sh`` is no
- longer used.
-
-If you upgrade from searx or from before :pull:`1332` has been merged and you
-have filtron and/or morty installed, don't forget to remove HTTP sites.
-
-Apache::
-
- $ sudo -H ./utils/filtron.sh apache remove
- $ sudo -H ./utils/morty.sh apache remove
-
-nginx::
-
- $ sudo -H ./utils/filtron.sh nginx remove
- $ sudo -H ./utils/morty.sh nginx remove
-
-
-
Check after Installation
------------------------
@@ -130,9 +88,6 @@ to see if there are some left overs. In this example there exists a *old*
SearXNG checks
--------------
ERROR: settings.yml in /etc/searx/ is deprecated, move file to folder /etc/searxng/
- INFO: [OK] (old) account 'searx' does not exists
- INFO: [OK] (old) account 'filtron' does not exists
- INFO: [OK] (old) account 'morty' does not exists
...
INFO searx.redisdb : connecting to Redis db=0 path='/usr/local/searxng-redis/run/redis.sock'
INFO searx.redisdb : connected to Redis
diff --git a/docs/dev/lxcdev.rst b/docs/dev/lxcdev.rst
index 79716ae57..9edd9f672 100644
--- a/docs/dev/lxcdev.rst
+++ b/docs/dev/lxcdev.rst
@@ -319,13 +319,13 @@ To *inspect* the SearXNG instance (already described above):
.. code:: bash
- $ ./utils/searx.sh inspect service
+ $ ./utils/searxng.sh inspect service
.. group-tab:: desktop (HOST)
.. code:: bash
- $ sudo -H ./utils/lxc.sh cmd searxng-archlinux ./utils/searx.sh inspect service
+ $ sudo -H ./utils/lxc.sh cmd searxng-archlinux ./utils/searxng.sh inspect service
Run :ref:`makefile`, e.g. to test inside the container:
@@ -435,4 +435,3 @@ use:
[searxng-archlinux] SEARXNG_URL : http:///n.n.n.140/searxng
[searxng-archlinux] SEARXNG_PORT : 8888
[searxng-archlinux] SEARXNG_BIND_ADDRESS : 127.0.0.1
-
diff --git a/docs/own-instance.rst b/docs/own-instance.rst
index 7d79f26c2..8c0009aff 100644
--- a/docs/own-instance.rst
+++ b/docs/own-instance.rst
@@ -39,8 +39,7 @@ Removing private data means not sending cookies to external search engines and
generating a random browser profile for every request. Thus, it does not matter
if a public or private instance handles the request, because it is anonymized in
both cases. The IP address used will be the IP of the instance, but SearXNG can also be
-configured to use proxy or Tor. `Result proxy
-`__ is supported, too.
+configured to use proxy or Tor.
SearXNG does not serve ads or tracking content, unlike most search services. Therefore,
private data is not forwarded to third parties who might monetize it. Besides
diff --git a/docs/utils/searxng.sh.rst b/docs/utils/searxng.sh.rst
index bedc1ba4c..d45d7014f 100644
--- a/docs/utils/searxng.sh.rst
+++ b/docs/utils/searxng.sh.rst
@@ -28,7 +28,7 @@ In most cases you will install SearXNG simply by running the command:
.. code:: bash
- sudo -H ./utils/searx.sh install all
+ sudo -H ./utils/searxng.sh install all
The installation is described in chapter :ref:`installation basic`.
diff --git a/searx/settings.yml b/searx/settings.yml
index d756e9b1c..7e0455701 100644
--- a/searx/settings.yml
+++ b/searx/settings.yml
@@ -169,18 +169,6 @@ ui:
# - image_proxy
# - query_in_title
-# searx supports result proxification using an external service:
-# https://github.com/asciimoo/morty uncomment below section if you have running
-# morty proxy the key is base64 encoded (keep the !!binary notation)
-# Note: since commit af77ec3, morty accepts a base64 encoded key.
-#
-# result_proxy:
-# url: http://127.0.0.1:3000/
-# # the key is a base64 encoded string, the YAML !!binary prefix is optional
-# key: !!binary "your_morty_proxy_key"
-# # [true|false] enable the "proxy" button next to each result
-# proxify_results: true
-
# communication with search engines
#
outgoing:
diff --git a/searx/settings_defaults.py b/searx/settings_defaults.py
index b91657ff6..4cee7e345 100644
--- a/searx/settings_defaults.py
+++ b/searx/settings_defaults.py
@@ -230,11 +230,6 @@ SCHEMA = {
'extra_proxy_timeout': SettingsValue(int, 0),
'networks': {},
},
- 'result_proxy': {
- 'url': SettingsValue((None, str), None),
- 'key': SettingsBytesValue((None, bytes), None),
- 'proxify_results': SettingsValue(bool, False),
- },
'plugins': SettingsValue(dict, {}),
'checker': {
'off_when_debug': SettingsValue(bool, True, None),
diff --git a/searx/templates/simple/macros.html b/searx/templates/simple/macros.html
index 6010a5a3d..df8469d72 100644
--- a/searx/templates/simple/macros.html
+++ b/searx/templates/simple/macros.html
@@ -44,10 +44,10 @@
{%- endmacro -%}
-{%- macro result_sub_footer(result, proxify) -%}
+{%- macro result_sub_footer(result) -%}
{% for engine in result.engines %}{{ engine }}{% endfor %}
- {{ icon_small('ellipsis-vertical') + result_link(cache_url + result.url, _('cached'), "cache_link") }} {% if proxify and proxify_results %} {{ result_link(proxify(result.url), _('proxied'), "proxyfied_link") }} {% endif %}
+ {{ icon_small('ellipsis-vertical') + result_link(cache_url + result.url, _('cached'), "cache_link") }}
{{- '' -}}
{{- '' -}}
{%- endmacro -%}
diff --git a/searx/templates/simple/result_templates/code.html b/searx/templates/simple/result_templates/code.html
index 7d2c8ff79..49326aed5 100644
--- a/searx/templates/simple/result_templates/code.html
+++ b/searx/templates/simple/result_templates/code.html
@@ -28,5 +28,5 @@
{{- result.codelines|code_highlighter(result.code_language)|safe -}}
-{{- result_sub_footer(result, proxify) -}}
+{{- result_sub_footer(result) -}}
{{- result_footer(result) -}}
diff --git a/searx/templates/simple/result_templates/default.html b/searx/templates/simple/result_templates/default.html
index 263c19a36..8a6329248 100644
--- a/searx/templates/simple/result_templates/default.html
+++ b/searx/templates/simple/result_templates/default.html
@@ -14,7 +14,7 @@
{{ _('This site did not provide any description.')|safe }}
{% endif -%}
-{{- result_sub_footer(result, proxify) -}}
+{{- result_sub_footer(result) -}}
{% if result.iframe_src -%}
diff --git a/searx/templates/simple/result_templates/map.html b/searx/templates/simple/result_templates/map.html
index dc1f06dce..73a2701da 100644
--- a/searx/templates/simple/result_templates/map.html
+++ b/searx/templates/simple/result_templates/map.html
@@ -43,7 +43,7 @@
{{ icon_small( 'globe') }} {{ _('show map') }}
{%- endif -%}
-{{- result_sub_footer(result, proxify) -}}
+{{- result_sub_footer(result) -}}
{% if (result.latitude and result.longitude) or result.boundingbox -%}
diff --git a/searx/templates/simple/result_templates/paper.html b/searx/templates/simple/result_templates/paper.html
index dd610b903..7e94cf174 100644
--- a/searx/templates/simple/result_templates/paper.html
+++ b/searx/templates/simple/result_templates/paper.html
@@ -34,5 +34,5 @@
{%- if result.html_url -%}{{ result_link(result.html_url, _('HTML')) }}{%- endif -%}
{%- if result.doi %}{{ result_link('https://www.altmetric.com/details/doi/' + result.doi, 'Altmetric') }}{% endif -%}
-{{- result_sub_footer(result, proxify) -}}
+{{- result_sub_footer(result) -}}
{{- result_footer(result) }}
diff --git a/searx/templates/simple/result_templates/products.html b/searx/templates/simple/result_templates/products.html
index ce599aef7..b5404fd8d 100644
--- a/searx/templates/simple/result_templates/products.html
+++ b/searx/templates/simple/result_templates/products.html
@@ -10,5 +10,5 @@
{{ result.content|safe }}
{% endif -%}
-{{- result_sub_footer(result, proxify) -}}
+{{- result_sub_footer(result) -}}
{{- result_footer(result) }}
diff --git a/searx/templates/simple/result_templates/torrent.html b/searx/templates/simple/result_templates/torrent.html
index 0c870ae11..27e96dca4 100644
--- a/searx/templates/simple/result_templates/torrent.html
+++ b/searx/templates/simple/result_templates/torrent.html
@@ -19,5 +19,5 @@
{%- if result.files %}{{ icon_big('file') }}
{{ result.files }} {{ _('Number of Files') }}{%- endif -%}
{%- if result.content %}
{{ result.content|safe }}
{%- endif -%}
-{{- result_sub_footer(result, proxify) -}}
+{{- result_sub_footer(result) -}}
{{- result_footer(result) -}}
diff --git a/searx/templates/simple/result_templates/videos.html b/searx/templates/simple/result_templates/videos.html
index 23d4195ca..8771cea1f 100644
--- a/searx/templates/simple/result_templates/videos.html
+++ b/searx/templates/simple/result_templates/videos.html
@@ -15,7 +15,7 @@
{% endif -%}
-{{- result_sub_footer(result, proxify) -}}
+{{- result_sub_footer(result) -}}
{% if result.iframe_src -%}
diff --git a/searx/webapp.py b/searx/webapp.py
index 3b4cf1604..aaa2608c4 100755
--- a/searx/webapp.py
+++ b/searx/webapp.py
@@ -7,8 +7,6 @@
from __future__ import annotations
import inspect
-import hashlib
-import hmac
import json
import os
import sys
@@ -261,24 +259,6 @@ def custom_url_for(endpoint: str, **values):
return url_for(endpoint, **values) + suffix
-def morty_proxify(url: str):
- if not url:
- return url
-
- if url.startswith('//'):
- url = 'https:' + url
-
- if not settings['result_proxy']['url']:
- return url
-
- url_params = dict(mortyurl=url)
-
- if settings['result_proxy']['key']:
- url_params['mortyhash'] = hmac.new(settings['result_proxy']['key'], url.encode(), hashlib.sha256).hexdigest()
-
- return '{0}?{1}'.format(settings['result_proxy']['url'], urlencode(url_params))
-
-
def image_proxify(url: str):
if not url:
return url
@@ -300,9 +280,6 @@ def image_proxify(url: str):
return url
return None
- if settings['result_proxy']['url']:
- return morty_proxify(url)
-
h = new_hmac(settings['server']['secret_key'], url.encode())
return '{0}?{1}'.format(url_for('image_proxy'), urlencode(dict(url=url.encode(), h=h)))
@@ -424,8 +401,6 @@ def render(template_name: str, **kwargs):
kwargs['url_for'] = custom_url_for # override url_for function in templates
kwargs['image_proxify'] = image_proxify
kwargs['favicon_url'] = favicons.favicon_url
- kwargs['proxify'] = morty_proxify if settings['result_proxy']['url'] is not None else None
- kwargs['proxify_results'] = settings['result_proxy']['proxify_results']
kwargs['cache_url'] = settings['ui']['cache_url']
kwargs['get_result_template'] = get_result_template
kwargs['opensearch_url'] = (
diff --git a/tests/unit/settings/user_settings_simple.yml b/tests/unit/settings/user_settings_simple.yml
index 6d6e73577..192c3a335 100644
--- a/tests/unit/settings/user_settings_simple.yml
+++ b/tests/unit/settings/user_settings_simple.yml
@@ -4,6 +4,3 @@ server:
bind_address: "[::]"
default_http_headers:
Custom-Header: Custom-Value
-result_proxy:
- url: https://localhost/morty
- key: "$ecretKey"
diff --git a/utils/filtron.sh b/utils/filtron.sh
deleted file mode 100755
index 2ac3b6dfd..000000000
--- a/utils/filtron.sh
+++ /dev/null
@@ -1,125 +0,0 @@
-#!/usr/bin/env bash
-# SPDX-License-Identifier: AGPL-3.0-or-later
-# shellcheck disable=SC2001
-
-# shellcheck source=utils/lib.sh
-source "$(dirname "${BASH_SOURCE[0]}")/lib.sh"
-
-# ----------------------------------------------------------------------------
-# config
-# ----------------------------------------------------------------------------
-
-PUBLIC_URL="${PUBLIC_URL:-${SEARXNG_URL}}"
-
-FILTRON_ETC="/etc/filtron"
-
-SERVICE_NAME="filtron"
-SERVICE_USER="${SERVICE_USER:-${SERVICE_NAME}}"
-SERVICE_SYSTEMD_UNIT="${SYSTEMD_UNITS}/${SERVICE_NAME}.service"
-
-APACHE_FILTRON_SITE="searx.conf"
-NGINX_FILTRON_SITE="searx.conf"
-
-# ----------------------------------------------------------------------------
-usage() {
-# ----------------------------------------------------------------------------
-
- # shellcheck disable=SC1117
- cat <&1 | prefix_stdout
- if service_is_available "${PUBLIC_URL}"; then
- MSG="** Don't forget to remove your public site! (${PUBLIC_URL}) **" wait_key 10
- fi
-}
-
-remove_apache_site() {
-
- rst_title "Remove Apache site $APACHE_FILTRON_SITE"
-
- rst_para "\
-This removes apache site ${APACHE_FILTRON_SITE}."
-
- ! apache_is_installed && err_msg "Apache is not installed."
-
- if ! ask_yn "Do you really want to continue?" Yn; then
- return
- fi
-
- apache_remove_site "$APACHE_FILTRON_SITE"
-
-}
-
-remove_nginx_site() {
-
- rst_title "Remove nginx site $NGINX_FILTRON_SITE"
-
- rst_para "\
-This removes nginx site ${NGINX_FILTRON_SITE}."
-
- ! nginx_is_installed && err_msg "nginx is not installed."
-
- if ! ask_yn "Do you really want to continue?" Yn; then
- return
- fi
-
- nginx_remove_app "$FILTRON_FILTRON_SITE"
-
-}
-
-# ----------------------------------------------------------------------------
-main "$@"
-# ----------------------------------------------------------------------------
diff --git a/utils/lib.sh b/utils/lib.sh
index ead4b0c61..d3d515c0a 100755
--- a/utils/lib.sh
+++ b/utils/lib.sh
@@ -1802,8 +1802,8 @@ url_replace_hostname(){
# to replace hostname by primary IP::
#
- # url_replace_hostname http://searx-ubu1604/morty $(primary_ip)
- # http://10.246.86.250/morty
+ # url_replace_hostname http://searx-ubu1604/example $(primary_ip)
+ # http://10.246.86.250/example
# shellcheck disable=SC2001
echo "$1" | sed "s|\(http[s]*://\)[^/]*\(.*\)|\1$2\2|"
diff --git a/utils/morty.sh b/utils/morty.sh
deleted file mode 100755
index 52f0fec31..000000000
--- a/utils/morty.sh
+++ /dev/null
@@ -1,124 +0,0 @@
-#!/usr/bin/env bash
-# SPDX-License-Identifier: AGPL-3.0-or-later
-
-# shellcheck source=utils/lib.sh
-source "$(dirname "${BASH_SOURCE[0]}")/lib.sh"
-
-# ----------------------------------------------------------------------------
-# config
-# ----------------------------------------------------------------------------
-
-PUBLIC_URL="${PUBLIC_URL:-${SEARXNG_URL}}"
-
-MORTY_LISTEN="${MORTY_LISTEN:-127.0.0.1:3000}"
-PUBLIC_URL_PATH_MORTY="${PUBLIC_URL_PATH_MORTY:-/morty/}"
-PUBLIC_URL_MORTY="${PUBLIC_URL_MORTY:-$(echo "$PUBLIC_URL" | sed -e's,^\(.*://[^/]*\).*,\1,g')${PUBLIC_URL_PATH_MORTY}}"
-
-SERVICE_NAME="morty"
-SERVICE_USER="${SERVICE_USER:-${SERVICE_NAME}}"
-SERVICE_SYSTEMD_UNIT="${SYSTEMD_UNITS}/${SERVICE_NAME}.service"
-
-# Apache Settings
-
-APACHE_MORTY_SITE="morty.conf"
-NGINX_MORTY_SITE="morty.conf"
-
-# ----------------------------------------------------------------------------
-usage() {
-# ----------------------------------------------------------------------------
-
- # shellcheck disable=SC1117
- cat <