Privacy-respecting, hackable metasearch engine / pronunciation səːks.
If you are looking for running instances, ready to use, then visit searx.space.
Otherwise jump to the user, admin and developer handbooks you will find on our homepage.
Privacy-respecting, hackable metasearch engine / pronunciation səːks.
If you are looking for running instances, ready to use, then visit searx.space.
Otherwise jump to the user, admin and developer handbooks you will find on our homepage.
This PR (partial) address (and/or closes) #1795, #1785, #1759, #1901, #1874, #1795, Cent OS wiki
Update 13. Apr. 2020:
This PR covers the various:
It is rewrite of the installation instructions. For a convenience setup of all services, bash scripts exists. All the scripts and documentation has been tested in LXC.
For more see https://github.com/asciimoo/searx/pull/1803#issuecomment-616105583
update: merged into the searx-next branch
I have switched from one instance to another when Google search doesn't show up, but inevitably Google results do not show up at times for all instances I've tried. Is anyone else having the same problem? My main instance is searx.dk
duplicateFirst, it is possible to move searx/searx to searx/searx-old (or searx/searx-archives) and move asciimoo/searx to searx/searx
It will be better, I do not understand the fork ;)
metaI don't know if this is the appropriate place to ask since this is an issue specific to a single instance of searx, but since yesterday I can't seem to obtain results from Google using searx.me . If I disable all engines but Google I get no results at all. I tried other public instances, including search.homecomputing.fr and searx.info and they don't seem to have this problem. Does anyone else have similar issues?
At first, I'd like to say a huge thank you to the searx community and especially to the maintainers for taking care about searx in the past two years while I was mostly inactive. In the past years I worked on other OSS projects like GoColly (https://github.com/gocolly) and ParlTrack (https://github.com/parltrack , https://parltrack.org/) which has been fully rewritten nearly from scratch.
Focusing on the future, I'd like to announce that in the next 5-6 months I'm working full time on searx to be able to release its first stable release. Big thanks to NLNet (https://nlnet.nl) which makes it possible. The plan is the following: As the first milestone (starting from Monday) I'd like to fix all engines and prioritize our current issues mainly focusing on bug/core/security/ui labeled issues. In this part I'd like to ask for your help to collect the most important issues and assign priorities to them. Please list every issue you'd like to be the part of the v1.0.0 release or if an issue is already in the comment thread vote for it with a :+1: . After the issues are collected I'm creating a dedicated searx project (https://github.com/asciimoo/searx/projects) where the whole development can be followed. As the second milestone I'm addressing the UI related tasks, and the backend related tasks will form the third milestone. The last (4.) milestone will consist of a full release test and the standard release process. If you have any questions, ideas or suggestions, feel free to comment.
Thanks, happy searxing.
enhancement question core metaBASE (Bielefield Academic Search Engine) is a proxy to search in 4000 open access science publications databases (including ArXiV, BiomedCentral). It harvests available databases through the "Open Archives Initiative Protocol for Metadata Harvesting" (OAI-PMH) and stores its own index.
Search webpage: https://base-search.net/
About: https://www.base-search.net/about/en/help.php
API: http://api.base-search.net/
(OAI: http://oai.base-search.net/ )
In PDF http://www.base-search.net/about/download/base_interface.pdf
List of other OAI-PMH harvesters: https://www.openarchives.org/service/listproviders.html
People searching scientific literature would benefit from having both engines "general" and "science" on the same search webpage.
I will suggest this idea to the people behind BASE.
engine requestIf you're a user of Searx, you've most likely seen the above error message numerous times.
However, this has raised my curiosity: if this appears, prompting a search again will bring results. I'm not sure how exactly Searx's results crawling algorithm works, but perhaps it would be viable to implement some sort of retry system?
Thanks, Resynth
bugIf I call searx, the page was loaded, but the search page not loaded.
If I call it nativ, as shown in the install manual, python searx/webapp.py links2 http://localhost:8888 it works.
Configuration is manual like, with uwsgi and apache.
Apache log: "GET /static/css/bootstrap.min.css HTTP/1.0" 304 185 "GET /static/js/jquery-1.11.1.min.js HTTP/1.0" 304 183 "GET /static/themes/oscar/css/leaflet.min.css HTTP/1.0" 304 183 "GET /static/themes/oscar/css/logicodev.min.css HTTP/1.0" 304 183 "GET /static/js/bootstrap.min.js HTTP/1.0" 304 184 "GET /static/js/require-2.1.15.min.js HTTP/1.0" 304 183 "GET /static/themes/oscar/js/searx.min.js HTTP/1.0" 304 183 "GET /static/plugins/js/search_on_category_select.js HTTP/1.0" 304 182 "GET /static/themes/oscar/img/favicon.png HTTP/1.0" 200 2326 "GET /opensearch.xml HTTP/1.0" 200 366 "GET / HTTP/1.0" 404 4218
question installationThe google engine needs a revise .. the "REST-API" of google has changed (further read: #1981) and we have a lot of long unused code and old xpath expressions.
Further affects: #1496
FYI: also merged into the searx-next branch
bug enhancement engineWe have some variables in the build environment which are also needed in several other process environments:
Additional a ISSUE_URL is implemented 33814719
Hi there, I noticed that when enabling Yandex I get russian results mixed in, despite having set English as the language:
And Bing news always returns results only in German:
Version of Searx, commit number if you are using on master branch and stipulate if you forked Searx
Running off master
at commit 117dbd462f39fb4c
How did you install Searx?
Installed and run manually from source (not docker)
What happened?
After starting searx, the first search says in the UI that duckduckgo was blocked. The debug: True
logging shows:
DEBUG:urllib3.connectionpool:https://lite.duckduckgo.com:443 "POST /lite HTTP/1.1" 403 None
DEBUG:urllib3.connectionpool:https://www.bing.com:443 "GET /search?q=language%3AEN+hello+world&first=1 HTTP/1.1" 200 None
DEBUG:urllib3.connectionpool:https://search.yahoo.com:443 "GET /search?p=hello+world&ei=UTF-8&fl=1&vl=lang_en&btf=&fr2=time&age=&b=1&xargs=0 HTTP/1.1" 200 None
DEBUG:searx:duckduckgo: ErrorContext('/home/searx/searx/searx/search/processors/online.py', 96, "response = req(params['url'], **request_args)", 'searx.exceptions.SearxEngineAccessDeniedException', None, ('HTTP error 403',))
ERROR:searx.search.processor.online:engine duckduckgo : Searx is blocked
Traceback (most recent call last):
File "/home/searx/searx/searx/search/processors/online.py", line 144, in search
search_results = self._search_basic(query, params)
File "/home/searx/searx/searx/search/processors/online.py", line 124, in _search_basic
response = self._send_http_request(params)
File "/home/searx/searx/searx/search/processors/online.py", line 96, in _send_http_request
response = req(params['url'], **request_args)
File "/home/searx/searx/searx/poolrequests.py", line 223, in post
return request('post', url, data=data, **kwargs)
File "/home/searx/searx/searx/poolrequests.py", line 202, in request
raise_for_httperror(response)
File "/home/searx/searx/searx/raise_for_httperror.py", line 62, in raise_for_httperror
raise SearxEngineAccessDeniedException(message='HTTP error ' + str(resp.status_code),
searx.exceptions.SearxEngineAccessDeniedException: HTTP error 403, suspended_time=86400
as per https://github.com/searx/searx/blob/117dbd462f39fb4cc2f12e9f7b9acf8d3fff419b/searx/search/processors/online.py#L195-L198
The block message no longer appears in the UI after the first search. I'm assuming searx recognizes the block and enacts a one-day (86400-second) cooldown.
How To Reproduce
Of course, this is specific to my instance, which I am not willing to share. Nevertheless, I hope to be able to resolve it with some dialogue.
Expected behavior
DDG is not blocked
Screenshots & Logs
See above.
Additional context
Is there anything I can do to lift the block? Should I disable the DDG engine for a few days?
bugBumps certifi from 2022.9.24 to 2022.12.7.
9e9e840
2022.12.07Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase
.
You can trigger Dependabot actions by commenting on this PR:
@dependabot rebase
will rebase this PR@dependabot recreate
will recreate this PR, overwriting any edits that have been made to it@dependabot merge
will merge this PR after your CI passes on it@dependabot squash and merge
will squash and merge this PR after your CI passes on it@dependabot cancel merge
will cancel a previously requested merge and block automerging@dependabot reopen
will reopen this PR if it is closed@dependabot close
will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually@dependabot ignore this major version
will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)@dependabot ignore this minor version
will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)@dependabot ignore this dependency
will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)Bumps mock from 4.0.3 to 5.0.0.
Sourced from mock's changelog.
5.0.0
gh-98624: Add a mutex to unittest.mock.NonCallableMock to protect concurrent access to mock attributes.
bpo-43478: Mocks can no longer be used as the specs for other Mocks. As a result, an already-mocked object cannot have an attribute mocked using
autospec=True
or be the subject of acreate_autospec(...)
call. This can uncover bugs in tests since these Mock-derived Mocks will always pass certain tests (e.g. isinstance) and builtin assert functions (e.g. assert_called_once_with) will unconditionally pass.bpo-45156: Fixes infinite loop on :func:
unittest.mock.seal
of mocks created by :func:~unittest.create_autospec
.bpo-41403: Make :meth:
mock.patch
raise a :exc:TypeError
with a relevant error message on invalid arg. Previously it allowed a cryptic :exc:AttributeError
to escape.gh-91803: Fix an error when using a method of objects mocked with :func:
unittest.mock.create_autospec
after it was sealed with :func:unittest.mock.seal
function.bpo-41877: AttributeError for suspected misspellings of assertions on mocks are now pointing out that the cause are misspelled assertions and also what to do if the misspelling is actually an intended attribute name. The unittest.mock document is also updated to reflect the current set of recognised misspellings.
bpo-43478: Mocks can no longer be provided as the specs for other Mocks. As a result, an already-mocked object cannot be passed to
mock.Mock()
. This can uncover bugs in tests since these Mock-derived Mocks will always pass certain tests (e.g. isinstance) and builtin assert functions (e.g. assert_called_once_with) will unconditionally pass.bpo-45010: Remove support of special method
__div__
in :mod:unittest.mock
. It is not used in Python 3.gh-84753: :func:
inspect.iscoroutinefunction
now properly returnsTrue
when an instance of :class:unittest.mock.AsyncMock
is passed to it. This makes it consistent with behavior of :func:asyncio.iscoroutinefunction
. Patch by Mehdi ABAAKOUK.bpo-46852: Remove the undocumented private
float.__set_format__()
method, previously known asfloat.__setformat__()
in Python 3.7. Its docstring said: "You probably don't want to use this function. It exists mainly to be used in Python's test suite." Patch by Victor Stinner.gh-98086: Make sure
patch.dict()
can be applied on async functions.
... (truncated)
6d40148
sudo no longer needed172a36c
Add support for gh issues to release.py.c4dd650
Preparing for 5.0.0 release.3a70a8c
Update historical issue references to be bpo- prefixed85a196e
Fixup reverting backported rev example.726e5ee
latest sync point5462a55
Fix mock code coverage. (#100580)78fed8a
gh-100287: Fix unittest.mock.seal with AsyncMock (#100496)36e4a68
gh-83076: 3.8x speed improvement in (Async)Mock instantiation (#100252)a2cb0be
gh-98086: Now patch.dict
can decorate async functions (#98095)Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase
.
You can trigger Dependabot actions by commenting on this PR:
@dependabot rebase
will rebase this PR@dependabot recreate
will recreate this PR, overwriting any edits that have been made to it@dependabot merge
will merge this PR after your CI passes on it@dependabot squash and merge
will squash and merge this PR after your CI passes on it@dependabot cancel merge
will cancel a previously requested merge and block automerging@dependabot reopen
will reopen this PR if it is closed@dependabot close
will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually@dependabot ignore this major version
will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)@dependabot ignore this minor version
will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)@dependabot ignore this dependency
will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)Bumps lxml from 4.9.1 to 4.9.2.
Sourced from lxml's changelog.
4.9.2 (2022-12-13)
Bugs fixed
- CVE-2022-2309: A Bug in libxml2 2.9.1[0-4] could let namespace declarations from a failed parser run leak into later parser runs. This bug was worked around in lxml and resolved in libxml2 2.10.0. https://gitlab.gnome.org/GNOME/libxml2/-/issues/378
Other changes
LP#1981760:
Element.attrib
now registers ascollections.abc.MutableMapping
.lxml now has a static build setup for macOS on ARM64 machines (not used for building wheels). Patch by Quentin Leffray.
c17c1ca
Use same naming for Python version matrix variable in wheel workflow as in CI...fc2f7ea
Use windows-2016 image instead of windows-2019 to fix the Py2.7 build.98224b3
Install more recent library versions for the wheel build.ce4e5bc
Fix release date.cece238
Add PyPy-3.8 CI target.2c2308e
Try to add a Windows CI build for Py2.7.0b0b2b9
Exclude missing Python versions from CI jobs.b848b82
Try to fix CI "setup.py install" in Py3.11.487a194
CI: exclude non-static Windows jobs.fc53d6f
Show executed commands in CI runs.Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase
.
You can trigger Dependabot actions by commenting on this PR:
@dependabot rebase
will rebase this PR@dependabot recreate
will recreate this PR, overwriting any edits that have been made to it@dependabot merge
will merge this PR after your CI passes on it@dependabot squash and merge
will squash and merge this PR after your CI passes on it@dependabot cancel merge
will cancel a previously requested merge and block automerging@dependabot reopen
will reopen this PR if it is closed@dependabot close
will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually@dependabot ignore this major version
will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)@dependabot ignore this minor version
will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)@dependabot ignore this dependency
will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)Bumps sphinx from 5.3.0 to 6.0.0.
Sourced from sphinx's releases.
v6.0.0
Changelog: https://www.sphinx-doc.org/en/master/changes.html
v6.0.0b2
Changelog: https://www.sphinx-doc.org/en/master/changes.html
v6.0.0b1
Changelog: https://www.sphinx-doc.org/en/master/changes.html
Sourced from sphinx's changelog.
Release 6.0.0 (released Dec 29, 2022)
Dependencies
- #10468: Drop Python 3.6 support
- #10470: Drop Python 3.7, Docutils 0.14, Docutils 0.15, Docutils 0.16, and Docutils 0.17 support. Patch by Adam Turner
Incompatible changes
#7405: Removed the jQuery and underscore.js JavaScript frameworks.
These frameworks are no longer be automatically injected into themes from Sphinx 6.0. If you develop a theme or extension that uses the
jQuery
,$
, or$u
global objects, you need to update your JavaScript to modern standards, or use the mitigation below.The first option is to use the sphinxcontrib.jquery_ extension, which has been developed by the Sphinx team and contributors. To use this, add
sphinxcontrib.jquery
to theextensions
list inconf.py
, or callapp.setup_extension("sphinxcontrib.jquery")
if you develop a Sphinx theme or extension.The second option is to manually ensure that the frameworks are present. To re-add jQuery and underscore.js, you will need to copy
jquery.js
andunderscore.js
fromthe Sphinx repository
_ to yourstatic
directory, and add the following to yourlayout.html
:.. code-block:: html+jinja
{%- block scripts %} {{ super() }} {%- endblock %}
.. _sphinxcontrib.jquery: https://github.com/sphinx-contrib/jquery/
Patch by Adam Turner.
#10471, #10565: Removed deprecated APIs scheduled for removal in Sphinx 6.0. See :ref:
dev-deprecated-apis
for details. Patch by Adam Turner.#10901: C Domain: Remove support for parsing pre-v3 style type directives and roles. Also remove associated configuration variables
c_allow_pre_v3
andc_warn_on_allowed_pre_v3
. Patch by Adam Turner.Features added
... (truncated)
5b56a23
Bump to 6.0.0 finalf1d1e9c
Update coverage workflow for Tox 466a738c
Update coverage workflow for new configuration location041e5f8
Add test coverage for 'today_fmt' reference substitution (#10980)da25145
Remove unnecessary conditional import in sphinx.ext.napoleon
(#11043)45a0ea9
Migrate coveragepy config into pyproject.toml (#11025)3ec54f1
Create a pydata_sphinx_theme
section in usage examples (#11046)32bce8f
Copy edit the tutorial (#11049)9844162
Fix example using add_config_value
(#10937)bf4a626
RTD builder: add graphviz depedendency (#11040)Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase
.
You can trigger Dependabot actions by commenting on this PR:
@dependabot rebase
will rebase this PR@dependabot recreate
will recreate this PR, overwriting any edits that have been made to it@dependabot merge
will merge this PR after your CI passes on it@dependabot squash and merge
will squash and merge this PR after your CI passes on it@dependabot cancel merge
will cancel a previously requested merge and block automerging@dependabot reopen
will reopen this PR if it is closed@dependabot close
will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually@dependabot ignore this major version
will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)@dependabot ignore this minor version
will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)@dependabot ignore this dependency
will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)It has been a while since we released a new version of searx. Thus, we have lots of new things to offer, like new engines, autocompleter, plugins, etc. We got numerous contributions from ~30 new developers, but also we got many PRs from our recurring contributors.
Thank you so much for you support! We couldn't have release so many awesome things without you!
hostname_replace
plugin to rewrite result hostnames by @3nprob in https://github.com/searx/searx/pull/2724search_operators
plugin to filter search results using -
, site:
and -site:
by @DiamondDemon669 @kvch in https://github.com/searx/searx/pull/3311SEARX_SETTINGS_PATH
, UWSGI_SETTINGS_PATH
by @3nprob in https://github.com/searx/searx/pull/2717Full Changelog: https://github.com/searx/searx/compare/v1.0.0...v1.1.0
Source code(tar.gz)Core:
Documentation:
New settings.yml:
general.contact_url
: add link to contact instance maintainer to footer of each page ( #2391 14c7cc0e118f1d0873b32b34793cdec2c5c9c13e #2412 )brand
: move brand options from Makefile to settings.yml ( #2408 #2473 )Themes:
New engines:
Fixed engines:
Updated engines:
Removed engines:
Bug fixes
Code refactoring / reduce the technical debt:
Github:
Build scripts:
books/{name}.*
and books/user.pdf
( #2420 #2530 )gh-pages
: flatten history of branch gh.pages ( #2514 )Install scripts:
We, the searx maintainer team, would like to say a huge thank you for everybody who had been involved in the development of searx or supported us in the past 7 years - making our first stable release available. Special thanks to NLNet for sponsoring multiple features of this release.
Source code(tar.gz)Core:
/stats/errors
.New settings.yml:
use_default_settings
: user settings can relied on the default settings ( #2291 #2362 #2349 )ui.results_on_new_tab: False
- for opening result links in a new tab ( #2167 )ui.advanced_search
- add preference for displaying advanced settings ( #2327 )server.method: "POST"
- Make default query submission method configurable ( #2130 )server.default_http_headers
- add default http headers ( #2295 )engines.*.proxies
- Using proxy only for specific engines ( #1827 #2319 ), see https://searx.github.io/searx/dev/engine_overview.html#settings-ymlenabled_plugins
- Enabled plugins ( a05c660e3036ad8d02072fc6731af54c2ed6151c )preferences.lock
- Let admins lock user preferences ( #2270 )Oscar theme:
Simple theme:
New engines:
Updated engines:
Fixed engines:
Removed engines:
Install scripts:
Docker image
Bug fixes:
Special thanks to NLNet for sponsoring multiple features of this release.
Source code(tar.gz)display_error_messages
engine option (true/false values, default is true)Special thanks to NLNet for sponsoring multiple features of this release. Special thanks to https://www.accessibility.nl/english for making accessibilty audit.
Source code(tar.gz)Special thanks to NLNet for funding the developement of this release.
Source code(tar.gz)New engines
New languages
New random answerers
New DOI resolsvers
Fix Vim mode on Firefox
Fix custom select in Oscar theme
Engine fixes (duckduckgo, google news, currency convert, gigablast, google scholar, wikidata image, etymonline, google videos, startpage, bing image)
Minor simple theme fixes
New Youtube icon in Oscar theme
Get DOI rewriters from settings.yml
Hide page buttons when infinite scrolling is enabled
Update user agent versions
Make Oscar style configurable
Make suspend times of errored engines configurable
Special thanks to NLNet for sponsoring multiple features of this release.
Source code(tar.gz)@kvch joined the maintainer team
Source code(tar.gz)New documentation page is available: https://asciimoo.github.io/searx
Source code(tar.gz)@dalf joined the maintainer "team"
Source code(tar.gz)Yobi Yara Based Detection for web browsers System Requirements Yobi requires python3 and and right now supports only firefox and other Gecko-based bro
JavaScript Raider is a coverage-guided JavaScript fuzzing framework designed for the v8 JavaScript engine
ripgrep (rg) ripgrep is a line-oriented search tool that recursively searches the current directory for a regex pattern. By default, ripgrep will resp
Meet Fidesops: Privacy as Code for DSAR Orchestration A part of the greater Fides ecosystem. ⚡ Overview Fidesops (fee-dez-äps, combination of the Lati
PyGrid is a peer-to-peer network of data owners and data scientists who can collectively train AI models using PySyft. PyGrid is also the central serv
Welcome to Mailpile! Introduction Mailpile (https://www.mailpile.is/) is a modern, fast web-mail client with user-friendly encryption and privacy feat
Home Assistant Open source home automation that puts local control and privacy first. Powered by a worldwide community of tinkerers and DIY enthusiast
Tribler Towards making Bittorrent anonymous and impossible to shut down. We use our own dedicated Tor-like network for anonymous torrent downloading.
federated is the source code for the Bachelor's Thesis Privacy-Preserving Federated Learning Applied to Decentralized Data (Spring 2021, NTNU) Federat
Vid2Doppler: Synthesizing Doppler Radar Data from Videos for Training Privacy-Preserving Activity Recognition This is the research repository for Vid2
Protecting your privacy using an ESP32, an IR sensor and a python script This project, which I personally call the "never-gonna-catch-me-in-the-act-ev
To achieve this, the APIs of different services are used, sending only a part of the Hash of the password we want to check, for example, the first 5 characters.
rotki is an open source portfolio tracking, analytics, accounting and tax reporting tool that respects your privacy. The mission of rotki is to bring transparency into the crypto and financial sectors through the use of open source.
Pardus Lookout We protect the privacy of the data on your computer by using the camera of your Debian based Pardus operating system. The application i
Python implementation of the IPv8 layer provide authenticated communication with privacy
?? Take back your privacy with Dot Browser, the privacy-conscious web browser that protects you from being tracked and monitored online.
Aadhaar Number Masking Pipeline Implementation of a complete pipeline that masks the Aadhaar Number in given images to adhere to Govt. of India's Priv
Contents LDP LinUCB Description Model Architecture Dataset Environment Requirements Script Description Script and Sample Code Script Parameters Launch
Differential_Privacy_CPS Python implementation of the research paper Leveraging Unique CPS Properties to Design Better Privacy-Enhancing Algorithms Re
An opensource chat service that cares about your privacy. Instructions to set up a local testing environment: 1) Clone this repository and navigate to