diff --git a/README.md b/README.md index 8e1afc3..759abb2 100644 --- a/README.md +++ b/README.md @@ -4,12 +4,12 @@ [![Install Searx with YunoHost](https://install-app.yunohost.org/install-with-yunohost.svg)](https://install-app.yunohost.org/?app=searx) > *This package allow you to install Searx quickly and simply on a YunoHost server. -If you don't have YunoHost, please see [here](https://yunohost.org/#/install) to know how to install and enjoy it.* +If you don't have YunoHost, please see [here](https://yunohost.org/install) to know how to install and enjoy it.* ## Overview Searx is a privacy-respecting, hackable metasearch engine. -**Shipped version:** 0.18.0 +**Shipped version:** 1.0.0 ## Screenshot @@ -31,8 +31,8 @@ Searx is a privacy-respecting, hackable metasearch engine. #### Supported architectures -* x86-64 - [![Build Status](https://ci-apps.yunohost.org/ci/logs/searx%20%28Apps%29.svg)](https://ci-apps.yunohost.org/ci/apps/searx/) -* ARMv8-A - [![Build Status](https://ci-apps-arm.yunohost.org/ci/logs/searx%20%28Apps%29.svg)](https://ci-apps-arm.yunohost.org/ci/apps/searx/) +* x86-64 - [![Build Status](https://ci-apps.yunohost.org/ci/logs/searx.svg)](https://ci-apps.yunohost.org/ci/apps/searx/) +* ARMv8-A - [![Build Status](https://ci-apps-arm.yunohost.org/ci/logs/searx.svg)](https://ci-apps-arm.yunohost.org/ci/apps/searx/) ## Limitations diff --git a/conf/app.src b/conf/app.src index 3118cc2..ed8b2d5 100644 --- a/conf/app.src +++ b/conf/app.src @@ -1,5 +1,5 @@ -SOURCE_URL=https://github.com/searx/searx/archive/v0.18.0.tar.gz -SOURCE_SUM=d22430ad92262d9114ad169e001975fe5195afdcc679d6f6bf030e0c1a5b79f0 +SOURCE_URL=https://github.com/searx/searx/archive/refs/tags/1.0.0.tar.gz +SOURCE_SUM=4587acc9bd2bf428fe9ac8e4d79d3637dac308a8e5bdeee4f0bae85bfe5c67fe SOURCE_SUM_PRG=sha256sum SOURCE_FORMAT=tar.gz SOURCE_IN_SUBDIR=true diff --git a/conf/settings.yml b/conf/settings.yml new file mode 100644 index 0000000..adf292e --- /dev/null +++ b/conf/settings.yml @@ -0,0 +1,1479 @@ +general: + debug : False # Debug mode, only for development + instance_name : "YunoSearx" # displayed name + contact_url: False # mailto:contact@example.com + +brand: + git_url: https://github.com/searx/searx + git_branch: master + issue_url: https://github.com/searx/searx/issues + docs_url: https://searx.github.io/searx + public_instances: https://searx.space + wiki_url: https://github.com/searx/searx/wiki + twitter_url: https://twitter.com/Searx_engine + +search: + safe_search : 0 # Filter results. 0: None, 1: Moderate, 2: Strict + autocomplete : "" # Existing autocomplete backends: "dbpedia", "duckduckgo", "google", "startpage", "swisscows", "qwant", "wikipedia" - leave blank to turn it off by default + default_lang : "" # Default search language - leave blank to detect from browser information or use codes from 'languages.py' + ban_time_on_fail : 5 # ban time in seconds after engine errors + max_ban_time_on_fail : 120 # max ban time in seconds after engine errors + +server: + port : 8888 + bind_address : "127.0.0.1" # address to listen on + secret_key : "__SECRET_KEY__" # change this! + base_url : False # Set custom base_url. Possible values: False or "https://your.custom.host/location/" + image_proxy : False # Proxying image results through searx + http_protocol_version : "1.0" # 1.0 and 1.1 are supported + method: "POST" # POST queries are more secure as they don't show up in history but may cause problems when using Firefox containers + 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 + +ui: + static_path : "" # Custom static path - leave it blank if you didn't change + templates_path : "" # Custom templates path - leave it blank if you didn't change + default_theme : oscar # ui theme + default_locale : "" # Default interface locale - leave blank to detect from browser information or use codes from the 'locales' config section + theme_args : + oscar_style : logicodev # default style of oscar +# results_on_new_tab: False # Open result links in a new tab by default +# categories_order : +# - general +# - files +# - map +# - it +# - science + +# 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 + +# 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/ +# key : !!binary "your_morty_proxy_key" + +outgoing: # communication with search engines + request_timeout : 2.0 # default timeout in seconds, can be override by engine + # max_request_timeout: 10.0 # the maximum timeout in seconds + useragent_suffix : "" # suffix of searx_useragent, could contain informations like an email address to the administrator + pool_connections : 100 # Number of different hosts + pool_maxsize : 10 # Number of simultaneous requests by host +# uncomment below section if you want to use a proxy +# see https://2.python-requests.org/en/latest/user/advanced/#proxies +# SOCKS proxies are also supported: see https://2.python-requests.org/en/latest/user/advanced/#socks +# proxies: +# http: +# - http://proxy1:8080 +# - http://proxy2:8080 +# https: +# - http://proxy1:8080 +# - http://proxy2:8080 +# using_tor_proxy : True +# extra_proxy_timeout : 10.0 # Extra seconds to add in order to account for the time taken by the proxy +# 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 + +# External plugin configuration +# See http://searx.github.io/searx/dev/plugins.html for more details +# +# plugins: +# - plugin1 +# - plugin2 +# - ... + +# uncomment below section if you want to configure which plugin is enabled by default +# +# enabled_plugins: +# - "HTTPS rewrite" +# - ... + +# Example to rewrite hostnames in external links +# +# enabled_plugins: +# - 'Hostname replace' +# 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' + +checker: + # disable checker when in debug mode + off_when_debug: True + + # scheduling: interval or int + # use "scheduling: False" to disable scheduling + # to activate the scheduler: + # * uncomment "scheduling" section + # * add "cache2 = name=searxcache,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 + +engines: + - name: apk mirror + engine: apkmirror + timeout: 4.0 + shortcut: apkm + disabled: True + +# Requires Tor + - name : ahmia + engine : ahmia + categories : onions + enable_http : True + shortcut : ah + + - name : arch linux wiki + engine : archlinux + shortcut : al + + - name : archive is + engine : xpath + search_url : https://archive.is/{query} + url_xpath : (//div[@class="TEXT-BLOCK"]/a)/@href + title_xpath : (//div[@class="TEXT-BLOCK"]/a) + content_xpath : //div[@class="TEXT-BLOCK"]/ul/li + categories : general + timeout : 7.0 + disabled : True + shortcut : ai + about: + website: https://archive.is/ + wikidata_id: Q13515725 + official_api_documentation: http://mementoweb.org/depot/native/archiveis/ + use_official_api: false + require_api_key: false + results: HTML + + - name : arxiv + engine : arxiv + shortcut : arx + categories : science + 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 + + - 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 + timeout : 4.0 + disabled : True + 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 + + - 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 + + - name : ccengine + engine : ccengine + categories : images + shortcut : cce + +# - 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 : json_engine + paging : True + search_url : https://search.crossref.org/dois?q={query}&page={pageno} + url_query : doi + title_query : title + title_html_to_text: True + content_query : fullCitation + content_html_to_text: True + categories : science + shortcut : cr + about: + website: https://www.crossref.org/ + wikidata_id: Q5188229 + official_api_documentation: https://github.com/CrossRef/rest-api-doc + use_official_api: false + require_api_key: false + results: JSON + + - name : currency + engine : currency_convert + categories : general + shortcut : cc + + - name : deezer + engine : deezer + shortcut : dz + + - 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 : digg + engine : digg + shortcut : dg + + - 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 : general + 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 : duckduckgo + engine : duckduckgo + shortcut : ddg + disabled : True + + - name : duckduckgo images + engine : duckduckgo_images + shortcut : ddi + timeout: 3.0 + disabled : True + + - name : etools + engine : etools + shortcut : eto + disabled : True + additional_tests: + rosebud: *test_rosebud + + - 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 + disabled : True + 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 +# disabled : True +# timeout: 5 + + - name : 1x + engine : www1x + shortcut : 1x + timeout : 3.0 + disabled : True + + - name : fdroid + engine : fdroid + shortcut : fd + disabled : True + + - 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 + base_url : https://directory.fsf.org/ + number_of_results : 5 +# what part of a page matches the query string: title, text, nearmatch +# title - query matches title, text - query matches the text of page, nearmatch - nearmatch in title + search_type : title + timeout : 5.0 + disabled : True + about: + website: https://directory.fsf.org/ + wikidata_id: Q2470288 + + # - name : freesound + # engine : freesound + # shortcut : fnd + # disabled : True + # timeout : 15.0 + # api_key : MyAPIkey + # API key required, see : https://freesound.org/docs/api/overview.html + + - name : frinkiac + engine : frinkiac + shortcut : frk + disabled : True + + - name : genius + engine : genius + shortcut : gen + + - name : gigablast + engine : gigablast + shortcut : gb + timeout : 3.0 + disabled: True + additional_tests: + rosebud: *test_rosebud + + - name : gentoo + engine : gentoo + shortcut : ge + + - 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 + shortcut : gl + timeout : 10.0 + disabled : True + 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 + shortcut : cb + disabled : True + 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 : xpath + search_url : https://play.google.com/store/search?q={query}&c=apps + results_xpath : '//div[@class="ImZGtf mpg5gc"]' + title_xpath : './/div[@class="RZEgze"]//div[@class="kCSSQe"]//a' + url_xpath : './/div[@class="RZEgze"]//div[@class="kCSSQe"]//a/@href' + content_xpath : './/div[@class="RZEgze"]//a[@class="mnKHRc"]' + thumbnail_xpath : './/div[@class="uzcko"]/div/span[1]//img/@data-src' + categories : files + shortcut : gpa + disabled : True + about: + website: https://play.google.com/ + wikidata_id: Q79576 + official_api_documentation: + use_official_api: false + require_api_key: false + results: HTML + + - name : google play movies + engine : xpath + search_url : https://play.google.com/store/search?q={query}&c=movies + results_xpath : '//div[@class="ImZGtf mpg5gc"]' + title_xpath : './/div[@class="RZEgze"]//div[@class="kCSSQe"]//a' + url_xpath : './/div[@class="RZEgze"]//div[@class="kCSSQe"]//a/@href' + content_xpath : './/div[@class="kCSSQe"]' + thumbnail_xpath : './/div[@class="uzcko"]/div/span[1]//img/@data-src' + categories : videos + shortcut : gpm + disabled : True + about: + website: https://play.google.com/ + wikidata_id: Q79576 + official_api_documentation: + use_official_api: false + require_api_key: false + results: HTML + + - name : geektimes + engine : xpath + paging : True + search_url : https://habr.com/en/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 : True + shortcut : gt + about: + website: https://geektimes.ru/ + wikidata_id: Q50572423 + official_api_documentation: + use_official_api: false + require_api_key: false + results: HTML + + - 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 : True + 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 + shortcut : ho + about: + website: https://www.haskell.org/ + wikidata_id: Q34010 + official_api_documentation: https://hackage.haskell.org/api + use_official_api: false + require_api_key: false + results: JSON + + - name : ina + engine : ina + shortcut : in + timeout : 6.0 + disabled : True + + - name : invidious + engine : invidious + base_url : + - https://invidious.tube/ + - https://invidious.snopyta.org/ + shortcut: iv + timeout : 5.0 + disabled : True + + - name: kickass + engine : kickass + shortcut : kc + timeout : 4.0 + disabled : True + + - name : library genesis + engine : xpath + enable_http: True + search_url : http://libgen.rs/search.php?req={query} + url_xpath : //a[contains(@href,"bookfi.net/md5")]/@href + title_xpath : //a[contains(@href,"book/")]/text()[1] + content_xpath : //td/a[1][contains(@href,"=author")]/text() + categories : general + timeout : 7.0 + disabled : True + shortcut : lg + about: + website: http://libgen.rs/ + wikidata_id: Q22017206 + official_api_documentation: + use_official_api: false + require_api_key: false + results: HTML + + - name : library of congress + engine : loc + shortcut : loc + categories : images + + - 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: True + about: + website: https://lobste.rs/ + wikidata_id: Q60762874 + official_api_documentation: + use_official_api: false + require_api_key: false + results: HTML + +# - name : meilisearch +# engine : meilisearch +# shortcut: mes +# enable_http: True +# base_url : http://localhost:7700 +# index : my-index + + - name : microsoft academic + engine : microsoft_academic + categories : science + shortcut : ma + + - name : mixcloud + engine : mixcloud + shortcut : mc + + - name : npm + engine : json_engine + paging : True + 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 + disabled: True + 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 + +# Requires Tor + - name : not evil + engine : not_evil + categories : onions + enable_http : True + shortcut : ne + + - name : nyaa + engine : nyaa + shortcut : nt + 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 : 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 : 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 : 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 : pubmed + engine : pubmed + shortcut : pub + categories: science + timeout : 3.0 + + - name : qwant + engine : qwant + shortcut : qw + categories : general + disabled : True + additional_tests: + rosebud: *test_rosebud + + - name : qwant images + engine : qwant + shortcut : qwi + categories : images + + - name : qwant news + engine : qwant + shortcut : qwn + categories : news + +# - 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 + timeout : 10.0 + disabled : True + +# tmp suspended: bad certificate +# - name : scanr structures +# shortcut: scs +# engine : scanr_structures +# disabled : True + + - name: sepiasearch + engine: sepiasearch + shortcut: sep + + - name : soundcloud + engine : soundcloud + shortcut : sc + + - name : stackoverflow + engine : stackoverflow + shortcut : st + + - name : searchcode code + engine : searchcode_code + shortcut : scc + disabled : True + + - name : framalibre + engine : framalibre + shortcut : frl + 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 : True + shortcut : se + categories : science + about: + website: https://www.semanticscholar.org/ + wikidata_id: Q22908627 + official_api_documentation: https://api.semanticscholar.org/ + use_official_api: false + require_api_key: false + results: JSON + +# 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 +# api_key : 'unset' # working API key, for test & debug: "a69685087d07eca9f13db62f65b8f601" +# disabled: True +# shortcut : springer +# categories : science +# timeout : 6.0 + + - name : startpage + engine : startpage + shortcut : sp + timeout : 6.0 + disabled : True + additional_tests: + rosebud: *test_rosebud + + - name : tokyotoshokan + engine : tokyotoshokan + shortcut : tt + timeout : 6.0 + disabled : True + + - name : solidtorrents + engine : solidtorrents + shortcut : solid + timeout : 3.0 + disabled : True + + - name : torrentz + engine : torrentz + shortcut : tor + url: https://torrentz2.eu/ + timeout : 3.0 + +# 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 + +# maybe in a fun category +# - name : uncyclopedia +# engine : mediawiki +# shortcut : unc +# base_url : https://uncyclopedia.wikia.com/ +# number_of_results : 5 + +# tmp suspended - too slow, too many errors +# - name : urbandictionary +# engine : xpath +# search_url : http://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 + disabled: True + 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 : yggtorrent + engine : yggtorrent + shortcut : ygg + url: https://www4.yggtorrent.li/ + disabled : True + timeout : 4.0 + + - name : dailymotion + engine : dailymotion + shortcut : dm + + - name : vimeo + engine : vimeo + shortcut : vm + + - name : wiby + engine : json_engine + search_url : https://wiby.me/json/?q={query} + url_query : URL + title_query : Title + content_query : Snippet + categories : general + shortcut : wib + disabled : True + + - name : wikibooks + engine : mediawiki + shortcut : wb + categories : general + base_url : "https://{language}.wikibooks.org/" + number_of_results : 5 + search_type : text + disabled : True + about: + website: https://www.wikibooks.org/ + wikidata_id: Q367 + + - name : wikinews + engine : mediawiki + shortcut : wn + categories : news + base_url : "https://{language}.wikinews.org/" + number_of_results : 5 + search_type : text + disabled : True + about: + website: https://www.wikinews.org/ + wikidata_id: Q964 + + - name : wikiquote + engine : mediawiki + shortcut : wq + categories : general + base_url : "https://{language}.wikiquote.org/" + number_of_results : 5 + search_type : text + disabled : True + additional_tests: + rosebud: *test_rosebud + about: + website: https://www.wikiquote.org/ + wikidata_id: Q369 + + - name : wikisource + engine : mediawiki + shortcut : ws + categories : general + base_url : "https://{language}.wikisource.org/" + number_of_results : 5 + search_type : text + disabled : True + about: + website: https://www.wikisource.org/ + wikidata_id: Q263 + + - name : wiktionary + engine : mediawiki + shortcut : wt + categories : general + base_url : "https://{language}.wiktionary.org/" + number_of_results : 5 + search_type : text + disabled : True + about: + website: https://www.wiktionary.org/ + wikidata_id: Q151 + + - name : wikiversity + engine : mediawiki + shortcut : wv + categories : general + base_url : "https://{language}.wikiversity.org/" + number_of_results : 5 + search_type : text + disabled : True + about: + website: https://www.wikiversity.org/ + wikidata_id: Q370 + + - name : wikivoyage + engine : mediawiki + shortcut : wy + categories : general + base_url : "https://{language}.wikivoyage.org/" + number_of_results : 5 + search_type : text + disabled : True + 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 : http://products.wolframalpha.com/api/ + # engine : wolframalpha_api + # api_key: '' # required! + engine : wolframalpha_noapi + timeout: 6.0 + categories : science + + - name : dictzone + engine : dictzone + shortcut : dc + + - name : mymemory translated + engine : translated + shortcut : tl + timeout : 5.0 + disabled : True + # You can use without an API key, but you are limited to 1000 words/day + # See : http://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 : mojeek + shortcut: mjk + engine: xpath + paging : True + search_url : https://www.mojeek.com/search?q={query}&s={pageno} + results_xpath: /html/body//div[@class="results"]/ul[@class="results-standard"]/li + url_xpath : ./h2/a/@href + title_xpath : ./h2 + content_xpath : ./p[@class="s"] + suggestion_xpath : /html/body//div[@class="top-info"]/p[@class="top-info spell"]/a + first_page_num : 0 + page_size : 10 + disabled : True + 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 + 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 + + - 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 + disabled : True + 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 + base_url : https://peer.tube/ + categories: videos + disabled : True + + - name : mediathekviewweb + engine : mediathekviewweb + shortcut : mvw + +# - name : yacy +# engine : yacy +# shortcut : ya +# base_url : 'http://localhost:8090' +# enable_http: True # required if you aren't using HTTPS for your local yacy instance +# number_of_results : 5 +# timeout : 3.0 + + - 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: general + timeout: 5.0 + disabled: True + + - name: słownik języka polskiego + engine: sjp + shortcut: sjp + base_url: https://sjp.pwn.pl/ + categories: general + timeout: 5.0 + disabled: True + +# 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 : 'http://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'] + +locales: + en : English + ar : العَرَبِيَّة (Arabic) + bg : Български (Bulgarian) + bo : བོད་སྐད་ (Tibetian) + ca : Català (Catalan) + cs : Čeština (Czech) + cy : Cymraeg (Welsh) + da : Dansk (Danish) + de : Deutsch (German) + el_GR : Ελληνικά (Greek_Greece) + eo : Esperanto (Esperanto) + es : Español (Spanish) + et : Eesti (Estonian) + eu : Euskara (Basque) + fa_IR : (fārsī) فارسى (Persian) + fi : Suomi (Finnish) + fil : Wikang Filipino (Filipino) + fr : Français (French) + gl : Galego (Galician) + he : עברית (Hebrew) + hr : Hrvatski (Croatian) + hu : Magyar (Hungarian) + ia : Interlingua (Interlingua) + it : Italiano (Italian) + ja : 日本語 (Japanese) + lt : Lietuvių (Lithuanian) + nl : Nederlands (Dutch) + nl_BE : Vlaams (Dutch_Belgium) + oc : Lenga D'òc (Occitan) + pl : Polski (Polish) + pt : Português (Portuguese) + pt_BR : Português (Portuguese_Brazil) + ro : Română (Romanian) + ru : Русский (Russian) + sk : Slovenčina (Slovak) + sl : Slovenski (Slovene) + sr : српски (Serbian) + sv : Svenska (Swedish) + te : తెలుగు (telugu) + ta : தமிழ் (Tamil) + tr : Türkçe (Turkish) + uk : українська мова (Ukrainian) + vi : tiếng việt (Vietnamese) + zh : 中文 (Chinese) + zh_TW : 國語 (Taiwanese Mandarin) + +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.do : 'https://sci-hub.do/' + scihubtw.tw : 'https://scihubtw.tw/' + sci-hub.st : 'https://sci-hub.st/' + sci-hub.bar : 'https://sci-hub.bar/' + sci-hub.it.nf : 'https://sci-hub.it.nf/' + +default_doi_resolver : 'oadoi.org' \ No newline at end of file diff --git a/manifest.json b/manifest.json index 7255722..09af11e 100644 --- a/manifest.json +++ b/manifest.json @@ -7,7 +7,7 @@ "fr": "Méta-moteur de recherche respectueux de la vie privée et bidouillable", "de": "Meta-Suchmaschine, die den Privatsphäre wahrt und 'hackable' ist." }, - "version": "0.18.0~ynh3", + "version": "1.0.0~ynh1", "url": "https://searx.github.io/searx/", "license": "AGPL-3.0-or-later", "maintainer": { diff --git a/scripts/_common.sh b/scripts/_common.sh index fb0e1bf..bd43940 100644 --- a/scripts/_common.sh +++ b/scripts/_common.sh @@ -5,7 +5,7 @@ #================================================= # dependencies used by the app -pkg_dependencies="git build-essential libxslt-dev python3-dev python3-venv python3-cffi python3-babel zlib1g-dev libffi-dev libssl-dev python3-lxml uwsgi uwsgi-plugin-python3" +pkg_dependencies="git build-essential libxslt-dev python3-dev python3-venv python3-cffi python3-babel zlib1g-dev libffi-dev libssl-dev python3-lxml uwsgi uwsgi-plugin-python3 shellcheck" #================================================= # UWSGI HELPERS diff --git a/scripts/install b/scripts/install index 3d2fb91..039d0cc 100644 --- a/scripts/install +++ b/scripts/install @@ -92,7 +92,10 @@ ynh_script_progression --message="Installing Searx..." --weight=2 python3 -m venv --system-site-packages "$final_path" set +u; source $final_path/bin/activate; set -u +pip3 install -U pip pip3 install -U setuptools +pip3 install -U wheel +pip3 install -U pyyaml pip3 install --requirement $final_path/requirements-ynh.txt #================================================= @@ -100,16 +103,9 @@ pip3 install --requirement $final_path/requirements-ynh.txt #================================================= ynh_script_progression --message="Configuring Searx..." --weight=2 -# Change instance name -ynh_replace_string --match_string="instance_name : \"searx\"" --replace_string="instance_name : \"YunoSearx\"" --target_file="$final_path/searx/settings.yml" +secret_key=$(ynh_string_random) -# Generate a secret key -ynh_replace_string --match_string="secret_key : \"ultrasecretkey\"" --replace_string="secret_key : \"$(ynh_string_random)\"" --target_file="$final_path/searx/settings.yml" - -# Modify the base_url parameter -#ynh_replace_string --match_string="base_url : False" --replace_string="base_url : https://${domain}${path_url%/}/" --target_file="$final_path/searx/settings.yml" - -ynh_store_file_checksum --file="$final_path/searx/settings.yml" +ynh_add_config --template="../conf/settings.yml" --destination="$final_path/searx/settings.yml" #================================================= # SET PERMISSIONS ON SEARX DIRECTORY diff --git a/sources/extra_files/app/requirements-ynh.txt b/sources/extra_files/app/requirements-ynh.txt index cb0c161..111d620 100644 --- a/sources/extra_files/app/requirements-ynh.txt +++ b/sources/extra_files/app/requirements-ynh.txt @@ -1,21 +1,21 @@ # Have a look to https://github.com/searx/searx/blob/master/requirements.txt certifi==2020.12.05 -babel==2.9.0 +babel==2.9.1 flask-babel==2.0.0 flask==1.1.2 idna==2.10 -jinja2==2.11.2 -lxml==4.6.2 -pygments==2.1.3 -pyopenssl==19.1.0 +jinja2==2.11.3 +lxml==4.6.3 +pygments==2.8.0 python-dateutil==2.8.1 pyyaml==5.4.1 requests[socks]==2.25.1 -cryptography==3.1.1 +langdetect==1.0.8 +# cryptography==3.2 -# Additionnals requirements -markupsafe>=0.23 -ndg-httpsclient>=0.4.2 -pyasn1>=0.2.3 -pyasn1-modules>=0.0.9 -#cffi>=1.12.1 +# # Additionnals requirements +# markupsafe>=0.23 +# ndg-httpsclient>=0.4.2 +# pyasn1>=0.2.3 +# pyasn1-modules>=0.0.9 +## cffi>=1.12.1