README.rst 4.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159
  1. searx
  2. =====
  3. A privacy-respecting, hackable `metasearch
  4. engine <https://en.wikipedia.org/wiki/Metasearch_engine>`__.
  5. List of `running
  6. instances <https://github.com/asciimoo/searx/wiki/Searx-instances>`__.
  7. |Flattr searx|
  8. Features
  9. ~~~~~~~~
  10. - Tracking free
  11. - Modular (see
  12. `examples <https://github.com/asciimoo/searx/blob/master/examples>`__)
  13. - Parallel queries
  14. - Supports multiple output formats
  15. - json ``curl https://searx.0x2a.tk/?format=json&q=[query]``
  16. - csv ``curl https://searx.0x2a.tk/?format=csv&q=[query]``
  17. - opensearch/rss ``curl https://searx.0x2a.tk/?format=rss&q=[query]``
  18. - Opensearch support (you can set as default search engine)
  19. - Configurable search engines/categories
  20. Installation
  21. ~~~~~~~~~~~~
  22. - clone source:
  23. ``git clone git@github.com:asciimoo/searx.git && cd searx``
  24. - install dependencies: ``pip install -r requirements.txt``
  25. - edit your
  26. `settings.yml <https://github.com/asciimoo/searx/blob/master/settings.yml>`__
  27. (set your ``secret_key``!)
  28. - run ``python searx/webapp.py`` to start the application
  29. For all the details, follow this `step by step
  30. installation <https://github.com/asciimoo/searx/wiki/Installation>`__
  31. Alternative (Recommended) Installation
  32. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  33. - clone source:
  34. ``git clone git@github.com:asciimoo/searx.git && cd searx``
  35. - build in current folder: ``make minimal``
  36. - run ``bin/searx-run`` to start the application
  37. Development
  38. ~~~~~~~~~~~
  39. Just run ``make``. Versions of dependencies are pinned down inside
  40. ``versions.cfg`` to produce most stable build. Also remember, NO make
  41. command should be run as root, not even ``make production``
  42. Deployment
  43. ~~~~~~~~~~
  44. - clone source:
  45. ``git clone git@github.com:asciimoo/searx.git && cd searx``
  46. - build in current folder: ``make production``
  47. - run ``bin/supervisord`` to start the application
  48. Upgrading
  49. ~~~~~~~~~
  50. - inside previously cloned searx directory run: ``git stash`` to
  51. temporarily save any changes you have made
  52. - pull source: ``git pull origin master``
  53. - re-build in current folder: ``make production``
  54. - run ``bin/supervisorctl stop searx`` to stop searx, if it does not,
  55. then run ``fuser -k 8888/tcp``
  56. - run ``bin/supervisorctl reload`` to re-read supervisor config and
  57. start searx
  58. Command make
  59. ~~~~~~~~~~~~
  60. ``make``
  61. ''''''''
  62. Builds development environment with testing support.
  63. ``make tests``
  64. ''''''''''''''
  65. Runs tests. You can write tests
  66. `here <https://github.com/asciimoo/searx/tree/master/searx/tests>`__ and
  67. remember 'untested code is broken code'.
  68. ``make robot``
  69. ''''''''''''''
  70. Runs robot (Selenium) tests, you must have ``firefox`` installed because
  71. this functional tests actually run the browser and perform operations on
  72. it. Also searx is executed with
  73. `settings\_robot <https://github.com/asciimoo/searx/blob/master/searx/settings_robot.py>`__.
  74. ``make flake8``
  75. '''''''''''''''
  76. 'pep8 is a tool to check your Python code against some of the style
  77. conventions in `PEP 8 <http://www.python.org/dev/peps/pep-0008/>`__.'
  78. ``make coverage``
  79. '''''''''''''''''
  80. Checks coverage of tests, after running this, execute this:
  81. ``firefox ./coverage/index.html``
  82. ``make production``
  83. '''''''''''''''''''
  84. Used to make co-called production environment - without tests (you
  85. should ran tests before deploying searx on the server). This installs
  86. supervisord, so if searx crashes, it will try to pick itself up again.
  87. And crontab entry is added to start supervisord at server boot.
  88. ``make minimal``
  89. ''''''''''''''''
  90. Minimal build - without test frameworks, the quickest build option.
  91. ``make clean``
  92. ''''''''''''''
  93. Deletes several folders and files (see ``Makefile`` for more), so that
  94. next time you run any other ``make`` command it will rebuild everithing.
  95. TODO
  96. ~~~~
  97. - Moar engines
  98. - Better ui
  99. - Language support
  100. - Documentation
  101. - Pagination
  102. - Fix ``flake8`` errors, ``make flake8`` will be merged into
  103. ``make tests`` when it does not fail anymore
  104. - Tests
  105. - When we have more tests, we can integrate Travis-CI
  106. Bugs
  107. ~~~~
  108. Bugs or suggestions? Visit the `issue
  109. tracker <https://github.com/asciimoo/searx/issues>`__.
  110. `License <https://github.com/asciimoo/searx/blob/master/LICENSE>`__
  111. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  112. More about searx
  113. ~~~~~~~~~~~~~~~~
  114. - `ohloh <https://www.ohloh.net/p/searx/>`__
  115. - `twitter <https://twitter.com/Searx_engine>`__
  116. - IRC: #searx @ freenode
  117. .. |Flattr searx| image:: http://api.flattr.com/button/flattr-badge-large.png
  118. :target: https://flattr.com/submit/auto?user_id=asciimoo&url=https://github.com/asciimoo/searx&title=searx&language=&tags=github&category=software