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