diff --git a/.env b/.env index 0d0d991..3c97c28 100644 --- a/.env +++ b/.env @@ -1,2 +1,2 @@ PROD_URL=searx.gmoker.com -IMAGEAPP=docker.io/searxng/searxng:2025.2.20-28d1240fc +IMAGEAPP=docker.io/searxng/searxng:2025.5.2-590b21165 diff --git a/config/settings.yml b/config/settings.yml index b81138c..c3372b5 100644 --- a/config/settings.yml +++ b/config/settings.yml @@ -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", "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 @@ -221,29 +222,38 @@ outgoing: # - 1.1.1.2 # - fe80::/126 -# External plugin configuration, for more details see +# Plugin configuration, for more details see # https://docs.searxng.org/admin/settings/settings_plugins.html # -# plugins: -# - mypackage.mymodule.MyPlugin -# - mypackage.mymodule.MyOtherPlugin -# - ... +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. -# https://docs.searxng.org/admin/settings/settings_plugins.html -# -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": # @@ -307,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 @@ -379,6 +404,11 @@ engines: disabled: true shortcut: aa + - name: ansa + engine: ansa + shortcut: ans + disabled: true + # - name: annas articles # engine: annas_archive # shortcut: aaa @@ -457,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 @@ -486,6 +537,11 @@ engines: engine: bing_videos shortcut: biv + - name: bitchute + engine: bitchute + shortcut: bit + disabled: true + - name: bitbucket engine: xpath paging: true @@ -535,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 @@ -609,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 @@ -707,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 @@ -1025,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 @@ -1058,6 +1148,11 @@ engines: shortcut: ip disabled: true + - name: iqiyi + engine: iqiyi + shortcut: iq + disabled: true + - name: jisho engine: jisho shortcut: js @@ -1207,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 @@ -1249,6 +1351,11 @@ engines: shortcut: mwm disabled: true + - name: niconico + engine: niconico + shortcut: nico + disabled: true + - name: npm engine: npm shortcut: npm @@ -1276,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 @@ -1329,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 @@ -1544,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 @@ -1605,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 @@ -1659,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 @@ -1770,6 +1943,11 @@ engines: categories: [images, web] shortcut: spi + - name: steam + engine: steam + shortcut: stm + disabled: true + - name: tokyotoshokan engine: tokyotoshokan shortcut: tt @@ -1787,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 @@ -2462,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 diff --git a/diff.sh b/diff.sh index 9e74529..d6ed2ef 100755 --- a/diff.sh +++ b/diff.sh @@ -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 -- "config/$f" "$tmp" - 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 diff --git a/manifests/bin/deploy.sh b/manifests/bin/deploy.sh index c260ff1..9ef8b2f 100755 --- a/manifests/bin/deploy.sh +++ b/manifests/bin/deploy.sh @@ -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 diff --git a/manifests/common/app.yaml b/manifests/common/app.yaml index 0e76fcf..94bbda6 100644 --- a/manifests/common/app.yaml +++ b/manifests/common/app.yaml @@ -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: