examples | ||
searx | ||
utils | ||
.coveragerc | ||
.gitignore | ||
.landscape.yaml | ||
.travis.yml | ||
AUTHORS.rst | ||
babel.cfg | ||
base.cfg | ||
bootstrap.py | ||
buildout.cfg | ||
LICENSE | ||
Makefile | ||
minimal.cfg | ||
production.cfg | ||
README.rst | ||
requirements.txt | ||
setup.py | ||
versions.cfg |
searx
A privacy-respecting, hackable metasearch engine.
List of running instances.
See the wiki for more information.
Features
- Tracking free
- Supports multiple output formats
- json
curl https://searx.me/?format=json&q=[query]
- csv
curl https://searx.me/?format=csv&q=[query]
- opensearch/rss
curl https://searx.me/?format=rss&q=[query]
- json
- Opensearch support (you can set as default search engine)
- Configurable search engines/categories
- Different search languages
- Duckduckgo like !bang functionality with engine shortcuts
- Parallel queries - relatively fast
Installation
- clone source:
git clone git@github.com:asciimoo/searx.git && cd searx
- install dependencies:
pip install -r requirements.txt
- edit your settings.yml (set your
secret_key
!) - run
python searx/webapp.py
to start the application
For all the details, follow this step by step installation
Alternative (Recommended) Installation
- clone source:
git clone git@github.com:asciimoo/searx.git && cd searx
- build in current folder:
make minimal
- run
bin/searx-run
to start the application
Development
Just run make
. Versions of dependencies are pinned down inside versions.cfg
to produce most stable build. Also remember, NO make command should be run as root, not even make production
Deployment
- clone source:
git clone git@github.com:asciimoo/searx.git && cd searx
- build in current folder:
make production
- run
bin/supervisord
to start the application
Upgrading
- inside previously cloned searx directory run:
git stash
to temporarily save any changes you have made - pull source:
git pull origin master
- re-build in current folder:
make production
- run
bin/supervisorctl stop searx
to stop searx, if it does not, then runfuser -k 8888/tcp
- run
bin/supervisorctl reload
to re-read supervisor config and start searx
Command make
make
Builds development environment with testing support.
make tests
Runs tests. You can write tests here and remember 'untested code is broken code'.
make robot
Runs robot (Selenium) tests, you must have firefox
installed because this functional tests actually run the browser and perform operations on it. Also searx is executed with settings_robot.
make flake8
'pep8 is a tool to check your Python code against some of the style conventions in PEP 8.'
make coverage
Checks coverage of tests, after running this, execute this: firefox ./coverage/index.html
make production
Used to make co-called production environment - without tests (you should ran tests before deploying searx on the server). This installs supervisord, so if searx crashes, it will try to pick itself up again. And crontab entry is added to start supervisord at server boot.
make minimal
Minimal build - without test frameworks, the quickest build option.
make clean
Deletes several folders and files (see Makefile
for more), so that next time you run any other make
command it will rebuild everithing.
TODO
- Moar engines
- Better ui
- Browser integration
- Documentation
- Fix
flake8
errors,make flake8
will be merged intomake tests
when it does not fail anymore - Tests
- When we have more tests, we can integrate Travis-CI
Bugs
Bugs or suggestions? Visit the issue tracker.