Compare commits

...

2 Commits

Author SHA1 Message Date
902929345d
bump: 2025.5.2-590b21165
All checks were successful
/ deploy (push) Successful in 7s
2025-05-03 04:36:14 +00:00
76de8ceb34
bump: 2025.2.20-28d1240fc
All checks were successful
/ deploy (push) Successful in 5s
2025-02-21 06:36:06 +00:00
5 changed files with 298 additions and 102 deletions

2
.env
View File

@ -1,2 +1,2 @@
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:
# Filter results. 0: None, 1: Moderate, 2: Strict
safe_search: 0
# Existing autocomplete backends: "baidu", "brave", "dbpedia", "duckduckgo", "google", "yandex",
# "mwmbl", "seznam", "startpage", "stract", "swisscows", "qwant", "wikipedia" -
# Existing autocomplete backends: "360search", "baidu", "brave", "dbpedia", "duckduckgo", "google", "yandex",
# "mwmbl", "seznam", "sogou", "stract", "swisscows", "quark", "qwant", "wikipedia" -
# leave blank to turn it off by default.
autocomplete: ""
# minimun characters to type before autocompleter starts
@ -47,9 +47,9 @@ search:
default_lang: "auto"
# max_page: 0 # if engine supports paging, 0 means unlimited numbers of pages
# Available languages
languages:
- fr-FR
- en-US
#languages:
# - fr-FR
# - en-US
# ban time in seconds after engine errors
ban_time_on_fail: 5
# max ban time in seconds after engine errors
@ -78,7 +78,7 @@ server:
port: 8888
bind_address: "127.0.0.1"
# 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"
# rate limit the number of request on the instance, block some bots.
# Is overwritten by ${SEARXNG_LIMITER}
@ -96,7 +96,8 @@ server:
# 1.0 and 1.1 are supported
http_protocol_version: "1.0"
# 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"
default_http_headers:
X-Content-Type-Options: nosniff
@ -143,14 +144,24 @@ ui:
# URL formatting: pretty, full or host
url_formatting: pretty
# Lock arbitrary settings on the preferences page. To find the ID of the user
# setting you want to lock, check the ID of the form on the page "preferences".
# Lock arbitrary settings on the preferences page.
#
# preferences:
# lock:
# - categories
# - language
# - autocomplete
# - favicon
# - safesearch
# - method
# - doi_resolver
# - locale
# - theme
# - results_on_new_tab
# - infinite_scroll
# - search_on_category_select
# - method
# - image_proxy
# - query_in_title
# searx supports result proxification using an external service:
@ -211,28 +222,38 @@ outgoing:
# - 1.1.1.2
# - fe80::/126
# External plugin configuration, for more details see
# https://docs.searxng.org/dev/plugins.html
# Plugin configuration, for more details see
# https://docs.searxng.org/admin/settings/settings_plugins.html
#
# plugins:
# - plugin1
# - plugin2
# - ...
plugins:
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":
#
@ -296,11 +317,26 @@ categories_as_tabs:
music:
engines:
- name: 360search
engine: 360search
shortcut: 360so
disabled: true
- name: 360search videos
engine: 360search_videos
shortcut: 360sov
disabled: true
- name: 9gag
engine: 9gag
shortcut: 9g
disabled: true
- name: acfun
engine: acfun
shortcut: acf
disabled: true
- name: adobe stock
engine: adobe_stock
shortcut: asi
@ -368,6 +404,11 @@ engines:
disabled: true
shortcut: aa
- name: ansa
engine: ansa
shortcut: ans
disabled: true
# - name: annas articles
# engine: annas_archive
# shortcut: aaa
@ -446,6 +487,27 @@ engines:
shortcut: bc
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
engine: wikipedia
shortcut: wp
@ -475,6 +537,11 @@ engines:
engine: bing_videos
shortcut: biv
- name: bitchute
engine: bitchute
shortcut: bit
disabled: true
- name: bitbucket
engine: xpath
paging: true
@ -524,6 +591,38 @@ engines:
# to show premium or plus results too:
# 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
engine: cloudflareai
shortcut: cfai
@ -598,26 +697,6 @@ engines:
search_type: news
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
engine: currency_convert
categories: general
@ -696,17 +775,18 @@ engines:
results: HTML
# - name: elasticsearch
# shortcut: es
# shortcut: els
# engine: elasticsearch
# base_url: http://localhost:9200
# username: elastic
# password: changeme
# index: my-index
# enable_http: true
# # available options: match, simple_query_string, term, terms, custom
# query_type: match
# # if query_type is set to custom, provide your query here
# #custom_query_json: {"query":{"match_all": {}}}
# #show_metadata: false
# # custom_query_json: {"query":{"match_all": {}}}
# # show_metadata: false
# disabled: true
- name: wikidata
@ -1014,6 +1094,27 @@ engines:
require_api_key: false
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
engine: imdb
shortcut: imdb
@ -1036,14 +1137,8 @@ engines:
# Instanes will be selected randomly, see https://api.invidious.io/ for
# instances that are stable (good uptime) and close to you.
base_url:
- https://invidious.io.lol
- https://invidious.fdn.fr
- https://yt.artemislena.eu
- https://invidious.tiekoetter.com
- https://invidious.flokinet.to
- https://vid.puffyan.us
- https://invidious.privacydev.net
- https://inv.tux.pizza
- https://invidious.adminforge.de
- https://inv.nadeko.net
shortcut: iv
timeout: 3.0
disabled: true
@ -1053,6 +1148,11 @@ engines:
shortcut: ip
disabled: true
- name: iqiyi
engine: iqiyi
shortcut: iq
disabled: true
- name: jisho
engine: jisho
shortcut: js
@ -1128,8 +1228,7 @@ engines:
engine: libretranslate
# https://github.com/LibreTranslate/LibreTranslate?tab=readme-ov-file#mirrors
base_url:
- https://translate.terraprint.co
- https://trans.zillyhuhn.com
- https://libretranslate.com/translate
# api_key: abc123
shortcut: lt
disabled: true
@ -1203,12 +1302,19 @@ engines:
disabled: true
number_of_results: 20
# https://docs.searxng.org/dev/engines/offline/search-indexer-engines.html#module-searx.engines.meilisearch
# - name: meilisearch
# engine: meilisearch
# shortcut: mes
# enable_http: true
# base_url: http://localhost:7700
# index: my-index
# auth_key: Bearer XXXX
- name: microsoft learn
engine: microsoft_learn
shortcut: msl
disabled: true
- name: mixcloud
engine: mixcloud
@ -1245,6 +1351,11 @@ engines:
shortcut: mwm
disabled: true
- name: niconico
engine: niconico
shortcut: nico
disabled: true
- name: npm
engine: npm
shortcut: npm
@ -1272,18 +1383,31 @@ engines:
require_api_key: false
results: JSON
# read https://docs.searxng.org/dev/engines/online/mullvad_leta.html
# - name: mullvadleta
# engine: mullvad_leta
# leta_engine: google # choose one of the following: google, brave
# use_cache: true # Only 100 non-cache searches per day, suggested only for private instances
# search_url: https://leta.mullvad.net
# categories: [general, web]
# shortcut: ml
# https://docs.searxng.org/dev/engines/online/mullvad_leta.html
- name: mullvadleta
engine: mullvad_leta
disabled: true
leta_engine: google
categories: [general, web]
shortcut: ml
- name: mullvadleta brave
engine: mullvad_leta
network: mullvadleta
disabled: true
leta_engine: brave
categories: [general, web]
shortcut: mlb
- name: odysee
engine: odysee
shortcut: od
disabled: true
- name: ollama
engine: ollama
shortcut: ollama
disabled: true
- name: openairedatasets
engine: json_engine
@ -1325,6 +1449,13 @@ engines:
require_api_key: false
results: JSON
- name: openclipart
engine: openclipart
shortcut: ocl
inactive: true
disabled: true
timeout: 30
- name: openlibrary
engine: openlibrary
shortcut: ol
@ -1409,9 +1540,12 @@ engines:
frontend_url: https://srv.piped.video
# Instance will be selected randomly, for more see https://piped-instances.kavin.rocks/
backend_url:
- https://pipedapi.kavin.rocks
- https://pipedapi-libre.kavin.rocks
- 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
engine: piped
@ -1523,7 +1657,7 @@ engines:
require_api_key: false
results: HTML
- name: Public Domain Image Archive
- name: public domain image archive
engine: public_domain_image_archive
shortcut: pdia
disabled: true
@ -1537,6 +1671,20 @@ engines:
shortcut: 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
qwant_categ: web
engine: qwant
@ -1598,6 +1746,12 @@ engines:
page_size: 25
disabled: true
- name: reuters
engine: reuters
shortcut: reu
# https://docs.searxng.org/dev/engines/online/reuters.html
# sort_order = "relevance"
- name: right dao
engine: xpath
paging: true
@ -1652,10 +1806,36 @@ engines:
about:
website: https://searchmysite.net
- name: selfhst icons
engine: selfhst
shortcut: si
inactive: true
disabled: true
- name: sepiasearch
engine: sepiasearch
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
engine: soundcloud
shortcut: sc
@ -1746,11 +1926,28 @@ engines:
- name: startpage
engine: startpage
shortcut: sp
timeout: 6.0
disabled: true
startpage_categ: web
categories: [general, web]
additional_tests:
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
engine: tokyotoshokan
shortcut: tt
@ -1768,15 +1965,15 @@ engines:
# For this demo of the sqlite engine download:
# https://liste.mediathekview.de/filmliste-v2.db.bz2
# and unpack into searx/data/filmliste-v2.db
# Query to test: "!demo concert"
# Query to test: "!mediathekview concert"
#
# - name: demo
# - name: mediathekview
# engine: sqlite
# shortcut: demo
# categories: general
# result_template: default.html
# shortcut: mediathekview
# categories: [general, videos]
# result_type: MainResult
# database: searx/data/filmliste-v2.db
# query_str: >-
# query_str: >-
# SELECT title || ' (' || time(duration, 'unixepoch') || ')' AS title,
# COALESCE( NULLIF(url_video_hd,''), NULLIF(url_video_sd,''), url_video) AS url,
# description AS content
@ -2317,6 +2514,7 @@ engines:
engine: wallhaven
# api_key: abcdefghijklmnopqrstuvwxyz
shortcut: wh
disabled: true
# wikimini: online encyclopedia for children
# The fulltext and title parameter is necessary for Wikimini because
@ -2442,6 +2640,12 @@ engines:
shortcut: pgo
disabled: true
- name: senscritique
engine: senscritique
shortcut: scr
timeout: 4.0
disabled: true
# Doku engine lets you access to any Doku wiki instance:
# A public one or a privete/corporate one.
# - name: ubuntuwiki

10
diff.sh
View File

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

View File

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

View File

@ -5,11 +5,6 @@ metadata:
name: app
annotations:
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:
ingressClassName: nginx
tls: