Compare commits

..

No commits in common. "902929345d170946fd688fd01644fbf7269e4923" and "40183ba2b573898c6ccf2dd90f222f7674e9a384" have entirely different histories.

5 changed files with 102 additions and 298 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.5.2-590b21165 IMAGEAPP=docker.io/searxng/searxng:2025.1.26-70f1b6500

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: "360search", "baidu", "brave", "dbpedia", "duckduckgo", "google", "yandex", # Existing autocomplete backends: "baidu", "brave", "dbpedia", "duckduckgo", "google", "yandex",
# "mwmbl", "seznam", "sogou", "stract", "swisscows", "quark", "qwant", "wikipedia" - # "mwmbl", "seznam", "startpage", "stract", "swisscows", "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_BASE_URL}. # by ${SEARXNG_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,8 +96,7 @@ 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
@ -144,24 +143,14 @@ 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. # 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".
# #
# 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:
@ -222,38 +211,28 @@ outgoing:
# - 1.1.1.2 # - 1.1.1.2
# - fe80::/126 # - fe80::/126
# Plugin configuration, for more details see # External plugin configuration, for more details see
# https://docs.searxng.org/admin/settings/settings_plugins.html # https://docs.searxng.org/dev/plugins.html
# #
plugins: # plugins:
# - plugin1
searx.plugins.calculator.SXNGPlugin: # - plugin2
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":
# #
@ -317,26 +296,11 @@ 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
@ -404,11 +368,6 @@ 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
@ -487,27 +446,6 @@ 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
@ -537,11 +475,6 @@ 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
@ -591,38 +524,6 @@ 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
@ -697,6 +598,26 @@ 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
@ -775,13 +696,12 @@ engines:
results: HTML results: HTML
# - name: elasticsearch # - name: elasticsearch
# shortcut: els # shortcut: es
# 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
@ -1094,27 +1014,6 @@ 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
@ -1137,8 +1036,14 @@ 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.adminforge.de - https://invidious.io.lol
- https://inv.nadeko.net - 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
shortcut: iv shortcut: iv
timeout: 3.0 timeout: 3.0
disabled: true disabled: true
@ -1148,11 +1053,6 @@ 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
@ -1228,7 +1128,8 @@ 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://libretranslate.com/translate - https://translate.terraprint.co
- https://trans.zillyhuhn.com
# api_key: abc123 # api_key: abc123
shortcut: lt shortcut: lt
disabled: true disabled: true
@ -1302,19 +1203,12 @@ 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
@ -1351,11 +1245,6 @@ 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
@ -1383,31 +1272,18 @@ engines:
require_api_key: false require_api_key: false
results: JSON results: JSON
# https://docs.searxng.org/dev/engines/online/mullvad_leta.html # read https://docs.searxng.org/dev/engines/online/mullvad_leta.html
- name: mullvadleta # - name: mullvadleta
engine: mullvad_leta # engine: mullvad_leta
disabled: true # leta_engine: google # choose one of the following: google, brave
leta_engine: google # use_cache: true # Only 100 non-cache searches per day, suggested only for private instances
categories: [general, web] # search_url: https://leta.mullvad.net
shortcut: ml # 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 - 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
@ -1449,13 +1325,6 @@ 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
@ -1540,12 +1409,9 @@ 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
@ -1657,7 +1523,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
@ -1671,20 +1537,6 @@ 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
@ -1746,12 +1598,6 @@ 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
@ -1806,36 +1652,10 @@ 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
@ -1926,28 +1746,11 @@ engines:
- name: startpage - name: startpage
engine: startpage engine: startpage
shortcut: sp shortcut: sp
startpage_categ: web timeout: 6.0
categories: [general, web] disabled: true
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
@ -1965,13 +1768,13 @@ 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: "!mediathekview concert" # Query to test: "!demo concert"
# #
# - name: mediathekview # - name: demo
# engine: sqlite # engine: sqlite
# shortcut: mediathekview # shortcut: demo
# categories: [general, videos] # categories: general
# result_type: MainResult # result_template: default.html
# 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,
@ -2514,7 +2317,6 @@ 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
@ -2640,12 +2442,6 @@ 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

View File

@ -3,15 +3,17 @@
. ./.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' REPO='https://github.com/searxng/searxng/raw'
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")"
if curl -Lo "$tmp" "$REPO/raw/$new_commit/searx/settings.yml" && ! diff -Z "$tmp" "config/settings.yml" > /dev/null; then for f in limiter.toml settings.yml; do
$EDITOR -d -- "config/settings.yml" "$tmp" 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 fi
done
sed -i "/^IMAGEAPP=/s/:.*/:$new_tag/" .env sed -i "/^IMAGEAPP=/s/:.*/:$new_tag/" .env

View File

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

View File

@ -5,6 +5,11 @@ 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: