|
@@ -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
|