bump: 2025.5.2-590b21165 #14

Merged
ange merged 2 commits from staging into prod 2025-05-03 04:40:09 +00:00
5 changed files with 298 additions and 102 deletions

2
.env
View File

@ -1,2 +1,2 @@
PROD_URL=searx.gmoker.com PROD_URL=searx.gmoker.com
IMAGEAPP=docker.io/searxng/searxng:2025.1.26-70f1b6500 IMAGEAPP=docker.io/searxng/searxng:2025.5.2-590b21165

View File

@ -33,8 +33,8 @@ brand:
search: search:
# Filter results. 0: None, 1: Moderate, 2: Strict # Filter results. 0: None, 1: Moderate, 2: Strict
safe_search: 0 safe_search: 0
# Existing autocomplete backends: "baidu", "brave", "dbpedia", "duckduckgo", "google", "yandex", # Existing autocomplete backends: "360search", "baidu", "brave", "dbpedia", "duckduckgo", "google", "yandex",
# "mwmbl", "seznam", "startpage", "stract", "swisscows", "qwant", "wikipedia" - # "mwmbl", "seznam", "sogou", "stract", "swisscows", "quark", "qwant", "wikipedia" -
# leave blank to turn it off by default. # leave blank to turn it off by default.
autocomplete: "" autocomplete: ""
# minimun characters to type before autocompleter starts # minimun characters to type before autocompleter starts
@ -47,9 +47,9 @@ search:
default_lang: "auto" default_lang: "auto"
# max_page: 0 # if engine supports paging, 0 means unlimited numbers of pages # max_page: 0 # if engine supports paging, 0 means unlimited numbers of pages
# Available languages # Available languages
languages: #languages:
- fr-FR # - fr-FR
- en-US # - en-US
# ban time in seconds after engine errors # ban time in seconds after engine errors
ban_time_on_fail: 5 ban_time_on_fail: 5
# max ban time in seconds after engine errors # max ban time in seconds after engine errors
@ -78,7 +78,7 @@ server:
port: 8888 port: 8888
bind_address: "127.0.0.1" bind_address: "127.0.0.1"
# public URL of the instance, to ensure correct inbound links. Is overwritten # public URL of the instance, to ensure correct inbound links. Is overwritten
# by ${SEARXNG_URL}. # by ${SEARXNG_BASE_URL}.
base_url: false # "http://example.com/location" base_url: false # "http://example.com/location"
# rate limit the number of request on the instance, block some bots. # rate limit the number of request on the instance, block some bots.
# Is overwritten by ${SEARXNG_LIMITER} # Is overwritten by ${SEARXNG_LIMITER}
@ -96,7 +96,8 @@ server:
# 1.0 and 1.1 are supported # 1.0 and 1.1 are supported
http_protocol_version: "1.0" http_protocol_version: "1.0"
# POST queries are more secure as they don't show up in history but may cause # POST queries are more secure as they don't show up in history but may cause
# problems when using Firefox containers # problems when using Firefox containers.
# Is overwritten by ${SEARXNG_METHOD}
method: "GET" method: "GET"
default_http_headers: default_http_headers:
X-Content-Type-Options: nosniff X-Content-Type-Options: nosniff
@ -143,14 +144,24 @@ ui:
# URL formatting: pretty, full or host # URL formatting: pretty, full or host
url_formatting: pretty url_formatting: pretty
# Lock arbitrary settings on the preferences page. To find the ID of the user # Lock arbitrary settings on the preferences page.
# setting you want to lock, check the ID of the form on the page "preferences".
# #
# preferences: # preferences:
# lock: # lock:
# - categories
# - language # - language
# - autocomplete # - autocomplete
# - favicon
# - safesearch
# - method # - method
# - doi_resolver
# - locale
# - theme
# - results_on_new_tab
# - infinite_scroll
# - search_on_category_select
# - method
# - image_proxy
# - query_in_title # - query_in_title
# searx supports result proxification using an external service: # searx supports result proxification using an external service:
@ -211,28 +222,38 @@ outgoing:
# - 1.1.1.2 # - 1.1.1.2
# - fe80::/126 # - fe80::/126
# External plugin configuration, for more details see # Plugin configuration, for more details see
# https://docs.searxng.org/dev/plugins.html # https://docs.searxng.org/admin/settings/settings_plugins.html
# #
# plugins: plugins:
# - plugin1
# - plugin2 searx.plugins.calculator.SXNGPlugin:
# - ... active: true
searx.plugins.hash_plugin.SXNGPlugin:
active: true
searx.plugins.self_info.SXNGPlugin:
active: true
searx.plugins.unit_converter.SXNGPlugin:
active: true
searx.plugins.ahmia_filter.SXNGPlugin:
active: true
searx.plugins.hostnames.SXNGPlugin:
active: true
searx.plugins.oa_doi_rewrite.SXNGPlugin:
active: false
searx.plugins.tor_check.SXNGPlugin:
active: false
searx.plugins.tracker_url_remover.SXNGPlugin:
active: false
# Comment or un-comment plugin to activate / deactivate by default.
#
enabled_plugins:
# these plugins are enabled if nothing is configured ..
- 'Basic Calculator'
- 'Hash plugin'
- 'Self Information'
- 'Tracker URL remover'
- 'Unit converter plugin'
- 'Ahmia blacklist' # activation depends on outgoing.using_tor_proxy
# # these plugins are disabled if nothing is configured ..
- 'Hostnames plugin' # see 'hostnames' configuration below
# - 'Open Access DOI rewrite'
# - 'Tor check plugin'
# Configuration of the "Hostnames plugin": # Configuration of the "Hostnames plugin":
# #
@ -296,11 +317,26 @@ categories_as_tabs:
music: music:
engines: engines:
- name: 360search
engine: 360search
shortcut: 360so
disabled: true
- name: 360search videos
engine: 360search_videos
shortcut: 360sov
disabled: true
- name: 9gag - name: 9gag
engine: 9gag engine: 9gag
shortcut: 9g shortcut: 9g
disabled: true disabled: true
- name: acfun
engine: acfun
shortcut: acf
disabled: true
- name: adobe stock - name: adobe stock
engine: adobe_stock engine: adobe_stock
shortcut: asi shortcut: asi
@ -368,6 +404,11 @@ engines:
disabled: true disabled: true
shortcut: aa shortcut: aa
- name: ansa
engine: ansa
shortcut: ans
disabled: true
# - name: annas articles # - name: annas articles
# engine: annas_archive # engine: annas_archive
# shortcut: aaa # shortcut: aaa
@ -446,6 +487,27 @@ engines:
shortcut: bc shortcut: bc
categories: music categories: music
- name: baidu
baidu_category: general
categories: [general]
engine: baidu
shortcut: bd
disabled: true
- name: baidu images
baidu_category: images
categories: [images]
engine: baidu
shortcut: bdi
disabled: true
- name: baidu kaifa
baidu_category: it
categories: [it]
engine: baidu
shortcut: bdk
disabled: true
- name: wikipedia - name: wikipedia
engine: wikipedia engine: wikipedia
shortcut: wp shortcut: wp
@ -475,6 +537,11 @@ engines:
engine: bing_videos engine: bing_videos
shortcut: biv shortcut: biv
- name: bitchute
engine: bitchute
shortcut: bit
disabled: true
- name: bitbucket - name: bitbucket
engine: xpath engine: xpath
paging: true paging: true
@ -524,6 +591,38 @@ engines:
# to show premium or plus results too: # to show premium or plus results too:
# skip_premium: false # skip_premium: false
# WARNING: links from chinaso.com voilate users privacy
# Before activate these engines its mandatory to read
# - https://github.com/searxng/searxng/issues/4694
# - https://docs.searxng.org/dev/engines/online/chinaso.html
- name: chinaso news
engine: chinaso
shortcut: chinaso
categories: [news]
chinaso_category: news
chinaso_news_source: all
disabled: true
inactive: true
- name: chinaso images
engine: chinaso
network: chinaso news
shortcut: chinasoi
categories: [images]
chinaso_category: images
disabled: true
inactive: true
- name: chinaso videos
engine: chinaso
network: chinaso news
shortcut: chinasov
categories: [videos]
chinaso_category: videos
disabled: true
inactive: true
- name: cloudflareai - name: cloudflareai
engine: cloudflareai engine: cloudflareai
shortcut: cfai shortcut: cfai
@ -598,26 +697,6 @@ engines:
search_type: news search_type: news
disabled: true disabled: true
- name: curlie
engine: xpath
shortcut: cl
categories: general
disabled: true
paging: true
lang_all: ''
search_url: https://curlie.org/search?q={query}&lang={lang}&start={pageno}&stime=92452189
page_size: 20
results_xpath: //div[@id="site-list-content"]/div[@class="site-item"]
url_xpath: ./div[@class="title-and-desc"]/a/@href
title_xpath: ./div[@class="title-and-desc"]/a/div
content_xpath: ./div[@class="title-and-desc"]/div[@class="site-descr"]
about:
website: https://curlie.org/
wikidata_id: Q60715723
use_official_api: false
require_api_key: false
results: HTML
- name: currency - name: currency
engine: currency_convert engine: currency_convert
categories: general categories: general
@ -696,17 +775,18 @@ engines:
results: HTML results: HTML
# - name: elasticsearch # - name: elasticsearch
# shortcut: es # shortcut: els
# engine: elasticsearch # engine: elasticsearch
# base_url: http://localhost:9200 # base_url: http://localhost:9200
# username: elastic # username: elastic
# password: changeme # password: changeme
# index: my-index # index: my-index
# enable_http: true
# # available options: match, simple_query_string, term, terms, custom # # available options: match, simple_query_string, term, terms, custom
# query_type: match # query_type: match
# # if query_type is set to custom, provide your query here # # if query_type is set to custom, provide your query here
# #custom_query_json: {"query":{"match_all": {}}} # # custom_query_json: {"query":{"match_all": {}}}
# #show_metadata: false # # show_metadata: false
# disabled: true # disabled: true
- name: wikidata - name: wikidata
@ -1014,6 +1094,27 @@ engines:
require_api_key: false require_api_key: false
results: JSON results: JSON
- name: il post
engine: il_post
shortcut: pst
- name: huggingface
engine: huggingface
shortcut: hf
disabled: true
- name: huggingface datasets
huggingface_endpoint: datasets
engine: huggingface
shortcut: hfd
disabled: true
- name: huggingface spaces
huggingface_endpoint: spaces
engine: huggingface
shortcut: hfs
disabled: true
- name: imdb - name: imdb
engine: imdb engine: imdb
shortcut: imdb shortcut: imdb
@ -1036,14 +1137,8 @@ engines:
# Instanes will be selected randomly, see https://api.invidious.io/ for # Instanes will be selected randomly, see https://api.invidious.io/ for
# instances that are stable (good uptime) and close to you. # instances that are stable (good uptime) and close to you.
base_url: base_url:
- https://invidious.io.lol - https://invidious.adminforge.de
- https://invidious.fdn.fr - https://inv.nadeko.net
- https://yt.artemislena.eu
- https://invidious.tiekoetter.com
- https://invidious.flokinet.to
- https://vid.puffyan.us
- https://invidious.privacydev.net
- https://inv.tux.pizza
shortcut: iv shortcut: iv
timeout: 3.0 timeout: 3.0
disabled: true disabled: true
@ -1053,6 +1148,11 @@ engines:
shortcut: ip shortcut: ip
disabled: true disabled: true
- name: iqiyi
engine: iqiyi
shortcut: iq
disabled: true
- name: jisho - name: jisho
engine: jisho engine: jisho
shortcut: js shortcut: js
@ -1128,8 +1228,7 @@ engines:
engine: libretranslate engine: libretranslate
# https://github.com/LibreTranslate/LibreTranslate?tab=readme-ov-file#mirrors # https://github.com/LibreTranslate/LibreTranslate?tab=readme-ov-file#mirrors
base_url: base_url:
- https://translate.terraprint.co - https://libretranslate.com/translate
- https://trans.zillyhuhn.com
# api_key: abc123 # api_key: abc123
shortcut: lt shortcut: lt
disabled: true disabled: true
@ -1203,12 +1302,19 @@ engines:
disabled: true disabled: true
number_of_results: 20 number_of_results: 20
# https://docs.searxng.org/dev/engines/offline/search-indexer-engines.html#module-searx.engines.meilisearch
# - name: meilisearch # - name: meilisearch
# engine: meilisearch # engine: meilisearch
# shortcut: mes # shortcut: mes
# enable_http: true # enable_http: true
# base_url: http://localhost:7700 # base_url: http://localhost:7700
# index: my-index # index: my-index
# auth_key: Bearer XXXX
- name: microsoft learn
engine: microsoft_learn
shortcut: msl
disabled: true
- name: mixcloud - name: mixcloud
engine: mixcloud engine: mixcloud
@ -1245,6 +1351,11 @@ engines:
shortcut: mwm shortcut: mwm
disabled: true disabled: true
- name: niconico
engine: niconico
shortcut: nico
disabled: true
- name: npm - name: npm
engine: npm engine: npm
shortcut: npm shortcut: npm
@ -1272,18 +1383,31 @@ engines:
require_api_key: false require_api_key: false
results: JSON results: JSON
# read https://docs.searxng.org/dev/engines/online/mullvad_leta.html # https://docs.searxng.org/dev/engines/online/mullvad_leta.html
# - name: mullvadleta - name: mullvadleta
# engine: mullvad_leta engine: mullvad_leta
# leta_engine: google # choose one of the following: google, brave disabled: true
# use_cache: true # Only 100 non-cache searches per day, suggested only for private instances leta_engine: google
# search_url: https://leta.mullvad.net categories: [general, web]
# categories: [general, web] shortcut: ml
# shortcut: ml
- name: mullvadleta brave
engine: mullvad_leta
network: mullvadleta
disabled: true
leta_engine: brave
categories: [general, web]
shortcut: mlb
- name: odysee - name: odysee
engine: odysee engine: odysee
shortcut: od shortcut: od
disabled: true
- name: ollama
engine: ollama
shortcut: ollama
disabled: true
- name: openairedatasets - name: openairedatasets
engine: json_engine engine: json_engine
@ -1325,6 +1449,13 @@ engines:
require_api_key: false require_api_key: false
results: JSON results: JSON
- name: openclipart
engine: openclipart
shortcut: ocl
inactive: true
disabled: true
timeout: 30
- name: openlibrary - name: openlibrary
engine: openlibrary engine: openlibrary
shortcut: ol shortcut: ol
@ -1409,9 +1540,12 @@ engines:
frontend_url: https://srv.piped.video frontend_url: https://srv.piped.video
# Instance will be selected randomly, for more see https://piped-instances.kavin.rocks/ # Instance will be selected randomly, for more see https://piped-instances.kavin.rocks/
backend_url: backend_url:
- https://pipedapi.kavin.rocks
- https://pipedapi-libre.kavin.rocks
- https://pipedapi.adminforge.de - https://pipedapi.adminforge.de
- https://pipedapi.nosebs.ru
- https://pipedapi.ducks.party
- https://pipedapi.reallyaweso.me
- https://api.piped.private.coffee
- https://pipedapi.darkness.services
- name: piped.music - name: piped.music
engine: piped engine: piped
@ -1523,7 +1657,7 @@ engines:
require_api_key: false require_api_key: false
results: HTML results: HTML
- name: Public Domain Image Archive - name: public domain image archive
engine: public_domain_image_archive engine: public_domain_image_archive
shortcut: pdia shortcut: pdia
disabled: true disabled: true
@ -1537,6 +1671,20 @@ engines:
shortcut: pypi shortcut: pypi
engine: pypi engine: pypi
- name: quark
quark_category: general
categories: [general]
engine: quark
shortcut: qk
disabled: true
- name: quark images
quark_category: images
categories: [images]
engine: quark
shortcut: qki
disabled: true
- name: qwant - name: qwant
qwant_categ: web qwant_categ: web
engine: qwant engine: qwant
@ -1598,6 +1746,12 @@ engines:
page_size: 25 page_size: 25
disabled: true disabled: true
- name: reuters
engine: reuters
shortcut: reu
# https://docs.searxng.org/dev/engines/online/reuters.html
# sort_order = "relevance"
- name: right dao - name: right dao
engine: xpath engine: xpath
paging: true paging: true
@ -1652,10 +1806,36 @@ engines:
about: about:
website: https://searchmysite.net website: https://searchmysite.net
- name: selfhst icons
engine: selfhst
shortcut: si
inactive: true
disabled: true
- name: sepiasearch - name: sepiasearch
engine: sepiasearch engine: sepiasearch
shortcut: sep shortcut: sep
- name: sogou
engine: sogou
shortcut: sogou
disabled: true
- name: sogou images
engine: sogou_images
shortcut: sogoui
disabled: true
- name: sogou videos
engine: sogou_videos
shortcut: sogouv
disabled: true
- name: sogou wechat
engine: sogou_wechat
shortcut: sogouw
disabled: true
- name: soundcloud - name: soundcloud
engine: soundcloud engine: soundcloud
shortcut: sc shortcut: sc
@ -1746,11 +1926,28 @@ engines:
- name: startpage - name: startpage
engine: startpage engine: startpage
shortcut: sp shortcut: sp
timeout: 6.0 startpage_categ: web
disabled: true categories: [general, web]
additional_tests: additional_tests:
rosebud: *test_rosebud rosebud: *test_rosebud
- name: startpage news
engine: startpage
startpage_categ: news
categories: [news, web]
shortcut: spn
- name: startpage images
engine: startpage
startpage_categ: images
categories: [images, web]
shortcut: spi
- name: steam
engine: steam
shortcut: stm
disabled: true
- name: tokyotoshokan - name: tokyotoshokan
engine: tokyotoshokan engine: tokyotoshokan
shortcut: tt shortcut: tt
@ -1768,15 +1965,15 @@ engines:
# For this demo of the sqlite engine download: # For this demo of the sqlite engine download:
# https://liste.mediathekview.de/filmliste-v2.db.bz2 # https://liste.mediathekview.de/filmliste-v2.db.bz2
# and unpack into searx/data/filmliste-v2.db # and unpack into searx/data/filmliste-v2.db
# Query to test: "!demo concert" # Query to test: "!mediathekview concert"
# #
# - name: demo # - name: mediathekview
# engine: sqlite # engine: sqlite
# shortcut: demo # shortcut: mediathekview
# categories: general # categories: [general, videos]
# result_template: default.html # result_type: MainResult
# database: searx/data/filmliste-v2.db # database: searx/data/filmliste-v2.db
# query_str: >- # query_str: >-
# SELECT title || ' (' || time(duration, 'unixepoch') || ')' AS title, # SELECT title || ' (' || time(duration, 'unixepoch') || ')' AS title,
# COALESCE( NULLIF(url_video_hd,''), NULLIF(url_video_sd,''), url_video) AS url, # COALESCE( NULLIF(url_video_hd,''), NULLIF(url_video_sd,''), url_video) AS url,
# description AS content # description AS content
@ -2317,6 +2514,7 @@ engines:
engine: wallhaven engine: wallhaven
# api_key: abcdefghijklmnopqrstuvwxyz # api_key: abcdefghijklmnopqrstuvwxyz
shortcut: wh shortcut: wh
disabled: true
# wikimini: online encyclopedia for children # wikimini: online encyclopedia for children
# The fulltext and title parameter is necessary for Wikimini because # The fulltext and title parameter is necessary for Wikimini because
@ -2442,6 +2640,12 @@ engines:
shortcut: pgo shortcut: pgo
disabled: true disabled: true
- name: senscritique
engine: senscritique
shortcut: scr
timeout: 4.0
disabled: true
# Doku engine lets you access to any Doku wiki instance: # Doku engine lets you access to any Doku wiki instance:
# A public one or a privete/corporate one. # A public one or a privete/corporate one.
# - name: ubuntuwiki # - name: ubuntuwiki

