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 : 

  • Ce sujet est vide.
Affichage de 1 message (sur 1 au total)
  • Auteur
    Articles
  • #12536
    nam1962nam1962
    Maître des clés

    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)

    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: truebrand:
    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",
    # "seznam", "startpage", "swisscows", "qwant", "wikipedia" - leave blank to turn it off
    # by default.
    autocomplete: "startpage"
    # 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: "auto"
    # 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:
    # If you change port, bind_address or base_url don't forget to rebuild
    # instance's environment (make buildenv). 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: http://localhost:8888/ # "http://example.com/location"
    limiter: false # rate limit the number of request on the instance, block some bots
    
    # If your instance owns a /etc/searxng/settings.yml file, then set the following
    # values there.
    
    secret_key: "46a364e496aa88de44b298b99fdcbb325371b151bdf70e68a387557ebbd73ef7" # 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://redis-py.readthedocs.io/en/stable/connections.html#redis.client.Redis.from_url
    url: false
    
    ui:
    # Custom static path - leave it blank if you didn't change
    static_path: ""
    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
    
    # 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.0
    #
    # 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 ..
    # - '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 ..
    # - 'Hostname replace' # see hostname_replace configuration below
    # - 'Open Access DOI rewrite'
    # - 'Vim-like hotkeys'
    # - '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 "Hostname replace" plugin:
    #
    # hostname_replace:
    # '(.*\.)?youtube\.com$': 'invidious.example.com'
    # '(.*\.)?youtu\.be$': 'invidious.example.com'
    # '(.*\.)?youtube-noocookie\.com$': 'yotter.example.com'
    # '(.*\.)?reddit\.com$': 'teddit.example.com'
    # '(.*\.)?redd\.it$': 'teddit.example.com'
    # '(www\.)?twitter\.com$': 'nitter.example.com'
    # # to remove matching host names from result list, set value to false
    # 'spam\.example\.com': false
    
    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: annas archive
    engine: annas_archive
    disabled: true
    shortcut: aa
    
    # - name: annas articles
    # engine: annas_archive
    # shortcut: aaa
    # # https://docs.searxng.org/src/searx.engines.annas_archive.html
    # aa_content: 'journal_article' # book_any .. magazine, standards_document
    # aa_ext: 'pdf' # pdf, epub, ..
    # aa_sort: 'newest' # 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
    
    # 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
    base_url: 'https://{language}.wikipedia.org/'
    
    - 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: btdigg
    engine: btdigg
    shortcut: bt
    disabled: true
    
    - name: ccc-tv
    engine: xpath
    paging: false
    search_url: https://media.ccc.de/search/?q={query}
    url_xpath: //div[@class="caption"]/h3/a/@href
    title_xpath: //div[@class="caption"]/h3/a/text()
    content_xpath: //div[@class="caption"]/h4/@title
    categories: videos
    disabled: true
    shortcut: c3tv
    about:
    website: https://media.ccc.de/
    wikidata_id: Q80729951
    official_api_documentation: https://github.com/voc/voctoweb
    use_official_api: false
    require_api_key: false
    results: HTML
    # 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.
    
    - name: openverse
    engine: openverse
    categories: images
    shortcut: opv
    
    # - 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: 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: json_engine
    shortcut: yep
    categories: general
    disabled: false
    paging: false
    content_html_to_text: true
    title_html_to_text: true
    search_url: https://api.yep.com/fs/1/?type=web&q={query}&no_correct=false&limit=100
    results_query: 1/results
    title_query: title
    url_query: url
    content_query: snippet
    about:
    website: https://yep.com
    use_official_api: false
    require_api_key: false
    results: JSON
    
    - 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: deviantart
    engine: deviantart
    shortcut: da
    timeout: 3.0
    
    - name: ddg definitions
    engine: duckduckgo_definitions
    shortcut: ddd
    weight: 2
    disabled: true
    tests: *tests_infobox
    
    # 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: 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
    tests: *tests_infobox
    
    - 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: 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: genius
    engine: genius
    shortcut: gen
    
    - name: gentoo
    engine: gentoo
    shortcut: ge
    timeout: 10.0
    
    - 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
    
    # This a Gitea service. If you would like to use a different instance,
    # change codeberg.org to URL of the desired Gitea host. Or you can create a
    # new engine by copying this and changing the name, shortcut and search_url.
    
    - name: codeberg
    engine: json_engine
    search_url: https://codeberg.org/api/v1/repos/search?q={query}&limit=10
    url_query: html_url
    title_query: name
    content_query: description
    categories: [it, repos]
    shortcut: cb
    disabled: false
    about:
    website: https://codeberg.org/
    wikidata_id:
    official_api_documentation: https://try.gitea.io/api/swagger
    use_official_api: false
    require_api_key: false
    results: JSON
    
    - name: google
    engine: google
    shortcut: go
    # additional_tests:
    # android: *test_android
    
    - name: google images
    engine: google_images
    shortcut: goi
    # additional_tests:
    # android: *test_android
    # 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:
    # android: *test_android
    
    - name: google videos
    engine: google_videos
    shortcut: gov
    # additional_tests:
    # android: *test_android
    
    - 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: 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://habrahabr.ru/search/page{pageno}/?q={query}
    url_xpath: //article[contains(@class, "post")]//a[@class="post__title_link"]/@href
    title_xpath: //article[contains(@class, "post")]//a[@class="post__title_link"]
    content_xpath: //article[contains(@class, "post")]//div[contains(@class, "post__text")]
    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: 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.snopyta.org
    - https://vid.puffyan.us
    # - https://invidious.kavin.rocks # Error 1020 // Access denied by Cloudflare
    - https://invidio.xamh.de
    - https://inv.riverside.rocks
    shortcut: iv
    timeout: 3.0
    disabled: true
    
    - name: jisho
    engine: jisho
    shortcut: js
    timeout: 3.0
    disabled: true
    
    - name: kickass
    engine: kickass
    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.fun/search.php?req={query}
    url_xpath: //a[contains(@href,"get.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: lingva
    engine: lingva
    shortcut: lv
    # set lingva instance in url, by default it will use the official instance
    # url: https://lingva.ml
    
    - name: lobste.rs
    engine: xpath
    search_url: https://lobste.rs/search?utf8=%E2%9C%93&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: azlyrics
    shortcut: lyrics
    engine: xpath
    timeout: 4.0
    disabled: true
    categories: [music, lyrics]
    paging: true
    search_url: https://search.azlyrics.com/search.php?q={query}&w=lyrics&p={pageno}
    url_xpath: //td[@class="text-left visitedlyr"]/a/@href
    title_xpath: //span/b/text()
    content_xpath: //td[@class="text-left visitedlyr"]/a/small
    about:
    website: https://azlyrics.com
    wikidata_id: Q66372542
    official_api_documentation:
    use_official_api: false
    require_api_key: false
    results: HTML
    
    - 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: npm
    engine: json_engine
    paging: true
    first_page_num: 0
    search_url: https://api.npms.io/v2/search?q={query}&size=25&from={pageno}
    results_query: results
    url_query: package/links/npm
    title_query: package/name
    content_query: package/description
    page_size: 25
    categories: [it, packages]
    disabled: false
    timeout: 5.0
    shortcut: npm
    about:
    website: https://npms.io/
    wikidata_id: Q7067518
    official_api_documentation: https://api-docs.npms.io/
    use_official_api: false
    require_api_key: false
    results: JSON
    
    - 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
    
    - 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: 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: 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
    
    # 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: pub.dev
    engine: xpath
    shortcut: pd
    search_url: https://pub.dev/packages?q={query}&page={pageno}
    paging: true
    results_xpath: /html/body/main/div/div[@class="search-results"]/div[@class="packages"]/div
    url_xpath: ./div/h3/a/@href
    title_xpath: ./div/h3/a
    content_xpath: ./p[@class="packages-description"]
    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: xpath
    paging: true
    search_url: https://pypi.org/search?q={query}&page={pageno}
    results_xpath: /html/body/main/div/div/div/form/div/ul/li/a[@class="package-snippet"]
    url_xpath: ./@href
    title_xpath: ./h3/span[@class="package-snippet__name"]
    content_xpath: ./p
    suggestion_xpath: /html/body/main/div/div/div/form/div/div[@class="callout-block"]/p/span/a[@class="link"]
    first_page_num: 1
    categories: [it, packages]
    about:
    website: https://pypi.org
    wikidata_id: Q2984686
    official_api_documentation: https://warehouse.readthedocs.io/api-reference/index.html
    use_official_api: false
    require_api_key: false
    results: HTML
    
    # - 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: reddit
    engine: reddit
    shortcut: re
    page_size: 25
    
    # 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: sepiasearch
    engine: sepiasearch
    shortcut: sep
    
    - 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: superuser
    engine: stackexchange
    shortcut: su
    api_site: 'superuser'
    categories: [it, q&a]
    
    - name: searchcode code
    engine: searchcode_code
    shortcut: scc
    disabled: false
    
    - name: framalibre
    engine: framalibre
    shortcut: frl
    disabled: false
    
    # - 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.net
    - https://solidtorrents.eu
    - 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
    shortcut: ts
    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/src/searx.engines.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: yahoo
    engine: yahoo
    shortcut: yh
    disabled: true
    
    - 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
    shortcut: wb
    categories: [general, wikimedia]
    base_url: "https://{language}.wikibooks.org/"
    search_type: text
    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
    shortcut: wq
    categories: [general, wikimedia]
    base_url: "https://{language}.wikiquote.org/"
    search_type: text
    additional_tests:
    rosebud: *test_rosebud
    about:
    website: https://www.wikiquote.org/
    wikidata_id: Q369
    
    - name: wikisource
    engine: mediawiki
    shortcut: ws
    categories: [general, wikimedia]
    base_url: "https://{language}.wikisource.org/"
    search_type: text
    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
    about:
    website: https://species.wikimedia.org/
    wikidata_id: Q13679
    
    - 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
    shortcut: wv
    categories: [general, wikimedia]
    base_url: "https://{language}.wikiversity.org/"
    search_type: text
    about:
    website: https://www.wikiversity.org/
    wikidata_id: Q370
    
    - name: wikivoyage
    engine: mediawiki
    shortcut: wy
    categories: [general, wikimedia]
    base_url: "https://{language}.wikivoyage.org/"
    search_type: text
    about:
    website: https://www.wikivoyage.org/
    wikidata_id: Q373
    
    - 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: xpath
    paging: true
    categories: [general, web]
    search_url: https://www.mojeek.com/search?q={query}&s={pageno}&lang={lang}&lb={lang}
    results_xpath: //ul[@class="results-standard"]/li/a[@class="ob"]
    url_xpath: ./@href
    title_xpath: ../h2/a
    content_xpath: ..//p[@class="s"]
    suggestion_xpath: //div[@class="top-info"]/p[@class="top-info spell"]/em/a
    first_page_num: 0
    page_size: 10
    disabled: false
    about:
    website: https://www.mojeek.com/
    wikidata_id: Q60747299
    official_api_documentation: https://www.mojeek.com/services/api.html/
    use_official_api: false
    require_api_key: false
    results: HTML
    
    - 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: //a[@class="total_dsc"]/div
    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
    # engine: yacy
    # shortcut: ya
    # base_url: http://localhost:8090
    # # required if you aren't using HTTPS for your local yacy instance'
    # enable_http: true
    # timeout: 3.0
    # # Yacy search mode. 'global' or 'local'.
    # search_mode: 'global'
    
    - name: rumble
    engine: rumble
    shortcut: ru
    base_url: https://rumble.com/
    paging: true
    categories: videos
    disabled: true
    
    - 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: sjp.pwn
    engine: sjp
    shortcut: sjp
    base_url: https://sjp.pwn.pl/
    timeout: 5.0
    disabled: true
    
    # 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: 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: lib.rs
    shortcut: lrs
    engine: xpath
    search_url: https://lib.rs/search?q={query}
    results_xpath: /html/body/main/div/ol/li/a
    url_xpath: ./@href
    title_xpath: ./div[@class="h"]/h4
    content_xpath: ./div[@class="h"]/p
    categories: [it, packages]
    disabled: true
    about:
    website: https://lib.rs
    wikidata_id: Q113486010
    use_official_api: false
    require_api_key: false
    results: HTML
    
    - 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
    
    # 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.