SearXNG où comment avoir son propre metamoteur souverain

l’Almanet doLys Gnu/Linux – Open Source – Entreprises Forums L’almanet doLys Open Source SearXNG où comment avoir son propre metamoteur souverain

Mots-clés : 

  • This topic is empty.
Affichage de 1 message (sur 1 au total)
  • Auteur
    Articles
  • #12536
    nam1962nam1962
    Keymaster

    J’utilisais jusqu’ici Searx puis j’ai cherché à lui ajouter Yep, mais n’ai pas pu.

    Ceci m’a dirigé vers SearXNG qui est un fork un peu plus audacieux et rolling (développement continu)
    J’ai tenu à le déployer sous docker à la fois pour connaître un peu mieux docker, avoir un outil isolé de mon installation et avoir la possibilité à terme de le déployer sur un serveur.

    Voici comment faire.

    D’abord installer docker ! (ceci dépend de votre OS : je vous laisse trouver 😉

    l’activer

    sudo systemctl enable --now docker
    sudo systemctl start docker

    Ensuite, comme on est sur un ordi perso, s’assurer que nous soyons ajouté en tant qu’utilisateur au groupe docker.

    sudo usermod -a -G docker $USER

    Puis, depuis votre /home, créer un dossier searxng

    mkdir searxng

    Y aller

    cd searxng

    Puis charger le programme du container

    docker pull searxng/searxng

    Installer le container (je le force sur le port 8888, pour être tranquille, vous pouvez choisir un autre port)

    docker run --restart=always -d -p 8888:8080 \
               -v "${HOME}/searxng:/etc/searxng" \
               -e "BASE_URL=http://localhost:8888/" \
               -e "INSTANCE_NAME=doLys_search" \
               --name mois_annee__searxng \
               searxng/searxng

    Je l’appelle doLys mais vous pouvez changer, je donne aussi un nom au container pour suivre mes mise à jour (remplacez mois_annee par les bons nombres).
    restart=always s’assure que votre container démarre à chaque boot.

    Il faut maintenant devenir propriétaire des fichiers de réglage (qui définissent principalement les moteurs à utiliser) Si vous avez plusieurs utilisateurs, modifiez, bien sûr.

    sudo chown $USER:$USER ~/searxng/settings.yml
    sudo chown $USER:$USER ~/searxng/uwsgi.ini
    sudo chmod 644 ~/searxng/settings.yml
    sudo chmod 644 ~/searxng/uwsgi.ini

    Il faut maintenant mettre un clef secrete de qualité à votre settings.yml !

    sed -i "s|ultrasecretkey|$(openssl rand -hex 32)|g" settings.yml
    
    

    Et bien sûr préparer votre settings.yml. Voici le mien dont j’ai bien sûr vidé les faux nez Duckduckgo et Qwant, entre autres 😉

    general:
      # Debug mode, only for development. Is overwritten by ${SEARXNG_DEBUG}
      debug: false
      # displayed name
      instance_name: "doLys"
      # For example: https://example.com/privacy
      privacypolicy_url: false
      # use true to use your own donation page written in searx/info/en/donate.md
      # use false to disable the donation link
      donation_url: false
      # mailto:contact@example.com
      contact_url: false
      # record stats
      enable_metrics: true
    
    brand:
      new_issue_url: https://github.com/searxng/searxng/issues/new
      docs_url: https://docs.searxng.org/
      public_instances: https://searx.space
      wiki_url: https://github.com/searxng/searxng/wiki
      issue_url: https://github.com/searxng/searxng/issues
    
    search:
      # Filter results. 0: None, 1: Moderate, 2: Strict
      safe_search: 0
      # Existing autocomplete backends: "dbpedia", "duckduckgo", "google", "yandex", "mwmbl",
      # "seznam", "startpage", "stract", "swisscows", "qwant", "wikipedia" - leave blank to turn it off
      # by default.
      autocomplete: "stract"
      # minimun characters to type before autocompleter starts
      autocomplete_min: 4
      # Default search language - leave blank to detect from browser information or
      # use codes from 'languages.py'
      default_lang: "fr"
      # Available languages
      # languages:
      #   - all
      #   - en
      #   - en-US
      #   - de
      #   - it-IT
      #   - fr
      #   - fr-BE
      # ban time in seconds after engine errors
      ban_time_on_fail: 5
      # max ban time in seconds after engine errors
      max_ban_time_on_fail: 120
      suspended_times:
        # Engine suspension time after error (in seconds; set to 0 to disable)
        # For error "Access denied" and "HTTP error [402, 403]"
        SearxEngineAccessDenied: 86400
        # For error "CAPTCHA"
        SearxEngineCaptcha: 86400
        # For error "Too many request" and "HTTP error 429"
        SearxEngineTooManyRequests: 3600
        # Cloudflare CAPTCHA
        cf_SearxEngineCaptcha: 1296000
        cf_SearxEngineAccessDenied: 86400
        # ReCAPTCHA
        recaptcha_SearxEngineCaptcha: 604800
    
      # remove format to deny access, use lower case.
      # formats: [html, csv, json, rss]
      formats:
        - html
    
    server:
      # Is overwritten by ${SEARXNG_PORT} and ${SEARXNG_BIND_ADDRESS}
      port: 8888
      bind_address: "127.0.0.1"
      # public URL of the instance, to ensure correct inbound links. Is overwritten
      # by ${SEARXNG_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}
      limiter: false
      # enable features designed only for public instances.
      # Is overwritten by ${SEARXNG_PUBLIC_INSTANCE}
      public_instance: false
    
      # If your instance owns a /etc/searxng/settings.yml file, then set the following
      # values there.
    
      secret_key: "e21e1b0bf4b276ec06bb4be8bca0b717d79919ca8e96350686c32a3785bc83d9"  # Is overwritten by ${SEARXNG_SECRET}
      # Proxying image results through searx
      image_proxy: false
      # 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
      method: "POST"
      default_http_headers:
        X-Content-Type-Options: nosniff
        X-XSS-Protection: 1; mode=block
        X-Download-Options: noopen
        X-Robots-Tag: noindex, nofollow
        Referrer-Policy: no-referrer
    
    redis:
      # URL to connect redis database. Is overwritten by ${SEARXNG_REDIS_URL}.
      # https://docs.searxng.org/admin/settings/settings_redis.html#settings-redis
      url: false
    
    ui:
      # Custom static path - leave it blank if you didn't change
      static_path: ""
      # Is overwritten by ${SEARXNG_STATIC_USE_HASH}.
      static_use_hash: false
      # Custom templates path - leave it blank if you didn't change
      templates_path: ""
      # query_in_title: When true, the result page's titles contains the query
      # it decreases the privacy, since the browser can records the page titles.
      query_in_title: false
      # infinite_scroll: When true, automatically loads the next page when scrolling to bottom of the current page.
      infinite_scroll: false
      # ui theme
      default_theme: simple
      # center the results ?
      center_alignment: false
      # URL prefix of the internet archive, don't forget trailing slash (if needed).
      # cache_url: "https://webcache.googleusercontent.com/search?q=cache:"
      # Default interface locale - leave blank to detect from browser information or
      # use codes from the 'locales' config section
      default_locale: ""
      # Open result links in a new tab by default
      # results_on_new_tab: false
      theme_args:
        # style of simple theme: auto, light, dark
        simple_style: auto
      # Perform search immediately if a category selected.
      # Disable to select multiple categories at once and start the search manually.
      search_on_category_select: true
      # Hotkeys: default or vim
      hotkeys: default
    
    # 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:
    #   lock:
    #     - language
    #     - autocomplete
    #     - method
    #     - 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:
      # default timeout in seconds, can be override by engine
      request_timeout: 3.0
      # the maximum timeout in seconds
      # max_request_timeout: 10.0
      # suffix of searx_useragent, could contain information like an email address
      # to the administrator
      useragent_suffix: ""
      # The maximum number of concurrent connections that may be established.
      pool_connections: 100
      # Allow the connection pool to maintain keep-alive connections below this
      # point.
      pool_maxsize: 20
      # See https://www.python-httpx.org/http2/
      enable_http2: true
      # uncomment below section if you want to use a custom server certificate
      # see https://www.python-httpx.org/advanced/#changing-the-verification-defaults
      # and https://www.python-httpx.org/compatibility/#ssl-configuration
      #  verify: ~/.mitmproxy/mitmproxy-ca-cert.cer
      #
      # uncomment below section if you want to use a proxyq see: SOCKS proxies
      #   https://2.python-requests.org/en/latest/user/advanced/#proxies
      # are also supported: see
      #   https://2.python-requests.org/en/latest/user/advanced/#socks
      #
      #  proxies:
      #    all://:
      #      - http://proxy1:8080
      #      - http://proxy2:8080
      #
      #  using_tor_proxy: true
      #
      # Extra seconds to add in order to account for the time taken by the proxy
      #
      #  extra_proxy_timeout: 10
      #
      # uncomment below section only if you have more than one network interface
      # which can be the source of outgoing search requests
      #
      #  source_ips:
      #    - 1.1.1.1
      #    - 1.1.1.2
      #    - fe80::/126
    
    # External plugin configuration, for more details see
    #   https://docs.searxng.org/dev/plugins.html
    #
    # plugins:
    #   - plugin1
    #   - plugin2
    #   - ...
    
    # Comment or un-comment plugin to activate / deactivate by default.
    #
      enabled_plugins:
    #   # these plugins are enabled if nothing is configured ..
      - 'Cookies Cleaner'
      - 'Hash plugin'
    #   - 'Search on category select'
    #   - 'Self Information'
    #   - 'Tracker URL remover'
    #   - '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'
    #   # Read the docs before activate: auto-detection of the language could be
    #   # detrimental to users expectations / users can activate the plugin in the
    #   # preferences if they want.
    #   - 'Autodetect search language'
    
    # Configuration of the "Hostnames plugin":
    #
    # hostnames:
    #   replace:
    #     '(.*\.)?youtube\.com$': 'invidious.example.com'
    #     '(.*\.)?youtu\.be$': 'invidious.example.com'
    #     '(.*\.)?reddit\.com$': 'teddit.example.com'
    #     '(.*\.)?redd\.it$': 'teddit.example.com'
    #     '(www\.)?twitter\.com$': 'nitter.example.com'
    #   remove:
    #     - '(.*\.)?facebook.com$'
    #   low_priority:
    #     - '(.*\.)?google(\..*)?$'
    #   high_priority:
    #     - '(.*\.)?wikipedia.org$'
    #
    # Alternatively you can use external files for configuring the "Hostnames plugin":
    #
    # hostnames:
    #  replace: 'rewrite-hosts.yml'
    #
    # Content of 'rewrite-hosts.yml' (place the file in the same directory as 'settings.yml'):
    # '(.*\.)?youtube\.com$': 'invidious.example.com'
    # '(.*\.)?youtu\.be$': 'invidious.example.com'
    #
    
    checker:
      # disable checker when in debug mode
      off_when_debug: true
    
      # use "scheduling: false" to disable scheduling
      # scheduling: interval or int
    
      # to activate the scheduler:
      # * uncomment "scheduling" section
      # * add "cache2 = name=searxngcache,items=2000,blocks=2000,blocksize=4096,bitmap=1"
      #   to your uwsgi.ini
    
      # scheduling:
      #   start_after: [300, 1800]  # delay to start the first run of the checker
      #   every: [86400, 90000]     # how often the checker runs
    
      # additional tests: only for the YAML anchors (see the engines section)
      #
      additional_tests:
        rosebud: &test_rosebud
          matrix:
            query: rosebud
            lang: en
          result_container:
            - not_empty
            - ['one_title_contains', 'citizen kane']
          test:
            - unique_results
    
        android: &test_android
          matrix:
            query: ['android']
            lang: ['en', 'de', 'fr', 'zh-CN']
          result_container:
            - not_empty
            - ['one_title_contains', 'google']
          test:
            - unique_results
    
      # tests: only for the YAML anchors (see the engines section)
      tests:
        infobox: &tests_infobox
          infobox:
            matrix:
              query: ["linux", "new york", "bbc"]
            result_container:
              - has_infobox
    
    categories_as_tabs:
      general:
      images:
      videos:
      news:
      map:
      music:
      it:
      science:
      files:
      social media:
    
    engines:
      - name: 9gag
        engine: 9gag
        shortcut: 9g
        disabled: true
    
      - name: alpine linux packages
        engine: alpinelinux
        disabled: true
        shortcut: alp
    
      - name: annas archive
        engine: annas_archive
        disabled: true
        shortcut: aa
    
      # - name: annas articles
      #   engine: annas_archive
      #   shortcut: aaa
      #   # https://docs.searxng.org/dev/engines/online/annas_archive.html
      #   aa_content: 'magazine' # book_fiction, book_unknown, book_nonfiction, book_comic
      #   aa_ext: 'pdf'  # pdf, epub, ..
      #   aa_sort: oldest'  # newest, oldest, largest, smallest
    
      - name: apk mirror
        engine: apkmirror
        timeout: 4.0
        shortcut: apkm
        disabled: false
    
      - name: apple app store
        engine: apple_app_store
        shortcut: aps
        disabled: true
    
      # Requires Tor
      - name: ahmia
        engine: ahmia
        categories: onions
        enable_http: true
        shortcut: ah
    
      - name: anaconda
        engine: xpath
        paging: true
        first_page_num: 0
        search_url: https://anaconda.org/search?q={query}&page={pageno}
        results_xpath: //tbody/tr
        url_xpath: ./td/h5/a[last()]/@href
        title_xpath: ./td/h5
        content_xpath: ./td[h5]/text()
        categories: it
        timeout: 6.0
        shortcut: conda
        disabled: false
    
      - name: arch linux wiki
        engine: archlinux
        shortcut: al
    
      - name: artic
        engine: artic
        shortcut: arc
        timeout: 4.0
    
      - name: arxiv
        engine: arxiv
        shortcut: arx
        timeout: 4.0
    
      - name: ask
        engine: ask
        shortcut: ask
        disabled: true
    
      # tmp suspended:  dh key too small
      # - name: base
      #   engine: base
      #   shortcut: bs
    
      - name: bandcamp
        engine: bandcamp
        shortcut: bc
        categories: music
    
      - name: wikipedia
        engine: wikipedia
        shortcut: wp
        # add "list" to the array to get results in the results list
        display_type: ["infobox"]
        base_url: 'https://{language}.wikipedia.org/'
        categories: [general]
    
      - name: bilibili
        engine: bilibili
        shortcut: bil
        disabled: true
    
      - name: bing
        engine: bing
        shortcut: bi
        disabled: false
    
      - name: bing images
        engine: bing_images
        shortcut: bii
    
      - name: bing news
        engine: bing_news
        shortcut: bin
    
      - name: bing videos
        engine: bing_videos
        shortcut: biv
    
      - name: bitbucket
        engine: xpath
        paging: true
        search_url: https://bitbucket.org/repo/all/{pageno}?name={query}
        url_xpath: //article[@class="repo-summary"]//a[@class="repo-link"]/@href
        title_xpath: //article[@class="repo-summary"]//a[@class="repo-link"]
        content_xpath: //article[@class="repo-summary"]/p
        categories: [it, repos]
        timeout: 4.0
        disabled: false
        shortcut: bb
        about:
          website: https://bitbucket.org/
          wikidata_id: Q2493781
          official_api_documentation: https://developer.atlassian.com/bitbucket
          use_official_api: false
          require_api_key: false
          results: HTML
    
      - name: bpb
        engine: bpb
        shortcut: bpb
        disabled: true
    
      - name: btdigg
        engine: btdigg
        shortcut: bt
        disabled: true
    
      - name: openverse
        engine: openverse
        categories: images
        shortcut: opv
    
      - name: media.ccc.de
        engine: ccc_media
        shortcut: c3tv
        # We don't set language: de here because media.ccc.de is not just
        # for a German audience. It contains many English videos and many
        # German videos have English subtitles.
        disabled: true
    
      - name: chefkoch
        engine: chefkoch
        shortcut: chef
        # to show premium or plus results too:
        # skip_premium: false
    
      # - name: core.ac.uk
      #   engine: core
      #   categories: science
      #   shortcut: cor
      #   # get your API key from: https://core.ac.uk/api-keys/register/
      #   api_key: 'unset'
    
      - name: cppreference
        engine: cppreference
        shortcut: cpp
        paging: false
        disabled: true
    
      - name: crossref
        engine: crossref
        shortcut: cr
        timeout: 30
        disabled: false
    
      - name: crowdview
        engine: json_engine
        shortcut: cv
        categories: general
        paging: false
        search_url: https://crowdview-next-js.onrender.com/api/search-v3?query={query}
        results_query: results
        url_query: link
        title_query: title
        content_query: snippet
        disabled: false
        about:
          website: https://crowdview.ai/
    
      - name: yep
        engine: yep
        shortcut: yep
        categories: general
        search_type: web
        timeout: 5
        disabled: false
    
      - name: yep images
        engine: yep
        shortcut: yepi
        categories: images
        search_type: images
        disabled: false
    
      - name: yep news
        engine: yep
        shortcut: yepn
        categories: news
        search_type: news
        disabled: false
    
      - name: curlie
        engine: xpath
        shortcut: cl
        categories: general
        disabled: false
        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
        shortcut: cc
    
      - name: deezer
        engine: deezer
        shortcut: dz
        disabled: true
    
      - name: destatis
        engine: destatis
        shortcut: destat
        disabled: false
    
      - name: deviantart
        engine: deviantart
        shortcut: da
        timeout: 3.0
    
      - name: ddg definitions
        engine: duckduckgo_definitions
        shortcut: ddd
        weight: 2
        disabled: true
    
    
      # cloudflare protected
      # - name: digbt
      #   engine: digbt
      #   shortcut: dbt
      #   timeout: 6.0
      #   disabled: true
    
      - name: docker hub
        engine: docker_hub
        shortcut: dh
        categories: [it, packages]
    
      - name: encyclosearch
        engine: json_engine
        shortcut: es
        categories: general
        paging: true
        search_url: https://encyclosearch.org/encyclosphere/search?q={query}&page={pageno}&resultsPerPage=15
        results_query: Results
        url_query: SourceURL
        title_query: Title
        content_query: Description
        disabled: false
        about:
          website: https://encyclosearch.org
          official_api_documentation: https://encyclosearch.org/docs/#/rest-api
          use_official_api: true
          require_api_key: false
          results: JSON
    
      - name: erowid
        engine: xpath
        paging: true
        first_page_num: 0
        page_size: 30
        search_url: https://www.erowid.org/search.php?q={query}&s={pageno}
        url_xpath: //dl[@class="results-list"]/dt[@class="result-title"]/a/@href
        title_xpath: //dl[@class="results-list"]/dt[@class="result-title"]/a/text()
        content_xpath: //dl[@class="results-list"]/dd[@class="result-details"]
        categories: []
        shortcut: ew
        disabled: true
        about:
          website: https://www.erowid.org/
          wikidata_id: Q1430691
          official_api_documentation:
          use_official_api: false
          require_api_key: false
          results: HTML
    
      # - name: elasticsearch
      #   shortcut: es
      #   engine: elasticsearch
      #   base_url: http://localhost:9200
      #   username: elastic
      #   password: changeme
      #   index: my-index
      #   # 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
      #   disabled: true
    
      - name: wikidata
        engine: wikidata
        shortcut: wd
        timeout: 3.0
        weight: 2
    
    
      - name: apple maps
        engine: apple_maps
        shortcut: apm
        disabled: true
        timeout: 5.0
    
      - name: emojipedia
        engine: emojipedia
        timeout: 4.0
        shortcut: em
        disabled: true
    
      - name: tineye
        engine: tineye
        shortcut: tin
        timeout: 9.0
        disabled: false
    
      - name: etymonline
        engine: xpath
        paging: true
        search_url: https://etymonline.com/search?page={pageno}&q={query}
        url_xpath: //a[contains(@class, "word__name--")]/@href
        title_xpath: //a[contains(@class, "word__name--")]
        content_xpath: //section[contains(@class, "word__defination")]
        first_page_num: 1
        shortcut: et
        categories: [dictionaries]
        about:
          website: https://www.etymonline.com/
          wikidata_id: Q1188617
          official_api_documentation:
          use_official_api: false
          require_api_key: false
          results: HTML
    
      # - name: ebay
      #   engine: ebay
      #   shortcut: eb
      #   base_url: 'https://www.ebay.com'
      #   disabled: true
      #   timeout: 5
    
      - name: 1x
        engine: www1x
        shortcut: 1x
        timeout: 3.0
        disabled: false
    
      - name: fdroid
        engine: fdroid
        shortcut: fd
        disabled: false
    
      - name: findthatmeme
        engine: findthatmeme
        shortcut: ftm
        disabled: false
    
      - name: flickr
        categories: images
        shortcut: fl
        # You can use the engine using the official stable API, but you need an API
        # key, see: https://www.flickr.com/services/apps/create/
        # engine: flickr
        # api_key: 'apikey' # required!
        # Or you can use the html non-stable engine, activated by default
        engine: flickr_noapi
    
      - name: free software directory
        engine: mediawiki
        shortcut: fsd
        categories: [it, software wikis]
        base_url: https://directory.fsf.org/
        search_type: title
        timeout: 5.0
        disabled: false
        about:
          website: https://directory.fsf.org/
          wikidata_id: Q2470288
    
      # - name: freesound
      #   engine: freesound
      #   shortcut: fnd
      #   disabled: true
      #   timeout: 15.0
      # API key required, see: https://freesound.org/docs/api/overview.html
      #   api_key: MyAPIkey
    
      - name: frinkiac
        engine: frinkiac
        shortcut: frk
        disabled: true
    
      - name: fyyd
        engine: fyyd
        shortcut: fy
        timeout: 8.0
        disabled: false
    
      - name: geizhals
        engine: geizhals
        shortcut: geiz
        disabled: true
    
      - name: genius
        engine: genius
        shortcut: gen
    
      - name: gentoo
        engine: mediawiki
        shortcut: ge
        categories: ["it", "software wikis"]
        base_url: "https://wiki.gentoo.org/"
        api_path: "api.php"
        search_type: text
        timeout: 10
    
      - name: gitlab
        engine: json_engine
        paging: true
        search_url: https://gitlab.com/api/v4/projects?search={query}&page={pageno}
        url_query: web_url
        title_query: name_with_namespace
        content_query: description
        page_size: 20
        categories: [it, repos]
        shortcut: gl
        timeout: 10.0
        disabled: false
        about:
          website: https://about.gitlab.com/
          wikidata_id: Q16639197
          official_api_documentation: https://docs.gitlab.com/ee/api/
          use_official_api: false
          require_api_key: false
          results: JSON
    
      - name: github
        engine: github
        shortcut: gh
    
      - name: codeberg
        # https://docs.searxng.org/dev/engines/online/gitea.html
        engine: gitea
        base_url: https://codeberg.org
        shortcut: cb
        disabled: false
    
      - name: gitea.com
        engine: gitea
        base_url: https://gitea.com
        shortcut: gitea
        disabled: false
    
      - name: goodreads
        engine: goodreads
        shortcut: good
        timeout: 4.0
        disabled: true
    
      - name: google
        engine: google
        shortcut: go
        # additional_tests:
    
    
      - name: google images
        engine: google_images
        shortcut: goi
        # additional_tests:
    
        #   dali:
        #     matrix:
        #       query: ['Dali Christ']
        #       lang: ['en', 'de', 'fr', 'zh-CN']
        #     result_container:
        #       - ['one_title_contains', 'Salvador']
    
      - name: google news
        engine: google_news
        shortcut: gon
        # additional_tests:
    
    
      - name: google videos
        engine: google_videos
        shortcut: gov
        # additional_tests:
    
    
      - name: google scholar
        engine: google_scholar
        shortcut: gos
    
      - name: google play apps
        engine: google_play
        categories: [files, apps]
        shortcut: gpa
        play_categ: apps
        disabled: true
    
      - name: google play movies
        engine: google_play
        categories: videos
        shortcut: gpm
        play_categ: movies
        disabled: true
    
      - name: material icons
        engine: material_icons
        categories: images
        shortcut: mi
        disabled: false
    
      - name: gpodder
        engine: json_engine
        shortcut: gpod
        timeout: 4.0
        paging: false
        search_url: https://gpodder.net/search.json?q={query}
        url_query: url
        title_query: title
        content_query: description
        page_size: 19
        categories: music
        disabled: false
        about:
          website: https://gpodder.net
          wikidata_id: Q3093354
          official_api_documentation: https://gpoddernet.readthedocs.io/en/latest/api/
          use_official_api: false
          requires_api_key: false
          results: JSON
    
      - name: habrahabr
        engine: xpath
        paging: true
        search_url: https://habr.com/en/search/page{pageno}/?q={query}
        results_xpath: //article[contains(@class, "tm-articles-list__item")]
        url_xpath: .//a[@class="tm-title__link"]/@href
        title_xpath: .//a[@class="tm-title__link"]
        content_xpath: .//div[contains(@class, "article-formatted-body")]
        categories: it
        timeout: 4.0
        disabled: false
        shortcut: habr
        about:
          website: https://habr.com/
          wikidata_id: Q4494434
          official_api_documentation: https://habr.com/en/docs/help/api/
          use_official_api: false
          require_api_key: false
          results: HTML
    
      - name: hoogle
        engine: xpath
        paging: true
        search_url: https://hoogle.haskell.org/?hoogle={query}&start={pageno}
        results_xpath: '//div[@class="result"]'
        title_xpath: './/div[@class="ans"]//a'
        url_xpath: './/div[@class="ans"]//a/@href'
        content_xpath: './/div[@class="from"]'
        page_size: 20
        categories: [it, packages]
        shortcut: ho
        about:
          website: https://hoogle.haskell.org/
          wikidata_id: Q34010
          official_api_documentation: https://hackage.haskell.org/api
          use_official_api: false
          require_api_key: false
          results: JSON
    
      - name: imdb
        engine: imdb
        shortcut: imdb
        timeout: 6.0
        disabled: false
    
      - name: imgur
        engine: imgur
        shortcut: img
        disabled: true
    
      - name: ina
        engine: ina
        shortcut: in
        timeout: 6.0
        disabled: false
    
      - name: invidious
        engine: invidious
        # 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
        shortcut: iv
        timeout: 3.0
        disabled: true
    
      - name: jisho
        engine: jisho
        shortcut: js
        timeout: 3.0
        disabled: true
    
      - name: kickass
        engine: kickass
        base_url:
          - https://kickasstorrents.to
          - https://kickasstorrents.cr
          - https://kickasstorrent.cr
          - https://kickass.sx
          - https://kat.am
        shortcut: kc
        timeout: 4.0
        disabled: false
    
      - name: lemmy communities
        engine: lemmy
        lemmy_type: Communities
        shortcut: leco
    
      - name: lemmy users
        engine: lemmy
        network: lemmy communities
        lemmy_type: Users
        shortcut: leus
    
      - name: lemmy posts
        engine: lemmy
        network: lemmy communities
        lemmy_type: Posts
        shortcut: lepo
    
      - name: lemmy comments
        engine: lemmy
        network: lemmy communities
        lemmy_type: Comments
        shortcut: lecom
    
      - name: library genesis
        engine: xpath
        # search_url: https://libgen.is/search.php?req={query}
        search_url: https://libgen.rs/search.php?req={query}
        url_xpath: //a[contains(@href,"book/index.php?md5")]/@href
        title_xpath: //a[contains(@href,"book/")]/text()[1]
        content_xpath: //td/a[1][contains(@href,"=author")]/text()
        categories: files
        timeout: 7.0
        disabled: false
        shortcut: lg
        about:
          website: https://libgen.fun/
          wikidata_id: Q22017206
          official_api_documentation:
          use_official_api: false
          require_api_key: false
          results: HTML
    
      - name: z-library
        engine: zlibrary
        shortcut: zlib
        categories: files
        timeout: 7.0
    
      - name: library of congress
        engine: loc
        shortcut: loc
        categories: images
    
      - name: libretranslate
        engine: libretranslate
        # https://github.com/LibreTranslate/LibreTranslate?tab=readme-ov-file#mirrors
        base_url:
          - https://translate.terraprint.co
          - https://trans.zillyhuhn.com
        # api_key: abc123
        shortcut: lt
        disabled: true
    
      - name: lingva
        engine: lingva
        shortcut: lv
        # set lingva instance in url, by default it will use the official instance
        # url: https://lingva.thedaviddelta.com
    
      - name: lobste.rs
        engine: xpath
        search_url: https://lobste.rs/search?q={query}&what=stories&order=relevance
        results_xpath: //li[contains(@class, "story")]
        url_xpath: .//a[@class="u-url"]/@href
        title_xpath: .//a[@class="u-url"]
        content_xpath: .//a[@class="domain"]
        categories: it
        shortcut: lo
        timeout: 5.0
        disabled: false
        about:
          website: https://lobste.rs/
          wikidata_id: Q60762874
          official_api_documentation:
          use_official_api: false
          require_api_key: false
          results: HTML
    
      - name: mastodon users
        engine: mastodon
        mastodon_type: accounts
        base_url: https://mastodon.social
        shortcut: mau
    
      - name: mastodon hashtags
        engine: mastodon
        mastodon_type: hashtags
        base_url: https://mastodon.social
        shortcut: mah
    
      # - name: matrixrooms
      #   engine: mrs
      #   # https://docs.searxng.org/dev/engines/online/mrs.html
      #   # base_url: https://mrs-api-host
      #   shortcut: mtrx
      #   disabled: true
    
      - name: mdn
        shortcut: mdn
        engine: json_engine
        categories: [it]
        paging: true
        search_url: https://developer.mozilla.org/api/v1/search?q={query}&page={pageno}
        results_query: documents
        url_query: mdn_url
        url_prefix: https://developer.mozilla.org
        title_query: title
        content_query: summary
        about:
          website: https://developer.mozilla.org
          wikidata_id: Q3273508
          official_api_documentation: null
          use_official_api: false
          require_api_key: false
          results: JSON
    
      - name: metacpan
        engine: metacpan
        shortcut: cpan
        disabled: true
        number_of_results: 20
    
      # - name: meilisearch
      #   engine: meilisearch
      #   shortcut: mes
      #   enable_http: true
      #   base_url: http://localhost:7700
      #   index: my-index
    
      - name: mixcloud
        engine: mixcloud
        shortcut: mc
    
      # MongoDB engine
      # Required dependency: pymongo
      # - name: mymongo
      #   engine: mongodb
      #   shortcut: md
      #   exact_match_only: false
      #   host: '127.0.0.1'
      #   port: 27017
      #   enable_http: true
      #   results_per_page: 20
      #   database: 'business'
      #   collection: 'reviews'  # name of the db collection
      #   key: 'name'  # key in the collection to search for
    
      - name: mozhi
        engine: mozhi
        base_url:
          - https://mozhi.aryak.me
          - https://translate.bus-hit.me
          - https://nyc1.mz.ggtyler.dev
        # mozhi_engine: google - see https://mozhi.aryak.me for supported engines
        timeout: 4.0
        shortcut: mz
        disabled: true
    
      - name: mwmbl
        engine: mwmbl
        # api_url: https://api.mwmbl.org
        shortcut: mwm
        disabled: true
    
      - name: npm
        engine: npm
        shortcut: npm
        timeout: 5.0
        disabled: false
    
      - name: nyaa
        engine: nyaa
        shortcut: nt
        disabled: true
    
      - name: mankier
        engine: json_engine
        search_url: https://www.mankier.com/api/v2/mans/?q={query}
        results_query: results
        url_query: url
        title_query: name
        content_query: description
        categories: it
        shortcut: man
        about:
          website: https://www.mankier.com/
          official_api_documentation: https://www.mankier.com/api
          use_official_api: true
          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
    
      - name: odysee
        engine: odysee
        shortcut: od
        disabled: true
    
      - name: openairedatasets
        engine: json_engine
        paging: true
        search_url: https://api.openaire.eu/search/datasets?format=json&page={pageno}&size=10&title={query}
        results_query: response/results/result
        url_query: metadata/oaf:entity/oaf:result/children/instance/webresource/url/$
        title_query: metadata/oaf:entity/oaf:result/title/$
        content_query: metadata/oaf:entity/oaf:result/description/$
        content_html_to_text: true
        categories: "science"
        shortcut: oad
        timeout: 5.0
        about:
          website: https://www.openaire.eu/
          wikidata_id: Q25106053
          official_api_documentation: https://api.openaire.eu/
          use_official_api: false
          require_api_key: false
          results: JSON
    
      - name: openairepublications
        engine: json_engine
        paging: true
        search_url: https://api.openaire.eu/search/publications?format=json&page={pageno}&size=10&title={query}
        results_query: response/results/result
        url_query: metadata/oaf:entity/oaf:result/children/instance/webresource/url/$
        title_query: metadata/oaf:entity/oaf:result/title/$
        content_query: metadata/oaf:entity/oaf:result/description/$
        content_html_to_text: true
        categories: science
        shortcut: oap
        timeout: 5.0
        about:
          website: https://www.openaire.eu/
          wikidata_id: Q25106053
          official_api_documentation: https://api.openaire.eu/
          use_official_api: false
          require_api_key: false
          results: JSON
    
      - name: openmeteo
        engine: open_meteo
        shortcut: om
        disabled: false
    
      # - name: opensemanticsearch
      #   engine: opensemantic
      #   shortcut: oss
      #   base_url: 'http://localhost:8983/solr/opensemanticsearch/'
    
      - name: openstreetmap
        engine: openstreetmap
        shortcut: osm
    
      - name: openrepos
        engine: xpath
        paging: true
        search_url: https://openrepos.net/search/node/{query}?page={pageno}
        url_xpath: //li[@class="search-result"]//h3[@class="title"]/a/@href
        title_xpath: //li[@class="search-result"]//h3[@class="title"]/a
        content_xpath: //li[@class="search-result"]//div[@class="search-snippet-info"]//p[@class="search-snippet"]
        categories: files
        timeout: 4.0
        disabled: true
        shortcut: or
        about:
          website: https://openrepos.net/
          wikidata_id:
          official_api_documentation:
          use_official_api: false
          require_api_key: false
          results: HTML
    
      - name: packagist
        engine: json_engine
        paging: true
        search_url: https://packagist.org/search.json?q={query}&page={pageno}
        results_query: results
        url_query: url
        title_query: name
        content_query: description
        categories: [it, packages]
        disabled: true
        timeout: 5.0
        shortcut: pack
        about:
          website: https://packagist.org
          wikidata_id: Q108311377
          official_api_documentation: https://packagist.org/apidoc
          use_official_api: true
          require_api_key: false
          results: JSON
    
      - name: pdbe
        engine: pdbe
        shortcut: pdb
        # Hide obsolete PDB entries.  Default is not to hide obsolete structures
        #  hide_obsolete: false
    
      - name: photon
        engine: photon
        shortcut: ph
    
      - name: pinterest
        engine: pinterest
        shortcut: pin
    
      - name: piped
        engine: piped
        shortcut: ppd
        categories: videos
        piped_filter: videos
        timeout: 3.0
    
        # URL to use as link and for embeds
        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
    
      - name: piped.music
        engine: piped
        network: piped
        shortcut: ppdm
        categories: music
        piped_filter: music_songs
        timeout: 3.0
    
      - name: piratebay
        engine: piratebay
        shortcut: tpb
        # You may need to change this URL to a proxy if piratebay is blocked in your
        # country
        url: https://thepiratebay.org/
        timeout: 3.0
    
      - name: pixiv
        shortcut: pv
        engine: pixiv
        disabled: true
        inactive: true
        pixiv_image_proxies:
          - https://pximg.example.org
          # A proxy is required to load the images. Hosting an image proxy server
          # for Pixiv:
          #    --> https://pixivfe.pages.dev/hosting-image-proxy-server/
          # Proxies from public instances.  Ask the public instances owners if they
          # agree to receive traffic from SearXNG!
          #    --> https://codeberg.org/VnPower/PixivFE#instances
          #    --> https://github.com/searxng/searxng/pull/3192#issuecomment-1941095047
          # image proxy of https://pixiv.cat
          # - https://i.pixiv.cat
          # image proxy of https://www.pixiv.pics
          # - https://pximg.cocomi.eu.org
          # image proxy of https://pixivfe.exozy.me
          # - https://pximg.exozy.me
          # image proxy of https://pixivfe.ducks.party
          # - https://pixiv.ducks.party
          # image proxy of https://pixiv.perennialte.ch
          # - https://pximg.perennialte.ch
    
      - name: podcastindex
        engine: podcastindex
        shortcut: podcast
    
      # Required dependency: psychopg2
      #  - name: postgresql
      #    engine: postgresql
      #    database: postgres
      #    username: postgres
      #    password: postgres
      #    limit: 10
      #    query_str: 'SELECT * from my_table WHERE my_column = %(query)s'
      #    shortcut : psql
    
      - name: presearch
        engine: presearch
        search_type: search
        categories: [general, web]
        shortcut: ps
        timeout: 4.0
        disabled: false
    
      - name: presearch images
        engine: presearch
        network: presearch
        search_type: images
        categories: [images, web]
        timeout: 4.0
        shortcut: psimg
        disabled: false
    
      - name: presearch videos
        engine: presearch
        network: presearch
        search_type: videos
        categories: [general, web]
        timeout: 4.0
        shortcut: psvid
        disabled: false
    
      - name: presearch news
        engine: presearch
        network: presearch
        search_type: news
        categories: [news, web]
        timeout: 4.0
        shortcut: psnews
        disabled: false
    
      - name: pub.dev
        engine: xpath
        shortcut: pd
        search_url: https://pub.dev/packages?q={query}&page={pageno}
        paging: true
        results_xpath: //div[contains(@class,"packages-item")]
        url_xpath: ./div/h3/a/@href
        title_xpath: ./div/h3/a
        content_xpath: ./div/div/div[contains(@class,"packages-description")]/span
        categories: [packages, it]
        timeout: 3.0
        disabled: true
        first_page_num: 1
        about:
          website: https://pub.dev/
          official_api_documentation: https://pub.dev/help/api
          use_official_api: false
          require_api_key: false
          results: HTML
    
      - name: pubmed
        engine: pubmed
        shortcut: pub
        timeout: 3.0
    
      - name: pypi
        shortcut: pypi
        engine: pypi
    
      
    
      # - name: library
      #   engine: recoll
      #   shortcut: lib
      #   base_url: 'https://recoll.example.org/'
      #   search_dir: ''
      #   mount_prefix: /export
      #   dl_prefix: 'https://download.example.org'
      #   timeout: 30.0
      #   categories: files
      #   disabled: true
    
      # - name: recoll library reference
      #   engine: recoll
      #   base_url: 'https://recoll.example.org/'
      #   search_dir: reference
      #   mount_prefix: /export
      #   dl_prefix: 'https://download.example.org'
      #   shortcut: libr
      #   timeout: 30.0
      #   categories: files
      #   disabled: true
    
      - name: radio browser
        engine: radio_browser
        shortcut: rb
    
      - name: reddit
        engine: reddit
        shortcut: re
        page_size: 25
        disabled: false
    
      - name: right dao
        engine: xpath
        paging: true
        page_size: 12
        search_url: https://rightdao.com/search?q={query}&start={pageno}
        results_xpath: //div[contains(@class, "description")]
        url_xpath: ../div[contains(@class, "title")]/a/@href
        title_xpath: ../div[contains(@class, "title")]
        content_xpath: .
        categories: general
        shortcut: rd
        disabled: true
        about:
          website: https://rightdao.com/
          use_official_api: false
          require_api_key: false
          results: HTML
    
      - name: rottentomatoes
        engine: rottentomatoes
        shortcut: rt
        disabled: true
    
      # Required dependency: redis
      # - name: myredis
      #   shortcut : rds
      #   engine: redis_server
      #   exact_match_only: false
      #   host: '127.0.0.1'
      #   port: 6379
      #   enable_http: true
      #   password: ''
      #   db: 0
    
      # tmp suspended: bad certificate
      #  - name: scanr structures
      #    shortcut: scs
      #    engine: scanr_structures
      #    disabled: true
    
      - name: searchmysite
        engine: xpath
        shortcut: sms
        categories: general
        paging: true
        search_url: https://searchmysite.net/search/?q={query}&page={pageno}
        results_xpath: //div[contains(@class,'search-result')]
        url_xpath: .//a[contains(@class,'result-link')]/@href
        title_xpath: .//span[contains(@class,'result-title-txt')]/text()
        content_xpath: ./p[@id='result-hightlight']
        disabled: false
        about:
          website: https://searchmysite.net
    
      - name: sepiasearch
        engine: sepiasearch
        shortcut: sep
    
      - name: soundcloud
        engine: soundcloud
        shortcut: sc
    
      - name: stackoverflow
        engine: stackexchange
        shortcut: st
        api_site: 'stackoverflow'
        categories: [it, q&a]
    
      - name: askubuntu
        engine: stackexchange
        shortcut: ubuntu
        api_site: 'askubuntu'
        categories: [it, q&a]
    
      - name: internetarchivescholar
        engine: internet_archive_scholar
        shortcut: ias
        timeout: 15.0
    
      - name: superuser
        engine: stackexchange
        shortcut: su
        api_site: 'superuser'
        categories: [it, q&a]
    
      - name: discuss.python
        engine: discourse
        shortcut: dpy
        base_url: 'https://discuss.python.org'
        categories: [it, q&a]
        disabled: false
    
      - name: caddy.community
        engine: discourse
        shortcut: caddy
        base_url: 'https://caddy.community'
        categories: [it, q&a]
        disabled: true
    
      - name: pi-hole.community
        engine: discourse
        shortcut: pi
        categories: [it, q&a]
        base_url: 'https://discourse.pi-hole.net'
        disabled: false
    
      - name: framalibre
        engine: framalibre
        shortcut: frl
        disabled: false
    
      - name: searchcode code
        engine: searchcode_code
        shortcut: scc
        disabled: true
    
      # - name: searx
      #   engine: searx_engine
      #   shortcut: se
      #   instance_urls :
      #       - http://127.0.0.1:8888/
      #       - ...
      #   disabled: true
    
      - name: semantic scholar
        engine: semantic_scholar
        disabled: false
        shortcut: se
    
      # Spotify needs API credentials
      # - name: spotify
      #   engine: spotify
      #   shortcut: stf
      #   api_client_id: *******
      #   api_client_secret: *******
    
      # - name: solr
      #   engine: solr
      #   shortcut: slr
      #   base_url: http://localhost:8983
      #   collection: collection_name
      #   sort: '' # sorting: asc or desc
      #   field_list: '' # comma separated list of field names to display on the UI
      #   default_fields: '' # default field to query
      #   query_fields: '' # query fields
      #   enable_http: true
    
      # - name: springer nature
      #   engine: springer
      #   # get your API key from: https://dev.springernature.com/signup
      #   # working API key, for test & debug: "a69685087d07eca9f13db62f65b8f601"
      #   api_key: 'unset'
      #   shortcut: springer
      #   timeout: 15.0
    
      - name: startpage
        engine: startpage
        shortcut: sp
        timeout: 6.0
        disabled: false
        additional_tests:
          rosebud: *test_rosebud
    
      - name: tokyotoshokan
        engine: tokyotoshokan
        shortcut: tt
        timeout: 6.0
        disabled: true
    
      - name: solidtorrents
        engine: solidtorrents
        shortcut: solid
        timeout: 4.0
        base_url:
          
          - https://solidtorrents.to
          - https://bitsearch.to
    
      # 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"
      #
      # - name: demo
      #   engine: sqlite
      #   shortcut: demo
      #   categories: general
      #   result_template: default.html
      #   database: searx/data/filmliste-v2.db
      #   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
      #       FROM film
      #      WHERE title LIKE :wildcard OR description LIKE :wildcard
      #      ORDER BY duration DESC
    
      - name: tagesschau
        engine: tagesschau
        # when set to false, display URLs from Tagesschau, and not the actual source
        # (e.g. NDR, WDR, SWR, HR, ...)
        use_source_url: true
        shortcut: ts
        disabled: true
    
      - name: tmdb
        engine: xpath
        paging: true
        categories: movies
        search_url: https://www.themoviedb.org/search?page={pageno}&query={query}
        results_xpath: //div[contains(@class,"movie") or contains(@class,"tv")]//div[contains(@class,"card")]
        url_xpath: .//div[contains(@class,"poster")]/a/@href
        thumbnail_xpath: .//img/@src
        title_xpath: .//div[contains(@class,"title")]//h2
        content_xpath: .//div[contains(@class,"overview")]
        shortcut: tm
        disabled: true
    
      # Requires Tor
      - name: torch
        engine: xpath
        paging: true
        search_url:
          http://xmh57jrknzkhv6y3ls3ubitzfqnkrwxhopf5aygthi7d6rplyvk3noyd.onion/cgi-bin/omega/omega?P={query}&DEFAULTOP=and
        results_xpath: //table//tr
        url_xpath: ./td[2]/a
        title_xpath: ./td[2]/b
        content_xpath: ./td[2]/small
        categories: onions
        enable_http: true
        shortcut: tch
    
      # torznab engine lets you query any torznab compatible indexer.  Using this
      # engine in combination with Jackett opens the possibility to query a lot of
      # public and private indexers directly from SearXNG. More details at:
      # https://docs.searxng.org/dev/engines/online/torznab.html
      #
      # - name: Torznab EZTV
      #   engine: torznab
      #   shortcut: eztv
      #   base_url: http://localhost:9117/api/v2.0/indexers/eztv/results/torznab
      #   enable_http: true  # if using localhost
      #   api_key: xxxxxxxxxxxxxxx
      #   show_magnet_links: true
      #   show_torrent_files: false
      #   # https://github.com/Jackett/Jackett/wiki/Jackett-Categories
      #   torznab_categories:  # optional
      #     - 2000
      #     - 5000
    
      - name: twitter
        shortcut: tw
        engine: twitter
        disabled: false
    
      # tmp suspended - too slow, too many errors
      #  - name: urbandictionary
      #    engine      : xpath
      #    search_url  : https://www.urbandictionary.com/define.php?term={query}
      #    url_xpath   : //*[@class="word"]/@href
      #    title_xpath : //*[@class="def-header"]
      #    content_xpath: //*[@class="meaning"]
      #    shortcut: ud
    
      - name: unsplash
        engine: unsplash
        shortcut: us
    
      - name: yandex
        engine: yandex
        categories: general
        search_type: web
        shortcut: yd
        disabled: false
        inactive: true
    
      - name: yandex images
        engine: yandex
        categories: images
        search_type: images
        shortcut: ydi
        disabled: false
        inactive: true
    
      - name: yandex music
        engine: yandex_music
        shortcut: ydm
        disabled: true
        # https://yandex.com/support/music/access.html
        inactive: true
    
      - name: yahoo
        engine: yahoo
        shortcut: yh
        disabled: false
    
      - name: yahoo news
        engine: yahoo_news
        shortcut: yhn
    
      - name: youtube
        shortcut: yt
        # You can use the engine using the official stable API, but you need an API
        # key See: https://console.developers.google.com/project
        #
        # engine: youtube_api
        # api_key: 'apikey' # required!
        #
        # Or you can use the html non-stable engine, activated by default
        engine: youtube_noapi
    
      - name: dailymotion
        engine: dailymotion
        shortcut: dm
    
      - name: vimeo
        engine: vimeo
        shortcut: vm
    
      - name: wiby
        engine: json_engine
        paging: true
        search_url: https://wiby.me/json/?q={query}&p={pageno}
        url_query: URL
        title_query: Title
        content_query: Snippet
        categories: [general, web]
        shortcut: wib
        disabled: false
        about:
          website: https://wiby.me/
    
      - name: alexandria
        engine: json_engine
        shortcut: alx
        categories: general
        paging: true
        search_url: https://api.alexandria.org/?a=1&q={query}&p={pageno}
        results_query: results
        title_query: title
        url_query: url
        content_query: snippet
        timeout: 1.5
        disabled: false
        about:
          website: https://alexandria.org/
          official_api_documentation: https://github.com/alexandria-org/alexandria-api/raw/master/README.md
          use_official_api: true
          require_api_key: false
          results: JSON
    
      - name: wikibooks
        engine: mediawiki
        weight: 0.5
        shortcut: wb
        categories: [general, wikimedia]
        base_url: "https://{language}.wikibooks.org/"
        search_type: text
        disabled: false
        about:
          website: https://www.wikibooks.org/
          wikidata_id: Q367
    
      - name: wikinews
        engine: mediawiki
        shortcut: wn
        categories: [news, wikimedia]
        base_url: "https://{language}.wikinews.org/"
        search_type: text
        srsort: create_timestamp_desc
        about:
          website: https://www.wikinews.org/
          wikidata_id: Q964
    
      - name: wikiquote
        engine: mediawiki
        weight: 0.5
        shortcut: wq
        categories: [general, wikimedia]
        base_url: "https://{language}.wikiquote.org/"
        search_type: text
        disabled: false
        additional_tests:
          rosebud: *test_rosebud
        about:
          website: https://www.wikiquote.org/
          wikidata_id: Q369
    
      - name: wikisource
        engine: mediawiki
        weight: 0.5
        shortcut: ws
        categories: [general, wikimedia]
        base_url: "https://{language}.wikisource.org/"
        search_type: text
        disabled: false
        about:
          website: https://www.wikisource.org/
          wikidata_id: Q263
    
      - name: wikispecies
        engine: mediawiki
        shortcut: wsp
        categories: [general, science, wikimedia]
        base_url: "https://species.wikimedia.org/"
        search_type: text
        disabled: true
        about:
          website: https://species.wikimedia.org/
          wikidata_id: Q13679
        tests:
          wikispecies:
            matrix:
              query: "Campbell, L.I. et al. 2011: MicroRNAs"
              lang: en
            result_container:
              - not_empty
              - ['one_title_contains', 'Tardigrada']
            test:
              - unique_results
    
      - name: wiktionary
        engine: mediawiki
        shortcut: wt
        categories: [dictionaries, wikimedia]
        base_url: "https://{language}.wiktionary.org/"
        search_type: text
        about:
          website: https://www.wiktionary.org/
          wikidata_id: Q151
    
      - name: wikiversity
        engine: mediawiki
        weight: 0.5
        shortcut: wv
        categories: [general, wikimedia]
        base_url: "https://{language}.wikiversity.org/"
        search_type: text
        disabled: true
        about:
          website: https://www.wikiversity.org/
          wikidata_id: Q370
    
      - name: wikivoyage
        engine: mediawiki
        weight: 0.5
        shortcut: wy
        categories: [general, wikimedia]
        base_url: "https://{language}.wikivoyage.org/"
        search_type: text
        disabled: true
        about:
          website: https://www.wikivoyage.org/
          wikidata_id: Q373
    
      - name: wikicommons.images
        engine: wikicommons
        shortcut: wc
        categories: images
        search_type: images
        number_of_results: 10
    
      - name: wikicommons.videos
        engine: wikicommons
        shortcut: wcv
        categories: videos
        search_type: videos
        number_of_results: 10
    
      - name: wikicommons.audio
        engine: wikicommons
        shortcut: wca
        categories: music
        search_type: audio
        number_of_results: 10
    
      - name: wikicommons.files
        engine: wikicommons
        shortcut: wcf
        categories: files
        search_type: files
        number_of_results: 10
    
      - name: wolframalpha
        shortcut: wa
        # You can use the engine using the official stable API, but you need an API
        # key.  See: https://products.wolframalpha.com/api/
        #
        # engine: wolframalpha_api
        # api_key: ''
        #
        # Or you can use the html non-stable engine, activated by default
        engine: wolframalpha_noapi
        timeout: 6.0
        categories: general
        disabled: false
    
      - name: dictzone
        engine: dictzone
        shortcut: dc
    
      - name: mymemory translated
        engine: translated
        shortcut: tl
        timeout: 5.0
        # You can use without an API key, but you are limited to 1000 words/day
        # See: https://mymemory.translated.net/doc/usagelimits.php
        # api_key: ''
    
      # Required dependency: mysql-connector-python
      #  - name: mysql
      #    engine: mysql_server
      #    database: mydatabase
      #    username: user
      #    password: pass
      #    limit: 10
      #    query_str: 'SELECT * from mytable WHERE fieldname=%(query)s'
      #    shortcut: mysql
    
      - name: 1337x
        engine: 1337x
        shortcut: 1337x
        disabled: true
    
      - name: duden
        engine: duden
        shortcut: du
        disabled: true
    
      - name: seznam
        shortcut: szn
        engine: seznam
        disabled: true
    
      # - name: deepl
      #   engine: deepl
      #   shortcut: dpl
      #   # You can use the engine using the official stable API, but you need an API key
      #   # See: https://www.deepl.com/pro-api?cta=header-pro-api
      #   api_key: ''  # required!
      #   timeout: 5.0
      #   disabled: true
    
      - name: mojeek
        shortcut: mjk
        engine: mojeek
        categories: [general, web]
        disabled: false
    
      - name: mojeek images
        shortcut: mjkimg
        engine: mojeek
        categories: [images, web]
        search_type: images
        paging: false
        disabled: false
    
      - name: mojeek news
        shortcut: mjknews
        engine: mojeek
        categories: [news, web]
        search_type: news
        paging: false
        disabled: false
    
      - name: moviepilot
        engine: moviepilot
        shortcut: mp
        disabled: true
    
      - name: naver
        shortcut: nvr
        categories: [general, web]
        engine: xpath
        paging: true
        search_url: https://search.naver.com/search.naver?where=webkr&sm=osp_hty&ie=UTF-8&query={query}&start={pageno}
        url_xpath: //a[@class="link_tit"]/@href
        title_xpath: //a[@class="link_tit"]
        content_xpath: //div[@class="total_dsc_wrap"]/a
        first_page_num: 1
        page_size: 10
        disabled: true
        about:
          website: https://www.naver.com/
          wikidata_id: Q485639
          official_api_documentation: https://developers.naver.com/docs/nmt/examples/
          use_official_api: false
          require_api_key: false
          results: HTML
          language: ko
    
      - name: rubygems
        shortcut: rbg
        engine: xpath
        paging: true
        search_url: https://rubygems.org/search?page={pageno}&query={query}
        results_xpath: /html/body/main/div/a[@class="gems__gem"]
        url_xpath: ./@href
        title_xpath: ./span/h2
        content_xpath: ./span/p
        suggestion_xpath: /html/body/main/div/div[@class="search__suggestions"]/p/a
        first_page_num: 1
        categories: [it, packages]
        disabled: false
        about:
          website: https://rubygems.org/
          wikidata_id: Q1853420
          official_api_documentation: https://guides.rubygems.org/rubygems-org-api/
          use_official_api: false
          require_api_key: false
          results: HTML
    
      - name: peertube
        engine: peertube
        shortcut: ptb
        paging: true
        # alternatives see: https://instances.joinpeertube.org/instances
        # base_url: https://tube.4aem.com
        categories: videos
        disabled: false
        timeout: 6.0
    
      - name: mediathekviewweb
        engine: mediathekviewweb
        shortcut: mvw
        disabled: true
    
      - name: yacy
        # https://docs.searxng.org/dev/engines/online/yacy.html
        engine: yacy
        categories: general
        search_type: text
        base_url:
          - https://yacy.searchlab.eu
          # see https://github.com/searxng/searxng/pull/3631#issuecomment-2240903027
          # - https://search.kyun.li
          # - https://yacy.securecomcorp.eu
          # - https://yacy.myserv.ca
          # - https://yacy.nsupdate.info
          # - https://yacy.electroncash.de
        shortcut: ya
        disabled: false
        # if you aren't using HTTPS for your local yacy instance disable https
        # enable_http: false
        search_mode: 'global'
        # timeout can be reduced in 'local' search mode
        timeout: 5.0
    
      - name: yacy images
        engine: yacy
        network: yacy
        categories: images
        search_type: image
        shortcut: yai
        disabled: fasle
        # timeout can be reduced in 'local' search mode
        timeout: 5.0
    
      - name: rumble
        engine: rumble
        shortcut: ru
        base_url: https://rumble.com/
        paging: true
        categories: videos
        disabled: true
    
      - name: livespace
        engine: livespace
        shortcut: ls
        categories: videos
        disabled: true
        timeout: 5.0
    
      - name: wordnik
        engine: wordnik
        shortcut: def
        base_url: https://www.wordnik.com/
        categories: [dictionaries]
        timeout: 5.0
    
      - name: woxikon.de synonyme
        engine: xpath
        shortcut: woxi
        categories: [dictionaries]
        timeout: 5.0
        disabled: true
        search_url: https://synonyme.woxikon.de/synonyme/{query}.php
        url_xpath: //div[@class="upper-synonyms"]/a/@href
        content_xpath: //div[@class="synonyms-list-group"]
        title_xpath: //div[@class="upper-synonyms"]/a
        no_result_for_http_status: [404]
        about:
          website: https://www.woxikon.de/
          wikidata_id:  # No Wikidata ID
          use_official_api: false
          require_api_key: false
          results: HTML
          language: de
    
      - name: seekr news
        engine: seekr
        shortcut: senews
        categories: news
        seekr_category: news
        disabled: false
    
      - name: seekr images
        engine: seekr
        network: seekr news
        shortcut: seimg
        categories: images
        seekr_category: images
        disabled: true
    
      - name: seekr videos
        engine: seekr
        network: seekr news
        shortcut: sevid
        categories: videos
        seekr_category: videos
        disabled: true
    
      - name: sjp.pwn
        engine: sjp
        shortcut: sjp
        base_url: https://sjp.pwn.pl/
        timeout: 5.0
        disabled: true
    
      - name: stract
        engine: stract
        shortcut: str
        disabled: false
    
      - name: svgrepo
        engine: svgrepo
        shortcut: svg
        timeout: 10.0
        disabled: false
    
      - name: tootfinder
        engine: tootfinder
        shortcut: toot
    
      - name: voidlinux
        engine: voidlinux
        shortcut: void
        disabled: false
    
      - name: wallhaven
        engine: wallhaven
        # api_key: abcdefghijklmnopqrstuvwxyz
        shortcut: wh
    
        # wikimini: online encyclopedia for children
        # The fulltext and title parameter is necessary for Wikimini because
        # sometimes it will not show the results and redirect instead
      - name: wikimini
        engine: xpath
        shortcut: wkmn
        search_url: https://fr.wikimini.org/w/index.php?search={query}&title=Sp%C3%A9cial%3ASearch&fulltext=Search
        url_xpath: //li/div[@class="mw-search-result-heading"]/a/@href
        title_xpath: //li//div[@class="mw-search-result-heading"]/a
        content_xpath: //li/div[@class="searchresult"]
        categories: general
        disabled: true
        about:
          website: https://wikimini.org/
          wikidata_id: Q3568032
          use_official_api: false
          require_api_key: false
          results: HTML
          language: fr
    
      - name: wttr.in
        engine: wttr
        shortcut: wttr
        timeout: 9.0
    
      - name: yummly
        engine: yummly
        shortcut: yum
        disabled: false
    
      - name: brave
        engine: brave
        shortcut: br
        time_range_support: true
        paging: true
        categories: [general, web]
        brave_category: search
        # brave_spellcheck: true
    
      - name: brave.images
        engine: brave
        network: brave
        shortcut: brimg
        categories: [images, web]
        brave_category: images
    
      - name: brave.videos
        engine: brave
        network: brave
        shortcut: brvid
        categories: [videos, web]
        brave_category: videos
    
      - name: brave.news
        engine: brave
        network: brave
        shortcut: brnews
        categories: news
        brave_category: news
    
      # - name: brave.goggles
      #   engine: brave
      #   network: brave
      #   shortcut: brgog
      #   time_range_support: true
      #   paging: true
      #   categories: [general, web]
      #   brave_category: goggles
      #   Goggles: # required! This should be a URL ending in .goggle
    
      - name: lib.rs
        shortcut: lrs
        engine: lib_rs
        disabled: true
    
      - name: sourcehut
        shortcut: srht
        engine: xpath
        paging: true
        search_url: https://sr.ht/projects?page={pageno}&search={query}
        results_xpath: (//div[@class="event-list"])[1]/div[@class="event"]
        url_xpath: ./h4/a[2]/@href
        title_xpath: ./h4/a[2]
        content_xpath: ./p
        first_page_num: 1
        categories: [it, repos]
        disabled: false
        about:
          website: https://sr.ht
          wikidata_id: Q78514485
          official_api_documentation: https://man.sr.ht/
          use_official_api: false
          require_api_key: false
          results: HTML
    
      - name: goo
        shortcut: goo
        engine: xpath
        paging: true
        search_url: https://search.goo.ne.jp/web.jsp?MT={query}&FR={pageno}0
        url_xpath: //div[@class="result"]/p[@class='title fsL1']/a/@href
        title_xpath: //div[@class="result"]/p[@class='title fsL1']/a
        content_xpath: //p[contains(@class,'url fsM')]/following-sibling::p
        first_page_num: 0
        categories: [general, web]
        disabled: true
        timeout: 4.0
        about:
          website: https://search.goo.ne.jp
          wikidata_id: Q249044
          use_official_api: false
          require_api_key: false
          results: HTML
          language: ja
    
      - name: bt4g
        engine: bt4g
        shortcut: bt4g
    
      - name: pkg.go.dev
        engine: pkg_go_dev
        shortcut: pgo
        disabled: false
    
    # Doku engine lets you access to any Doku wiki instance:
    # A public one or a privete/corporate one.
    #  - name: ubuntuwiki
    #    engine: doku
    #    shortcut: uw
    #    base_url: 'https://doc.ubuntu-fr.org'
    
    # Be careful when enabling this engine if you are
    # running a public instance. Do not expose any sensitive
    # information. You can restrict access by configuring a list
    # of access tokens under tokens.
    #  - name: git grep
    #    engine: command
    #    command: ['git', 'grep', '{{QUERY}}']
    #    shortcut: gg
    #    tokens: []
    #    disabled: true
    #    delimiter:
    #        chars: ':'
    #        keys: ['filepath', 'code']
    
    # Be careful when enabling this engine if you are
    # running a public instance. Do not expose any sensitive
    # information. You can restrict access by configuring a list
    # of access tokens under tokens.
    #  - name: locate
    #    engine: command
    #    command: ['locate', '{{QUERY}}']
    #    shortcut: loc
    #    tokens: []
    #    disabled: true
    #    delimiter:
    #        chars: ' '
    #        keys: ['line']
    
    # Be careful when enabling this engine if you are
    # running a public instance. Do not expose any sensitive
    # information. You can restrict access by configuring a list
    # of access tokens under tokens.
    #  - name: find
    #    engine: command
    #    command: ['find', '.', '-name', '{{QUERY}}']
    #    query_type: path
    #    shortcut: fnd
    #    tokens: []
    #    disabled: true
    #    delimiter:
    #        chars: ' '
    #        keys: ['line']
    
    # Be careful when enabling this engine if you are
    # running a public instance. Do not expose any sensitive
    # information. You can restrict access by configuring a list
    # of access tokens under tokens.
    #  - name: pattern search in files
    #    engine: command
    #    command: ['fgrep', '{{QUERY}}']
    #    shortcut: fgr
    #    tokens: []
    #    disabled: true
    #    delimiter:
    #        chars: ' '
    #        keys: ['line']
    
    # Be careful when enabling this engine if you are
    # running a public instance. Do not expose any sensitive
    # information. You can restrict access by configuring a list
    # of access tokens under tokens.
    #  - name: regex search in files
    #    engine: command
    #    command: ['grep', '{{QUERY}}']
    #    shortcut: gr
    #    tokens: []
    #    disabled: true
    #    delimiter:
    #        chars: ' '
    #        keys: ['line']
    
    doi_resolvers:
      oadoi.org: 'https://oadoi.org/'
      doi.org: 'https://doi.org/'
      doai.io: 'https://dissem.in/'
      sci-hub.se: 'https://sci-hub.se/'
      sci-hub.st: 'https://sci-hub.st/'
      sci-hub.ru: 'https://sci-hub.ru/'
    
    default_doi_resolver: 'oadoi.org'
    

    Pour mettre à jour searxng il faut stopper et supprimer le container

    docker stop mois_annee_searxng && docker rm mois_annee_searxng && docker rmi searxng/searxng
    
    

    Puis repasser la commande d’installation du container en ajustant le mois_annee pour suivre vos mises à jour 😉  (vérifiez de temps en temps vos moteurs).

    Et bien sûr pour utiliser, taper

    localhost:8888
    
    

    dans votre barre d’adresse (et dans la barre de recherche de Firefox clic sur le petit (+) puis sur la roue dentée pour avoir votre searxng comme moteur par défaut)

    Pour les curieux, voici un excellent post qui décrit beaucoup de moteurs et explique leurs qualités et défauts https://seirdy.one/posts/2021/03/10/search-engines-with-own-indexes/
    Plus simple et moins complet, mais très clair (en particulier pour comprendre les satellites des gros moteurs) https://www.searchenginemap.com/

    Enfin, je cite mon précédent papier sur searX :

    Sinon, j’utilise ahmia.fi pour les onions et non plus DuckDuckGo onions (avantage : il démarre la recherche du web classique : moins fastidieux que commencer direct en onion http://juhanurmihxlp77nkq76byazcldy2hlmovfu2epvl5ankdibsot4csyd.onion/ : celui là, je l’ajoute à Tor browser.

    ..Et bien sûr en amont, j’utilise NextDNS pour avoir des dns non filtrées et… filtrer les scripts et pubs.

    Je double NextDNS des DNS non menteuse de uncensoreddns sur ma box https://blog.uncensoreddns.org/

    N.B. il est possible de remplacer le logo searxng de la page d’accueil par le vôtre si vous avez installé searxng selon ce tuto c’est à dire avec docker.
    il faudra créer votre image en deux formats, un en svg et un en png, puis
    obtenir l’identifiant du container en tapant dans le terminal

    docker ps
    
    

    cet identifiant ressemble à une suite de chiffres et de lettres, pour l’exemple je dirais 02d875d7a209 mais vous prendrez le soin d’y mettre votre propre identifiant de container
    Assumant que vous avez placé searxng-custom.png et searxng-custom.svg dans /home/user,
    tapez

    docker cp ./searxng-custom.png 02d875d7a209:/usr/local/searxng/searx/static/themes/simple/img/searxng.png
    
    
    docker cp ./searxng-custom.svg 02d875d7a209:/usr/local/searxng/searx/static/themes/simple/img/searxng.svg
    
    

    à ce point vous voudrez redémarrer docker rapidement pour admirer le résultat.

    sudo systemctl restart docker
    
    

    puis rendez-vous dans votre

    localhost:8888
    
    

    searxng

    Un jeune site que j'aime bien, la ferrari du T-shirt ...bio en plus : GoudronBlanc

Affichage de 1 message (sur 1 au total)
  • Vous devez être connecté pour répondre à ce sujet.