10
diff.sh
View File

@ -3,17 +3,15 @@
. ./.env . ./.env
DOCKER_API='https://hub.docker.com/v2/namespaces/searxng/repositories/searxng' DOCKER_API='https://hub.docker.com/v2/namespaces/searxng/repositories/searxng'
REPO='https://github.com/searxng/searxng/raw' REPO='https://github.com/searxng/searxng'
tmp="$(mktemp)" tmp="$(mktemp)"
new_tag="$(curl -L "$DOCKER_API/tags" | jq -r '.results[2].name')" new_tag="$(curl -L "$DOCKER_API/tags" | jq -r '.results[2].name')"
new_commit="$(grep -Eo '\w+$' <<< "$new_tag")" new_commit="$(grep -Eo '\w+$' <<< "$new_tag")"
for f in limiter.toml settings.yml; do if curl -Lo "$tmp" "$REPO/raw/$new_commit/searx/settings.yml" && ! diff -Z "$tmp" "config/settings.yml" > /dev/null; then
if curl -Lo "$tmp" "$REPO/$new_commit/searx/$f" && ! diff -Z "$tmp" "config/$f" > /dev/null; then $EDITOR -d -- "config/settings.yml" "$tmp"
$EDITOR -d -c "wincmd l" -- "$tmp" "config/$f" fi
fi
done
sed -i "/^IMAGEAPP=/s/:.*/:$new_tag/" .env sed -i "/^IMAGEAPP=/s/:.*/:$new_tag/" .env

View File

@ -3,34 +3,33 @@ set -o pipefail
function kapply() { function kapply() {
for f in "$@"; do for f in "$@"; do
kubectl apply -f <(envsubst < "manifests/$f") kubectl apply --server-side \
-f<(envsubst "$(env | sed 's/^/$/')" < "manifests/$f")
done done
}; export -f kapply }; export -f kapply
function kcreatesec() { function kcreatesec() {
kubectl create secret generic --dry-run=client -oyaml "$@" | kubectl replace -f- kubectl apply --server-side \
-f<(kubectl create secret generic --dry-run=client -oyaml "$@")
}; export -f kcreatesec }; export -f kcreatesec
function kcreatecm() { function kcreatecm() {
kubectl create configmap --dry-run=client -oyaml "$@" | kubectl replace -f- kubectl apply --server-side \
-f<(kubectl create configmap --dry-run=client -oyaml "$@")
}; export -f kcreatecm }; export -f kcreatecm
function kgseckey() { function kgseckey() {
local sec="$1"; shift local sec="$1"; shift
local key="$1"; shift local key="$1"; shift
if ! kubectl get secret "$sec" -ojson | jq -re ".data.\"$key\" // empty" | base64 -d; then kubectl get secret "$sec" -ojson | jq -re ".data.\"$key\"" | base64 -d
return 1
fi
}; export -f kgseckey }; export -f kgseckey
function kgcmkey() { function kgcmkey() {
local cm="$1"; shift local cm="$1"; shift
local key="$1"; shift local key="$1"; shift
if ! kubectl get configmap "$cm" -ojson | jq -re ".data.\"$key\" // empty"; then kubectl get configmap "$cm" -ojson | jq -re ".data.\"$key\""
return 1
fi
}; export -f kgcmkey }; export -f kgcmkey

View File

@ -5,11 +5,6 @@ metadata:
name: app name: app
annotations: annotations:
cert-manager.io/cluster-issuer: letsencrypt-prod cert-manager.io/cluster-issuer: letsencrypt-prod
gethomepage.dev/enabled: "true"
gethomepage.dev/instance: "$GITHUB_REF_NAME"
gethomepage.dev/name: SearXNG
gethomepage.dev/icon: searxng
gethomepage.dev/description: Metasearch engine
spec: spec:
ingressClassName: nginx ingressClassName: nginx
tls: tls: