Browse Source

Add virtualenv package

Perflyst 6 years ago
parent
commit
23e3afa432
No account linked to committer's email
44 changed files with 12680 additions and 404 deletions
  1. 94
    0
      _sources/admin/api.rst.txt
  2. 114
    0
      _sources/admin/filtron.rst.txt
  3. 21
    0
      _sources/admin/morty.rst.txt
  4. 42
    0
      _sources/blog/admin.rst.txt
  5. 8
    0
      _sources/blog/blog.rst.txt
  6. 54
    0
      _sources/blog/python3.rst.txt
  7. 98
    0
      _sources/dev/contribution_guide.rst.txt
  8. 313
    0
      _sources/dev/engine_overview.rst.txt
  9. 323
    0
      _sources/dev/install/installation.rst.txt
  10. 1
    1
      _sources/dev/install/installation.txt
  11. 45
    0
      _sources/dev/plugins.rst.txt
  12. 108
    0
      _sources/dev/quickstart.rst.txt
  13. 204
    0
      _sources/dev/search_api.rst.txt
  14. 61
    0
      _sources/dev/translation.rst.txt
  15. 56
    0
      _sources/index.rst.txt
  16. 43
    0
      _sources/user/own-instance.rst.txt
  17. 33
    0
      _sources/user/search_syntax.rst.txt
  18. 29
    3
      _static/basic.css
  19. 43
    17
      _static/doctools.js
  20. 9
    0
      _static/documentation_options.js
  21. 10253
    0
      _static/jquery-3.2.1.js
  22. 4
    4
      _static/jquery.js
  23. 4
    1
      _static/searchtools.js
  24. 2
    2
      _static/websupport.js
  25. 38
    16
      admin/api.html
  26. 37
    18
      admin/filtron.html
  27. 27
    17
      admin/morty.html
  28. 35
    16
      blog/admin.html
  29. 22
    12
      blog/blog.html
  30. 35
    14
      blog/python3.html
  31. 37
    13
      dev/contribution_guide.html
  32. 71
    33
      dev/engine_overview.html
  33. 82
    43
      dev/install/installation.html
  34. 41
    17
      dev/plugins.html
  35. 49
    24
      dev/quickstart.html
  36. 73
    55
      dev/search_api.html
  37. 44
    24
      dev/translation.html
  38. 1
    1
      docs/dev/install/installation.rst
  39. 16
    16
      genindex.html
  40. 34
    13
      index.html
  41. 3
    12
      search.html
  42. 1
    1
      searchindex.js
  43. 36
    13
      user/own-instance.html
  44. 36
    18
      user/search_syntax.html

+ 94
- 0
_sources/admin/api.rst.txt View File

1
+.. _adminapi:
2
+
3
+Administration API
4
+------------------
5
+
6
+Get configuration data
7
+~~~~~~~~~~~~~~~~~~~~~~
8
+
9
+.. code:: sh
10
+
11
+    GET /config
12
+
13
+Sample response
14
+```````````````
15
+
16
+.. code:: sh
17
+    
18
+    {
19
+      "autocomplete": "", 
20
+      "categories": [
21
+        "map", 
22
+        "it", 
23
+        "images", 
24
+      ], 
25
+      "default_locale": "", 
26
+      "default_theme": "oscar", 
27
+      "engines": [
28
+        {
29
+          "categories": [
30
+            "map"
31
+          ], 
32
+          "enabled": true, 
33
+          "name": "openstreetmap", 
34
+          "shortcut": "osm"
35
+        }, 
36
+        {
37
+          "categories": [
38
+            "it"
39
+          ], 
40
+          "enabled": true, 
41
+          "name": "arch linux wiki", 
42
+          "shortcut": "al"
43
+        }, 
44
+        {
45
+          "categories": [
46
+            "images"
47
+          ], 
48
+          "enabled": true, 
49
+          "name": "google images", 
50
+          "shortcut": "goi"
51
+        }, 
52
+        {
53
+          "categories": [
54
+            "it"
55
+          ], 
56
+          "enabled": false, 
57
+          "name": "bitbucket", 
58
+          "shortcut": "bb"
59
+        }, 
60
+      ], 
61
+      "instance_name": "searx", 
62
+      "locales": {
63
+        "de": "Deutsch (German)", 
64
+        "en": "English", 
65
+        "eo": "Esperanto (Esperanto)", 
66
+      }, 
67
+      "plugins": [
68
+        {
69
+          "enabled": true, 
70
+          "name": "HTTPS rewrite"
71
+        }, 
72
+        {
73
+          "enabled": false, 
74
+          "name": "Vim-like hotkeys"
75
+        }
76
+      ], 
77
+      "safe_search": 0
78
+    }
79
+
80
+Embed search bar
81
+----------------
82
+
83
+The search bar can be embedded into websites. Just paste the example into the HTML of the site.
84
+URL of the searx instance and values are customizable.
85
+
86
+.. code:: html
87
+    
88
+    <form method="post" action="https://searx.me/">
89
+        <!-- search query --> <input type="text" name="q" />
90
+        <!-- categories   --> <input type="hidden" name="categories" value="general,social media" />
91
+        <!-- language     --> <input type="hidden" name="lang" value="all" />
92
+        <!-- locale       --> <input type="hidden" name="locale" value="en" />
93
+        <!-- date filter  --> <input type="hidden" name="time_range" value="month" />
94
+    </form>

+ 114
- 0
_sources/admin/filtron.rst.txt View File

1
+How to protect an instance
2
+==========================
3
+
4
+Searx depens on external search services. To avoid the abuse of these services it is advised to limit the number of requests processed by searx.
5
+
6
+An application firewall, ``filtron`` solves exactly this problem. Information on how to install it can be found at the `project page of filtron <https://github.com/asciimoo/filtron>`__.
7
+
8
+Sample configuration of filtron
9
+-------------------------------
10
+
11
+An example configuration can be find below. This configuration limits the access of
12
+
13
+ * scripts or applications (roboagent limit)
14
+
15
+ * webcrawlers (botlimit)
16
+
17
+ * IPs which send too many requests (IP limit)
18
+
19
+ * too many json, csv, etc. requests (rss/json limit)
20
+
21
+ * the same UserAgent of if too many requests (useragent limit)
22
+
23
+
24
+.. code:: json
25
+
26
+    [
27
+        {
28
+            "name": "search request",
29
+            "filters": ["Param:q", "Path=^(/|/search)$"],
30
+            "interval": <time-interval-in-sec>,
31
+            "limit": <max-request-number-in-interval>,
32
+            "subrules": [
33
+                {
34
+                    "name": "roboagent limit",
35
+                    "interval": <time-interval-in-sec>,
36
+                    "limit": <max-request-number-in-interval>,
37
+                    "filters": ["Header:User-Agent=(curl|cURL|Wget|python-requests|Scrapy|FeedFetcher|Go-http-client)"],
38
+                    "actions": [
39
+                        {"name": "block",
40
+                         "params": {"message": "Rate limit exceeded"}}
41
+                    ]
42
+                },
43
+                {
44
+                    "name": "botlimit",
45
+                    "limit": 0,
46
+                    "stop": true,
47
+                    "filters": ["Header:User-Agent=(Googlebot|bingbot|Baiduspider|yacybot|YandexMobileBot|YandexBot|Yahoo! Slurp|MJ12bot|AhrefsBot|archive.org_bot|msnbot|MJ12bot|SeznamBot|linkdexbot|Netvibes|SMTBot|zgrab|James BOT)"],
48
+                    "actions": [
49
+                        {"name": "block",
50
+                         "params": {"message": "Rate limit exceeded"}}
51
+                    ]
52
+                },
53
+                {
54
+                    "name": "IP limit",
55
+                    "interval": <time-interval-in-sec>,
56
+                    "limit": <max-request-number-in-interval>,
57
+                    "stop": true,
58
+                    "aggregations": ["Header:X-Forwarded-For"],
59
+                    "actions": [
60
+                        {"name": "block",
61
+                         "params": {"message": "Rate limit exceeded"}}
62
+                    ]
63
+                },
64
+                {
65
+                    "name": "rss/json limit",
66
+                    "interval": <time-interval-in-sec>,
67
+                    "limit": <max-request-number-in-interval>,
68
+                    "stop": true,
69
+                    "filters": ["Param:format=(csv|json|rss)"],
70
+                    "actions": [
71
+                        {"name": "block",
72
+                         "params": {"message": "Rate limit exceeded"}}
73
+                    ]
74
+                },
75
+                {
76
+                    "name": "useragent limit",
77
+                    "interval": <time-interval-in-sec>,
78
+                    "limit": <max-request-number-in-interval>,
79
+                    "aggregations": ["Header:User-Agent"],
80
+                    "actions": [
81
+                        {"name": "block",
82
+                         "params": {"message": "Rate limit exceeded"}}
83
+                    ]
84
+                }
85
+            ]
86
+        }
87
+    ]
88
+
89
+
90
+
91
+Route request through filtron
92
+-----------------------------
93
+
94
+Filtron can be started using the following command:
95
+
96
+.. code:: bash
97
+
98
+    $ filtron -rules rules.json
99
+
100
+It listens on 127.0.0.1:4004 and forwards filtered requests to 127.0.0.1:8888 by default.
101
+
102
+Use it along with ``nginx`` with the following example configuration.
103
+
104
+.. code:: bash
105
+
106
+    location / {
107
+        proxy_set_header        Host    $http_host;
108
+        proxy_set_header        X-Real-IP $remote_addr;
109
+        proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;
110
+        proxy_set_header        X-Scheme $scheme;
111
+        proxy_pass http://127.0.0.1:4004/;
112
+    }
113
+
114
+Requests are coming from port 4004 going through filtron and then forwarded to port 8888 where a searx is being run.

+ 21
- 0
_sources/admin/morty.rst.txt View File

1
+How to setup result proxy
2
+=========================
3
+
4
+By default searx can only act as an image proxy for result images,
5
+but it is possible to proxify all the result URLs with an external service,
6
+`morty <https://github.com/asciimoo/morty>`__.
7
+
8
+To use this feature, morty has to be installed and activated in searx's ``settings.yml``.
9
+
10
+Add the following snippet to your ``settings.yml`` and restart searx:
11
+
12
+
13
+.. code:: yaml
14
+
15
+    result_proxy:
16
+        url : http://127.0.0.1:3000/
17
+        key : your_morty_proxy_key
18
+
19
+``url`` is the address of the running morty service
20
+
21
+``key`` is an optional argument, see `morty's README <https://github.com/asciimoo/morty>`__ for more information.

+ 42
- 0
_sources/blog/admin.rst.txt View File

1
+Searx admin interface: manage your instance from your browser
2
+=============================================================
3
+
4
+One of the biggest advantages of searx is being extremely customizable. But at first it can be daunting to newcomers.
5
+A barrier of taking advantage of this feature is our ugly settings file which is sometimes hard to understand and edit.
6
+
7
+To make self-hosting searx more accessible a new tool is introduced, called ``searx-admin``.
8
+It is a web application which is capable of managing your instance and manipulating its settings via a web UI.
9
+It aims to replace editing of ``settings.yml`` for less experienced administrators or people
10
+who prefer graphical admin interfaces.
11
+
12
+.. figure:: searx-admin-engines.png
13
+    :scale: 50 %
14
+    :alt: Screenshot of engine list
15
+    :align: center
16
+    :figclass: align-center
17
+    
18
+    Configuration page of engines
19
+
20
+
21
+Since ``searx-admin`` acts as a supervisor for searx, we have decided to implement it
22
+as a standalone tool instead of part of searx. Another reason for making it a standalone
23
+tool is that the codebase and dependencies of searx should not grow because of a fully optional feature,
24
+which does not affect existing instances.
25
+
26
+
27
+Installation
28
+------------
29
+
30
+Installation guide can be found in the repository of searx-admin:
31
+https://github.com/kvch/searx-admin#installation--usage
32
+
33
+Acknowledgements
34
+----------------
35
+
36
+This development was sponsored by `NLnet Foundation`_.
37
+
38
+.. _NLnet Foundation: https://nlnet.nl/
39
+
40
+
41
+| Happy hacking.
42
+| kvch // 2017.08.22 21:25

+ 8
- 0
_sources/blog/blog.rst.txt View File

1
+Blog
2
+====
3
+
4
+.. toctree::
5
+   :maxdepth: 1
6
+
7
+   python3
8
+   admin

+ 54
- 0
_sources/blog/python3.rst.txt View File

1
+Introducing Python3 support
2
+===========================
3
+
4
+As most operation systems are coming with Python3 installed by default. So it is time for searx to support Python3. But don't worry support of Python2.7 won't be dropped.
5
+
6
+.. image:: searxpy3.png
7
+    :scale: 50 %
8
+    :alt: hurray
9
+    :align: center
10
+
11
+
12
+How to run searx using Python3
13
+------------------------------
14
+
15
+Please make sure that you run at least Python3.5.
16
+
17
+To run searx, first a Python3 virtualenv should be created. After entering the virtualenv,
18
+dependencies must be installed. Then run searx with python3 instead of the usual python command.
19
+
20
+.. code:: sh
21
+
22
+    virtualenv -p python3 venv3
23
+    source venv3/bin/activate
24
+    pip3 install -r requirements.txt
25
+    python3 searx/webapp.py
26
+
27
+
28
+If you want to run searx using Python2.7, you don't have to do anything differently as before.
29
+
30
+Fun facts
31
+---------
32
+
33
+- 115 files were changed when implementing the support for both Python versions.
34
+
35
+- All of the dependencies was compatible except for the robotframework used for browser tests. Thus, these tests were migrated to splinter. So from now on both versions are being tested on Travis and can be tested locally.
36
+
37
+If you found bugs...
38
+--------------------
39
+
40
+...please open an issue on `GitHub`_. Make sure that you mention your Python version in your issue,
41
+so we can investigate it properly.
42
+
43
+.. _GitHub: https://github.com/asciimoo/searx/issues
44
+
45
+Acknowledgement
46
+---------------
47
+
48
+This development was sponsored by `NLnet Foundation`_.
49
+
50
+.. _NLnet Foundation: https://nlnet.nl/
51
+
52
+
53
+| Happy hacking.
54
+| kvch // 2017.05.13 22:57

+ 98
- 0
_sources/dev/contribution_guide.rst.txt View File

1
+How to contribute
2
+-----------------
3
+
4
+Prime directives: Privacy, Hackability
5
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
6
+
7
+Searx has two prime directives, privacy-by-design and hackability. The
8
+hackability comes in three levels:
9
+
10
+-  support of search engines
11
+-  plugins to alter search behaviour
12
+-  hacking searx itself
13
+
14
+Note the lack of "world domination" among the directives.
15
+Searx has no intention of wide mass-adoption, rounded
16
+corners, etc. The prime directive "privacy" deserves a separate
17
+chapter, as it's quite uncommon unfortunately.
18
+
19
+Privacy-by-design
20
+^^^^^^^^^^^^^^^^^
21
+
22
+Searx was born out of the need for a privacy-respecting search tool
23
+which can be extended easily to maximize both its search and its
24
+privacy protecting capabilities.
25
+
26
+A few widely used features work differently or turned off by default or not implemented
27
+at all as a consequence of privacy-by-design.
28
+
29
+If a feature reduces the privacy preserving aspects of searx, it
30
+should be switched off by default or should not implemented at all.
31
+There are plenty of search engines already providing such features.
32
+If a feature reduces the protection of searx, users must be
33
+informed about the effect of choosing to enable it. Features
34
+that protect privacy but differ from the expectations of the
35
+user should also be explained.
36
+
37
+Also, if you think that something works weird with searx,
38
+it's might be because of the tool you use is designed in a way to interfere with
39
+the privacy respect. Submitting a bugreport to the vendor of the tool that
40
+misbehaves might be a good feedback to reconsider the disrespect to
41
+its customers (e.g. GET vs POST requests in various browsers).
42
+
43
+Remember the other prime directive of searx is to be hackable, so if the
44
+above privacy concerns do not fancy you, simply fork it.
45
+
46
+Happy hacking.
47
+
48
+Code
49
+~~~~
50
+
51
+In order to submit a patch, please follow the steps below:
52
+
53
+- Follow coding conventions.
54
+
55
+  - PEP8 standards apply, except the convention of line length
56
+
57
+  - Maximum line length is 120 characters
58
+
59
+- Check if your code breaks existing tests. If so, update the tests or fix your code.
60
+
61
+- If your code can be unit-tested, add unit tests.
62
+
63
+- Add yourself to the AUTHORS file.
64
+
65
+- Create a pull request.
66
+
67
+For more help on getting started with searx development, see :ref:`devquickstart`.
68
+
69
+
70
+Translation
71
+~~~~~~~~~~~
72
+
73
+Translation currently takes place on
74
+`transifex <https://transifex.com/projects/p/searx>`__.
75
+
76
+**Please, do not update translation files in the repo.**
77
+
78
+Documentation
79
+~~~~~~~~~~~~~
80
+
81
+The documentation is built using Sphinx. So in order to be able to generate the required
82
+files, you have to install it on your system. (It can be installed easily using pip.)
83
+
84
+1. Checkout the gh-pages branch.
85
+
86
+2. Edit the rst file you wish to update. Or create a new rst file and place it under the appropriate folder.
87
+
88
+3. Build the documentation using Sphinx.
89
+
90
+4. Add the updated and created files of these extension:
91
+
92
+   - .rst
93
+
94
+   - .html
95
+
96
+   - .txt
97
+
98
+6. Create a pull request.

+ 313
- 0
_sources/dev/engine_overview.rst.txt View File

1
+Engine overview
2
+===============
3
+
4
+
5
+searx is a `metasearch-engine <https://en.wikipedia.org/wiki/Metasearch_engine>`__,
6
+so it uses different search engines to provide better results.
7
+
8
+Because there is no general search API which could be used for every
9
+search engine, an adapter has to be built between searx and the
10
+external search engines. Adapters are stored under the folder
11
+`searx/engines
12
+<https://github.com/asciimoo/searx/tree/master/searx/engines>`__.
13
+
14
+
15
+.. contents::
16
+   :depth: 3
17
+
18
+general engine configuration
19
+----------------------------
20
+
21
+It is required to tell searx the type of results the engine provides. The
22
+arguments can be set in the engine file or in the settings file
23
+(normally ``settings.yml``). The arguments in the settings file override
24
+the ones in the engine file.
25
+
26
+It does not matter if an option is stored in the engine file or in the
27
+settings. However, the standard way is the following:
28
+
29
+
30
+engine file
31
+~~~~~~~~~~~
32
+
33
++----------------------+-----------+-----------------------------------------+
34
+| argument             | type      | information                             |
35
++======================+===========+=========================================+
36
+| categories           | list      | pages, in which the engine is working   |
37
++----------------------+-----------+-----------------------------------------+
38
+| paging               | boolean   | support multible pages                  |
39
++----------------------+-----------+-----------------------------------------+
40
+| language\_support    | boolean   | support language choosing               |
41
++----------------------+-----------+-----------------------------------------+
42
+| time\_range\_support | boolean   | support search time range               |
43
++----------------------+-----------+-----------------------------------------+
44
+
45
+settings.yml
46
+~~~~~~~~~~~~
47
+
48
++------------+----------+-----------------------------------------------+
49
+| argument   | type     | information                                   |
50
++============+==========+===============================================+
51
+| name       | string   | name of search-engine                         |
52
++------------+----------+-----------------------------------------------+
53
+| engine     | string   | name of searx-engine (filename without .py)   |
54
++------------+----------+-----------------------------------------------+
55
+| shortcut   | string   | shortcut of search-engine                     |
56
++------------+----------+-----------------------------------------------+
57
+| timeout    | string   | specific timeout for search-engine            |
58
++------------+----------+-----------------------------------------------+
59
+
60
+overrides
61
+~~~~~~~~~
62
+
63
+A few of the options have default values in the engine, but are
64
+often overwritten by the settings. If ``None`` is assigned to an option
65
+in the engine file, it has to be redefined in the settings,
66
+otherwise searx will not start with that engine.
67
+
68
+The naming of overrides is arbitrary. But the recommended
69
+overrides are the following:
70
+
71
++-----------------------+----------+----------------------------------------------------------------+
72
+| argument              | type     | information                                                    |
73
++=======================+==========+================================================================+
74
+| base\_url             | string   | base-url, can be overwritten to use same engine on other URL   |
75
++-----------------------+----------+----------------------------------------------------------------+
76
+| number\_of\_results   | int      | maximum number of results per request                          |
77
++-----------------------+----------+----------------------------------------------------------------+
78
+| language              | string   | ISO code of language and country like en\_US                   |
79
++-----------------------+----------+----------------------------------------------------------------+
80
+| api\_key              | string   | api-key if required by engine                                  |
81
++-----------------------+----------+----------------------------------------------------------------+
82
+
83
+example code
84
+~~~~~~~~~~~~
85
+
86
+.. code:: python
87
+
88
+    # engine dependent config
89
+    categories = ['general']
90
+    paging = True
91
+    language_support = True
92
+
93
+making a request
94
+----------------
95
+
96
+To perform a search an URL have to be specified. In addition to
97
+specifying an URL, arguments can be passed to the query.
98
+
99
+passed arguments
100
+~~~~~~~~~~~~~~~~
101
+
102
+These arguments can be used to construct the search query. Furthermore,
103
+parameters with default value can be redefined for special purposes.
104
+
105
++----------------------+------------+------------------------------------------------------------------------+
106
+| argument             | type       | default-value, information                                             |
107
++======================+============+========================================================================+
108
+| url                  | string     | ``''``                                                                 |
109
++----------------------+------------+------------------------------------------------------------------------+
110
+| method               | string     | ``'GET'``                                                              |
111
++----------------------+------------+------------------------------------------------------------------------+
112
+| headers              | set        | ``{}``                                                                 |
113
++----------------------+------------+------------------------------------------------------------------------+
114
+| data                 | set        | ``{}``                                                                 |
115
++----------------------+------------+------------------------------------------------------------------------+
116
+| cookies              | set        | ``{}``                                                                 |
117
++----------------------+------------+------------------------------------------------------------------------+
118
+| verify               | boolean    | ``True``                                                               |
119
++----------------------+------------+------------------------------------------------------------------------+
120
+| headers.User-Agent   | string     | a random User-Agent                                                    |
121
++----------------------+------------+------------------------------------------------------------------------+
122
+| category             | string     | current category, like ``'general'``                                   |
123
++----------------------+------------+------------------------------------------------------------------------+
124
+| started              | datetime   | current date-time                                                      |
125
++----------------------+------------+------------------------------------------------------------------------+
126
+| pageno               | int        | current pagenumber                                                     |
127
++----------------------+------------+------------------------------------------------------------------------+
128
+| language             | string     | specific language code like ``'en_US'``, or ``'all'`` if unspecified   |
129
++----------------------+------------+------------------------------------------------------------------------+
130
+
131
+parsed arguments
132
+~~~~~~~~~~~~~~~~
133
+
134
+The function ``def request(query, params):`` always returns the
135
+``params`` variable. Inside searx, the following paramters can be
136
+used to specify a search request:
137
+
138
++------------+-----------+---------------------------------------------------------+
139
+| argument   | type      | information                                             |
140
++============+===========+=========================================================+
141
+| url        | string    | requested url                                           |
142
++------------+-----------+---------------------------------------------------------+
143
+| method     | string    | HTTP request method                                     |
144
++------------+-----------+---------------------------------------------------------+
145
+| headers    | set       | HTTP header information                                 |
146
++------------+-----------+---------------------------------------------------------+
147
+| data       | set       | HTTP data information (parsed if ``method != 'GET'``)   |
148
++------------+-----------+---------------------------------------------------------+
149
+| cookies    | set       | HTTP cookies                                            |
150
++------------+-----------+---------------------------------------------------------+
151
+| verify     | boolean   | Performing SSL-Validity check                           |
152
++------------+-----------+---------------------------------------------------------+
153
+
154
+example code
155
+~~~~~~~~~~~~
156
+
157
+.. code:: python
158
+
159
+    # search-url
160
+    base_url = 'https://example.com/'
161
+    search_string = 'search?{query}&page={page}'
162
+
163
+    # do search-request
164
+    def request(query, params):
165
+        search_path = search_string.format(
166
+            query=urlencode({'q': query}),
167
+            page=params['pageno'])
168
+
169
+        params['url'] = base_url + search_path
170
+
171
+        return params
172
+
173
+returned results
174
+----------------
175
+
176
+Searx is able to return results of different media-types.
177
+Currently the following media-types are supported:
178
+
179
+-  default
180
+-  images
181
+-  videos
182
+-  torrent
183
+-  map
184
+
185
+To set another media-type as default, the parameter
186
+``template`` must be set to the desired type.
187
+
188
+default
189
+~~~~~~~
190
+
191
++--------------------+---------------------------------------------------------------------------------------------------------------+
192
+| result-parameter   | information                                                                                                   |
193
++====================+===============================================================================================================+
194
+| url                | string, url of the result                                                                                     |
195
++--------------------+---------------------------------------------------------------------------------------------------------------+
196
+| title              | string, title of the result                                                                                   |
197
++--------------------+---------------------------------------------------------------------------------------------------------------+
198
+| content            | string, general result-text                                                                                   |
199
++--------------------+---------------------------------------------------------------------------------------------------------------+
200
+| publishedDate      | `datetime.datetime <https://docs.python.org/2/library/datetime.html#datetime-objects>`__, time of publish     |
201
++--------------------+---------------------------------------------------------------------------------------------------------------+
202
+
203
+images
204
+~~~~~~
205
+
206
+to use this template, the parameter
207
+
208
++--------------------+---------------------------------------------------------------------------------------------------------------------------------------+
209
+| result-parameter   | information                                                                                                                           |
210
++====================+=======================================================================================================================================+
211
+| template           | is set to ``images.html``                                                                                                             |
212
++--------------------+---------------------------------------------------------------------------------------------------------------------------------------+
213
+| url                | string, url to the result site                                                                                                        |
214
++--------------------+---------------------------------------------------------------------------------------------------------------------------------------+
215
+| title              | string, title of the result *(partly implemented)*                                                                                    |
216
++--------------------+---------------------------------------------------------------------------------------------------------------------------------------+
217
+| content            | *(partly implemented)*                                                                                                                |
218
++--------------------+---------------------------------------------------------------------------------------------------------------------------------------+
219
+| publishedDate      | `datetime.datetime <https://docs.python.org/2/library/datetime.html#datetime-objects>`__, time of publish *(partly implemented)*      |
220
++--------------------+---------------------------------------------------------------------------------------------------------------------------------------+
221
+| img\_src           | string, url to the result image                                                                                                       |
222
++--------------------+---------------------------------------------------------------------------------------------------------------------------------------+
223
+| thumbnail\_src     | string, url to a small-preview image                                                                                                  |
224
++--------------------+---------------------------------------------------------------------------------------------------------------------------------------+
225
+
226
+videos
227
+~~~~~~
228
+
229
++--------------------+--------------------------------------------------------------------------------------------------------------+
230
+| result-parameter   | information                                                                                                  |
231
++====================+==============================================================================================================+
232
+| template           | is set to ``videos.html``                                                                                    |
233
++--------------------+--------------------------------------------------------------------------------------------------------------+
234
+| url                | string, url of the result                                                                                    |
235
++--------------------+--------------------------------------------------------------------------------------------------------------+
236
+| title              | string, title of the result                                                                                  |
237
++--------------------+--------------------------------------------------------------------------------------------------------------+
238
+| content            | *(not implemented yet)*                                                                                      |
239
++--------------------+--------------------------------------------------------------------------------------------------------------+
240
+| publishedDate      | `datetime.datetime <https://docs.python.org/2/library/datetime.html#datetime-objects>`__, time of publish    |
241
++--------------------+--------------------------------------------------------------------------------------------------------------+
242
+| thumbnail          | string, url to a small-preview image                                                                         |
243
++--------------------+--------------------------------------------------------------------------------------------------------------+
244
+
245
+torrent
246
+~~~~~~~
247
+
248
++------------------+---------------------------------------------------------------------------------------------------------------------------------------+
249
+| result-parameter | information                                                                                                                           |
250
++==================+=======================================================================================================================================+
251
+| template         | is set to ``torrent.html``                                                                                                            |
252
++------------------+---------------------------------------------------------------------------------------------------------------------------------------+
253
+| url              | string, url of the result                                                                                                             |
254
++------------------+---------------------------------------------------------------------------------------------------------------------------------------+
255
+| title            | string, title of the result                                                                                                           |
256
++------------------+---------------------------------------------------------------------------------------------------------------------------------------+
257
+| content          | string, general result-text                                                                                                           |
258
++------------------+---------------------------------------------------------------------------------------------------------------------------------------+
259
+| publishedDate    | `datetime.datetime <https://docs.python.org/2/library/datetime.html#datetime-objects>`__, time of publish *(not implemented yet)*     |
260
++------------------+---------------------------------------------------------------------------------------------------------------------------------------+
261
+| seed             | int, number of seeder                                                                                                                 |
262
++------------------+---------------------------------------------------------------------------------------------------------------------------------------+
263
+| leech            | int, number of leecher                                                                                                                |
264
++------------------+---------------------------------------------------------------------------------------------------------------------------------------+
265
+| filesize         | int, size of file in bytes                                                                                                            |
266
++------------------+---------------------------------------------------------------------------------------------------------------------------------------+
267
+| files            | int, number of files                                                                                                                  |
268
++------------------+---------------------------------------------------------------------------------------------------------------------------------------+
269
+| magnetlink       | string, `magnetlink <https://en.wikipedia.org/wiki/Magnet_URI_scheme>`__ of the result                                                |
270
++------------------+---------------------------------------------------------------------------------------------------------------------------------------+
271
+| torrentfile      | string, torrentfile of the result                                                                                                     |
272
++------------------+---------------------------------------------------------------------------------------------------------------------------------------+
273
+
274
+
275
+map
276
+~~~
277
+
278
++-------------------------+--------------------------------------------------------------------------------------------------------------+
279
+| result-parameter        | information                                                                                                  |
280
++=========================+==============================================================================================================+
281
+| url                     | string, url of the result                                                                                    |
282
++-------------------------+--------------------------------------------------------------------------------------------------------------+
283
+| title                   | string, title of the result                                                                                  |
284
++-------------------------+--------------------------------------------------------------------------------------------------------------+
285
+| content                 | string, general result-text                                                                                  |
286
++-------------------------+--------------------------------------------------------------------------------------------------------------+
287
+| publishedDate           | `datetime.datetime <https://docs.python.org/2/library/datetime.html#datetime-objects>`__, time of publish    |
288
++-------------------------+--------------------------------------------------------------------------------------------------------------+
289
+| latitude                | latitude of result (in decimal format)                                                                       |
290
++-------------------------+--------------------------------------------------------------------------------------------------------------+
291
+| longitude               | longitude of result (in decimal format)                                                                      |
292
++-------------------------+--------------------------------------------------------------------------------------------------------------+
293
+| boundingbox             | boundingbox of result (array of 4. values ``[lat-min, lat-max, lon-min, lon-max]``)                          |
294
++-------------------------+--------------------------------------------------------------------------------------------------------------+
295
+| geojson                 | geojson of result (http://geojson.org)                                                                       |
296
++-------------------------+--------------------------------------------------------------------------------------------------------------+
297
+| osm.type                | type of osm-object (if OSM-Result)                                                                           |
298
++-------------------------+--------------------------------------------------------------------------------------------------------------+
299
+| osm.id                  | id of osm-object (if OSM-Result)                                                                             |
300
++-------------------------+--------------------------------------------------------------------------------------------------------------+
301
+| address.name            | name of object                                                                                               |
302
++-------------------------+--------------------------------------------------------------------------------------------------------------+
303
+| address.road            | street name of object                                                                                        |
304
++-------------------------+--------------------------------------------------------------------------------------------------------------+
305
+| address.house\_number   | house number of object                                                                                       |
306
++-------------------------+--------------------------------------------------------------------------------------------------------------+
307
+| address.locality        | city, place of object                                                                                        |
308
++-------------------------+--------------------------------------------------------------------------------------------------------------+
309
+| address.postcode        | postcode of object                                                                                           |
310
++-------------------------+--------------------------------------------------------------------------------------------------------------+
311
+| address.country         | country of object                                                                                            |
312
++-------------------------+--------------------------------------------------------------------------------------------------------------+
313
+

+ 323
- 0
_sources/dev/install/installation.rst.txt View File

1
+.. _installation:
2
+
3
+Installation
4
+============
5
+
6
+.. contents::
7
+   :depth: 3
8
+
9
+Basic installation
10
+------------------
11
+
12
+Step by step installation for Debian/Ubuntu with virtualenv. For Ubuntu, be sure to have enable universe repository.
13
+
14
+Install packages:
15
+
16
+.. code:: sh
17
+
18
+    sudo apt-get install git build-essential libxslt-dev python-dev python-virtualenv virtualenv python-babel zlib1g-dev libffi-dev libssl-dev
19
+
20
+Install searx:
21
+
22
+.. code:: sh
23
+
24
+    cd /usr/local
25
+    sudo git clone https://github.com/asciimoo/searx.git
26
+    sudo useradd searx -d /usr/local/searx
27
+    sudo chown searx:searx -R /usr/local/searx
28
+
29
+Install dependencies in a virtualenv:
30
+
31
+.. code:: sh
32
+
33
+    sudo -u searx -i
34
+    cd /usr/local/searx
35
+    virtualenv searx-ve
36
+    . ./searx-ve/bin/activate
37
+    ./manage.sh update_packages
38
+
39
+Configuration
40
+-------------
41
+
42
+.. code:: sh
43
+
44
+    sed -i -e "s/ultrasecretkey/`openssl rand -hex 16`/g" searx/settings.yml
45
+
46
+Edit searx/settings.yml if necessary.
47
+
48
+Check
49
+-----
50
+
51
+Start searx:
52
+
53
+.. code:: sh
54
+
55
+    python searx/webapp.py
56
+
57
+Go to http://localhost:8888
58
+
59
+If everything works fine, disable the debug option in settings.yml:
60
+
61
+.. code:: sh
62
+
63
+    sed -i -e "s/debug : True/debug : False/g" searx/settings.yml
64
+
65
+At this point searx is not demonized ; uwsgi allows this.
66
+
67
+You can exit the virtualenv and the searx user bash (enter exit command
68
+twice).
69
+
70
+uwsgi
71
+-----
72
+
73
+Install packages:
74
+
75
+.. code:: sh
76
+
77
+    sudo apt-get install uwsgi uwsgi-plugin-python
78
+
79
+Create the configuration file /etc/uwsgi/apps-available/searx.ini with
80
+this content:
81
+
82
+::
83
+
84
+    [uwsgi]
85
+    # Who will run the code
86
+    uid = searx
87
+    gid = searx
88
+
89
+    # disable logging for privacy
90
+    disable-logging = true
91
+
92
+    # Number of workers (usually CPU count)
93
+    workers = 4
94
+
95
+    # The right granted on the created socket
96
+    chmod-socket = 666
97
+
98
+    # Plugin to use and interpretor config
99
+    single-interpreter = true
100
+    master = true
101
+    plugin = python
102
+    lazy-apps = true
103
+    enable-threads = true
104
+
105
+    # Module to import
106
+    module = searx.webapp
107
+
108
+    # Virtualenv and python path
109
+    virtualenv = /usr/local/searx/searx-ve/
110
+    pythonpath = /usr/local/searx/
111
+    chdir = /usr/local/searx/searx/
112
+
113
+Activate the uwsgi application and restart:
114
+
115
+.. code:: sh
116
+
117
+    cd /etc/uwsgi/apps-enabled
118
+    ln -s ../apps-available/searx.ini
119
+    /etc/init.d/uwsgi restart
120
+
121
+Web server
122
+----------
123
+
124
+with nginx
125
+^^^^^^^^^^
126
+
127
+If nginx is not installed (uwsgi will not work with the package
128
+nginx-light):
129
+
130
+.. code:: sh
131
+
132
+    sudo apt-get install nginx
133
+
134
+Hosted at /
135
+"""""""""""
136
+
137
+Create the configuration file /etc/nginx/sites-available/searx with this
138
+content:
139
+
140
+.. code:: nginx
141
+
142
+    server {
143
+        listen 80;
144
+        server_name searx.example.com;
145
+        root /usr/local/searx;
146
+
147
+        location / {
148
+                include uwsgi_params;
149
+                uwsgi_pass unix:/run/uwsgi/app/searx/socket;
150
+        }
151
+    }
152
+
153
+Restart service:
154
+
155
+.. code:: sh
156
+
157
+    sudo service nginx restart
158
+    sudo service uwsgi restart
159
+
160
+from subdirectory URL (/searx)
161
+""""""""""""""""""""""""""""""
162
+
163
+Add this configuration in the server config file
164
+/etc/nginx/sites-enabled/default:
165
+
166
+.. code:: nginx
167
+
168
+    location = /searx { rewrite ^ /searx/; }
169
+    location /searx {
170
+            try_files $uri @searx;
171
+    }
172
+    location @searx {
173
+            uwsgi_param SCRIPT_NAME /searx;
174
+            include uwsgi_params;
175
+            uwsgi_modifier1 30;
176
+            uwsgi_pass unix:/run/uwsgi/app/searx/socket;
177
+    }
178
+
179
+
180
+OR
181
+
182
+using reverse proxy
183
+(Please, note that reverse proxy advised to be used in case of single-user or low-traffic instances.)
184
+
185
+.. code:: nginx
186
+
187
+    location /searx {
188
+        proxy_pass http://127.0.0.1:8888;
189
+        proxy_set_header Host $host;
190
+        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
191
+        proxy_set_header X-Scheme $scheme;
192
+        proxy_set_header X-Script-Name /searx;
193
+        proxy_buffering off;
194
+    }
195
+
196
+
197
+Enable base\_url in searx/settings.yml
198
+
199
+::
200
+
201
+    base_url : http://your.domain.tld/searx/
202
+
203
+Restart service:
204
+
205
+.. code:: sh
206
+
207
+    sudo service nginx restart
208
+    sudo service uwsgi restart
209
+
210
+disable logs
211
+~~~~~~~~~~~~
212
+
213
+for better privacy you can disable nginx logs about searx.
214
+
215
+how to proceed: below ``uwsgi_pass`` in
216
+/etc/nginx/sites-available/default add
217
+
218
+::
219
+
220
+    access_log /dev/null;
221
+    error_log /dev/null;
222
+
223
+Restart service:
224
+
225
+.. code:: sh
226
+
227
+    sudo service nginx restart
228
+
229
+with apache
230
+^^^^^^^^^^^
231
+
232
+Add wsgi mod:
233
+
234
+.. code:: sh
235
+
236
+    sudo apt-get install libapache2-mod-uwsgi
237
+    sudo a2enmod uwsgi
238
+
239
+Add this configuration in the file /etc/apache2/apache2.conf:
240
+
241
+.. code:: apache
242
+
243
+    <Location />
244
+        Options FollowSymLinks Indexes
245
+        SetHandler uwsgi-handler
246
+        uWSGISocket /run/uwsgi/app/searx/socket
247
+    </Location>
248
+
249
+Note that if your instance of searx is not at the root, you should
250
+change ``<Location />`` by the location of your instance, like
251
+``<Location /searx>``.
252
+
253
+Restart Apache:
254
+
255
+.. code:: sh
256
+
257
+    sudo /etc/init.d/apache2 restart
258
+
259
+disable logs
260
+""""""""""""
261
+
262
+For better privacy you can disable Apache logs.
263
+
264
+WARNING: not tested
265
+
266
+WARNING: you can only disable logs for the whole (virtual) server not
267
+for a specific path.
268
+
269
+Go back to /etc/apache2/apache2.conf and above ``<Location />`` add:
270
+
271
+.. code:: apache
272
+
273
+    CustomLog /dev/null combined
274
+
275
+Restart Apache:
276
+
277
+.. code:: sh
278
+
279
+    sudo /etc/init.d/apache2 restart
280
+
281
+How to update
282
+-------------
283
+
284
+.. code:: sh
285
+
286
+    cd /usr/local/searx
287
+    sudo -u searx -i
288
+    . ./searx-ve/bin/activate
289
+    git stash
290
+    git pull origin master
291
+    git stash apply
292
+    ./manage.sh update_packages
293
+    sudo service uwsgi restart
294
+
295
+Docker
296
+------
297
+
298
+Make sure you have installed Docker. For instance, you can deploy searx like this:
299
+
300
+.. code:: sh
301
+
302
+    docker pull wonderfall/searx
303
+    docker run -d --name searx -p $PORT:8888 wonderfall/searx
304
+
305
+Go to http://localhost:$PORT.
306
+
307
+See https://hub.docker.com/r/wonderfall/searx/ for more informations.
308
+
309
+It's also possible to build searx from the embedded Dockerfile.
310
+
311
+.. code:: sh
312
+
313
+    git clone https://github.com/asciimoo/searx.git
314
+    cd searx
315
+    docker build -t whatever/searx .
316
+
317
+References
318
+==========
319
+
320
+    * https://about.okhin.fr/posts/Searx/ with some additions
321
+
322
+    * How to: `Setup searx in a couple of hours with a free SSL certificate <https://www.reddit.com/r/privacytoolsIO/comments/366kvn/how_to_setup_your_own_privacy_respecting_search/>`__
323
+

+ 1
- 1
_sources/dev/install/installation.txt View File

15
 
15
 
16
 .. code:: sh
16
 .. code:: sh
17
 
17
 
18
-    sudo apt-get install git build-essential libxslt-dev python-dev python-virtualenv python-pybabel zlib1g-dev libffi-dev libssl-dev
18
+    sudo apt-get install git build-essential libxslt-dev python-dev python-virtualenv virtualenv python-pybabel zlib1g-dev libffi-dev libssl-dev
19
 
19
 
20
 Install searx:
20
 Install searx:
21
 
21
 

+ 45
- 0
_sources/dev/plugins.rst.txt View File

1
+Plugins
2
+-------
3
+
4
+Plugins can extend or replace functionality of various components of
5
+searx.
6
+
7
+Example plugin
8
+~~~~~~~~~~~~~~
9
+
10
+.. code:: python
11
+
12
+    name = 'Example plugin'
13
+    description = 'This plugin extends the suggestions with the word "example"'
14
+    default_on = False  # disabled by default
15
+
16
+    js_dependencies = tuple()  # optional, list of static js files
17
+    css_dependencies = tuple()  # optional, list of static css files
18
+
19
+
20
+    # attach callback to the post search hook
21
+    #  request: flask request object
22
+    #  ctx: the whole local context of the post search hook
23
+    def post_search(request, ctx):
24
+        ctx['search'].suggestions.add('example')
25
+        return True
26
+
27
+Plugin entry points
28
+~~~~~~~~~~~~~~~~~~~
29
+
30
+Entry points (hooks) define when a plugin runs. Right now only three hooks are implemented. So feel free to implement a hook if it fits the behaviour of your plugin.
31
+
32
+Pre search hook
33
+```````````````
34
+
35
+Runs BEFORE the search request. Function to implement: ``pre_search``
36
+
37
+Post search hook
38
+````````````````
39
+
40
+Runs AFTER the search request. Function to implement: ``post_search``
41
+
42
+Result hook
43
+```````````
44
+
45
+Runs when a new result is added to the result list. Function to implement: ``on_result``

+ 108
- 0
_sources/dev/quickstart.rst.txt View File

1
+.. _devquickstart:
2
+
3
+Development Quickstart
4
+----------------------
5
+
6
+This quickstart guide gets your environment set up with searx. Furthermore, it gives a
7
+short introduction to the new manage.sh script.
8
+
9
+How to setup your development environment
10
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
11
+
12
+First, clone the source code of searx to the desired folder. In this case the source
13
+is cloned to ~/myprojects/searx. Then create and activate the searx-ve
14
+virtualenv and install the required packages using manage.sh.
15
+
16
+.. code:: sh
17
+
18
+    cd ~/myprojects
19
+    git clone https://github.com/asciimoo/searx.git
20
+    cd searx
21
+    virtualenv searx-ve
22
+    . ./searx-ve/bin/activate
23
+    ./manage.sh update_dev_packages
24
+
25
+
26
+How to run tests
27
+~~~~~~~~~~~~~~~~
28
+
29
+Tests can be run using the manage.sh script.
30
+
31
+Following tests and checks are available:
32
+
33
+- Unit tests
34
+
35
+- Selenium tests
36
+
37
+- PEP8 validation
38
+
39
+- Unit test coverage check
40
+
41
+For example unit tests are run with the command below:
42
+
43
+.. code:: sh
44
+
45
+    ./manage.sh unit_tests
46
+
47
+For further test options, please consult the help of the manage.sh script.
48
+
49
+
50
+How to compile styles and javascript
51
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
52
+
53
+How to build styles
54
+^^^^^^^^^^^^^^^^^^^
55
+
56
+Less is required to build the styles of searx. Less can be installed using either NodeJS or Apt.
57
+
58
+.. code:: sh
59
+
60
+    sudo apt-get install nodejs
61
+    sudo npm install -g less
62
+
63
+
64
+OR
65
+
66
+.. code:: sh
67
+
68
+    sudo apt-get install node-less
69
+
70
+After satisfying the requirements styles can be build using manage.sh
71
+
72
+.. code:: sh
73
+
74
+    ./manage.sh styles
75
+
76
+
77
+How to build the source of the oscar theme
78
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
79
+
80
+Grunt must be installed in order to build the javascript sources. It depends on NodeJS, so first
81
+Node has to be installed.
82
+
83
+.. code:: sh
84
+
85
+    sudo apt-get install nodejs
86
+    sudo npm install -g grunt-cli
87
+
88
+After installing grunt, the files can be built using the following command: 
89
+
90
+.. code:: sh
91
+
92
+    ./manage.sh build_grunt
93
+
94
+
95
+
96
+Tips for debugging/development
97
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
98
+
99
+1. Turn on debug logging
100
+    Whether you are working on a new engine or trying to eliminate a bug, it is always a good idea
101
+    to turn on debug logging. When debug logging is enabled a stack trace appears,
102
+    instead of the cryptic ``Internal Server Error`` message. It can be turned on by setting
103
+    ``debug: False`` to ``debug: True`` in settings.yml.
104
+
105
+2. Run ``./manage.sh tests`` before creating a PR.
106
+    Failing build on Travis is common because of PEP8 checks. So a new commit must be created
107
+    containing these format fixes. This phase can be skipped if ``./manage.sh tests`` is run
108
+    locally before creating a PR.

+ 204
- 0
_sources/dev/search_api.rst.txt View File

1
+Search API
2
+==========
3
+
4
+The search supports both ``GET`` and ``POST``.
5
+
6
+Furthermore, two enpoints ``/`` and ``/search`` are available for querying.
7
+
8
+
9
+``GET /``
10
+
11
+``GET /search``
12
+
13
+Parameters
14
+~~~~~~~~~~
15
+
16
+.. code:: sh
17
+
18
+    q
19
+
20
+The search query. This string is passed to external search services.
21
+Thus, searx supports syntax of each search service. For example, ``site:github.com searx`` is a valid
22
+query for Google. However, if simply the query above is passed to any search engine which does not filter its
23
+results based on this syntax, you might not get the results you wanted.
24
+
25
+
26
+See more at :doc:`/user/search_syntax`
27
+
28
+Required.
29
+
30
+.. code:: sh
31
+
32
+    categories
33
+
34
+Comma separated list, specifies the active search categories
35
+
36
+Optional.
37
+
38
+.. code:: sh
39
+
40
+    engines
41
+
42
+Comma separated list, specifies the active search engines.
43
+
44
+Optional.
45
+
46
+.. code:: sh
47
+
48
+    lang
49
+
50
+Code of the language.
51
+
52
+Optional.
53
+
54
+Default: ``all``
55
+
56
+.. code:: sh
57
+
58
+    pageno
59
+
60
+Search page number.
61
+
62
+Optional.
63
+
64
+Default: ``1``
65
+
66
+.. code:: sh
67
+
68
+    time_range
69
+
70
+Time range of search for engines which support it. See if an engine supports time range search in the preferences page of an instance.
71
+
72
+Optional.
73
+
74
+Possible: ``day``, ``month``, ``year``
75
+
76
+.. code:: sh
77
+
78
+    format
79
+
80
+Output format of results.
81
+
82
+Optional.
83
+
84
+Possible: ``json``, ``csv``, ``rss``
85
+
86
+.. code:: sh
87
+
88
+    results_on_new_tab
89
+
90
+Open search results on new tab.
91
+
92
+Optional.
93
+
94
+Default: ``0``
95
+
96
+Possible: ``0``, ``1``
97
+
98
+.. code:: sh
99
+
100
+    image_proxy
101
+
102
+Proxy image results through searx.
103
+
104
+Optional.
105
+
106
+Default: ``False``
107
+
108
+Possible: ``True``, ``False``
109
+
110
+.. code:: sh
111
+
112
+    autocomplete
113
+
114
+Service which completes words as you type.
115
+
116
+Optional.
117
+
118
+Default: empty
119
+
120
+Possible: ``google``, ``dbpedia``, ``duckduckgo``, ``startpage``, ``wikipedia``
121
+
122
+.. code:: sh
123
+
124
+    safesearch
125
+
126
+Filter search results of engines which support safe search. See if an engine supports safe search in the preferences page of an instance.
127
+
128
+Optional.
129
+
130
+Default: ``None``
131
+
132
+Possible: ``0``, ``1``, ``None``
133
+
134
+.. code:: sh
135
+
136
+    theme
137
+
138
+Theme of instance.
139
+
140
+Optional.
141
+
142
+Default: ``oscar``
143
+
144
+Possible: ``oscar``, ``simple``, ``legacy``, ``pix-art``, ``courgette``
145
+
146
+Please note, available themes depend on an instance. It is possible that an instance administrator deleted, created or renamed themes on his/her instance. See the available options in the preferences page of the instance.
147
+
148
+.. code:: sh
149
+
150
+    oscar-style
151
+
152
+Style of Oscar theme. It is only parsed if the theme of an instance is ``oscar``.
153
+
154
+Optional.
155
+
156
+Default: ``logicodev``
157
+
158
+Possible: ``pointhi``, ``logicodev``
159
+
160
+Please note, available styles depend on an instance. It is possible that an instance administrator deleted, created or renamed styles on his/her instance. See the available options in the preferences page of the instance.
161
+
162
+.. code:: sh
163
+
164
+    enabled_plugins
165
+
166
+List of enabled plugins.
167
+
168
+Optional.
169
+
170
+Default: ``HTTPS_rewrite``, ``Self_Informations``, ``Search_on_category_select``, ``Tracker_URL_remover``
171
+
172
+Possible: ``DOAI_rewrite``, ``HTTPS_rewrite``, ``Infinite_scroll``, ``Vim-like_hotkeys``, ``Self_Informations``, ``Tracker_URL_remover``, ``Search_on_category_select``
173
+
174
+.. code:: sh
175
+
176
+    disabled_plugins
177
+
178
+List of disabled plugins.
179
+
180
+Optional.
181
+
182
+Default: ``DOAI_rewrite``, ``Infinite_scroll``, ``Vim-like_hotkeys``
183
+
184
+Possible: ``DOAI_rewrite``, ``HTTPS_rewrite``, ``Infinite_scroll``, ``Vim-like_hotkeys``, ``Self_Informations``, ``Tracker_URL_remover``, ``Search_on_category_select``
185
+
186
+.. code:: sh
187
+
188
+    enabled_engines
189
+
190
+List of enabled engines.
191
+
192
+Optional.
193
+
194
+Possible:  all engines
195
+
196
+.. code:: sh
197
+
198
+    disabled_engines
199
+
200
+List of disabled engines.
201
+
202
+Optional.
203
+
204
+Possible: all engines

+ 61
- 0
_sources/dev/translation.rst.txt View File

1
+Translation
2
+===========
3
+
4
+Requirements
5
+------------
6
+
7
+ * Transifex account
8
+
9
+ * Installed CLI tool of Transifex
10
+
11
+Init Transifex project
12
+----------------------
13
+
14
+After installing ``transifex`` using pip, run the following command to initialize the project.
15
+
16
+.. code:: shell
17
+
18
+    tx init # Transifex instance: https://www.transifex.com/asciimoo/searx/
19
+
20
+
21
+After ``$HOME/.transifexrc`` is created, get a Transifex API key and insert it into the configuration file.
22
+
23
+Create a configuration file for ``tx`` named ``$HOME/.tx/config``.
24
+
25
+.. code:: shell
26
+
27
+    [main]
28
+    host = https://www.transifex.com
29
+    [searx.messagespo]
30
+    file_filter = searx/translations/<lang>/LC_MESSAGES/messages.po
31
+    source_file = messages.pot
32
+    source_lang = en
33
+    type = PO
34
+
35
+
36
+Then run ``tx set``:
37
+
38
+.. code:: shell
39
+
40
+    tx set --auto-local -r searx.messagespo 'searx/translations/<lang>/LC_MESSAGES/messages.po' \
41
+    --source-lang en --type PO --source-file messages.pot --execute
42
+
43
+
44
+Update translations
45
+-------------------
46
+
47
+To retrieve the latest translations, pull it from Transifex.
48
+
49
+.. code:: shell
50
+
51
+    tx pull -a
52
+
53
+Then check the new languages. If strings translated are not enough, delete those folders, because
54
+those should not be compiled. Call the command below to compile the ``.po`` files.
55
+
56
+.. code:: shell
57
+
58
+    pybabel compile -d searx/translations
59
+
60
+
61
+After the compilation is finished commit the ``.po`` and ``.mo`` files and create a PR.

+ 56
- 0
_sources/index.rst.txt View File

1
+Welcome to searx
2
+================
3
+
4
+Search without being tracked.
5
+
6
+Searx is a free internet metasearch engine which aggregates results from more than 70 search services. Users are neither tracked nor profiled. Additionally, searx can be used over Tor for online anonymity.
7
+
8
+Get started with searx by using one of the `public instances`_. If you don't trust anyone, you can set up your own, see :ref:`installation`.
9
+
10
+.. _public instances: https://github.com/asciimoo/searx/wiki/Searx-instances
11
+
12
+Features
13
+--------
14
+
15
+ - Self hosted
16
+ - No user tracking
17
+ - No user profiling
18
+ - About 70 supported search engines
19
+ - Easy integration with any search engine
20
+ - Cookies are not used by default
21
+ - Secure, encrypted connections (HTTPS/SSL)
22
+ - Hosted by organisations, such as La Quadrature du Net, which promote digital rights
23
+
24
+
25
+User documentation
26
+------------------
27
+
28
+.. toctree::
29
+   :maxdepth: 1
30
+
31
+   user/search_syntax
32
+   user/own-instance
33
+
34
+Administrator documentation
35
+---------------------------
36
+
37
+.. toctree::
38
+   :maxdepth: 1
39
+
40
+   dev/install/installation
41
+   admin/api
42
+   admin/filtron
43
+   admin/morty
44
+
45
+Developer documentation
46
+-----------------------
47
+
48
+.. toctree::
49
+   :maxdepth: 1
50
+
51
+   dev/quickstart
52
+   dev/contribution_guide
53
+   dev/engine_overview
54
+   dev/search_api
55
+   dev/plugins
56
+   dev/translation

+ 43
- 0
_sources/user/own-instance.rst.txt View File

1
+Why use a private instance?
2
+===========================
3
+
4
+"Is it worth to run my own instance?" is a common question among searx users. Before answering this question, see what options a searx user has.
5
+
6
+Public instances are open to everyone who has access to its URL. Usually, these are operated by unknown parties (from the users' point of view). Private instances can be used by a select group of people. It is for example a searx of group of friends or a company which can be accessed through VPN. Also it can be single user one which runs on the user's laptop.
7
+
8
+To gain more insight on how these instances work let's dive into how searx protects its users.
9
+
10
+How does searx protect privacy?
11
+-------------------------------
12
+
13
+Searx protects the privacy of its users in multiple ways regardless of the type of the instance (private, public). Removal of private data from search requests comes in three forms:
14
+
15
+ 1. removal of private data from requests going to search services
16
+ 2. not forwarding anything from a third party services through search services (e.g. advertisement)
17
+ 3. removal of private data from requests going to the result pages
18
+
19
+Removing private data means not sending cookies to external search engines and generating a random browser profile for every request. Thus, it does not matter if a public or private instance handles the request, because it is anonymized in both cases. IP addresses will be the IP of the instance. But searx can be configured to use proxy or Tor. `Result proxy <https://github.com/asciimoo/morty>`__ is supported, too.
20
+
21
+Searx does not serve ads or tracking content unlike most search services. So private data is not forwarded to third parties who might monetize it. Besides protecting users from search services, both referring page and search query are hidden from visited result pages.
22
+
23
+What are the consequences of using public instances?
24
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
25
+
26
+If someone uses a public instance, he/she has to trust the administrator of that instance.
27
+This means that the user of the public instance does not know whether his/her requests are logged, aggregated and sent or sold to a third party.
28
+
29
+Also, public instances without proper protection are more vulnerable to abusing the search service, In this case the external service in exchange returns CAPTCHAs or bans the IP of the instance. Thus, search requests return less results.
30
+
31
+I see. What about private instances?
32
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
33
+
34
+If users run their own instances, everything is in their control: the source code, logging settings and private data. Unknown instance administrators do not have to be trusted.
35
+
36
+Furthermore, as the default settings of their instance is editable, there is no need to use cookies to tailor searx to their needs. So preferences will not be reset to defaults when clearing browser cookies. As settings are stored on their computer, it will not be accessible to others as long as their computer is not compromised.
37
+
38
+Conclusion
39
+----------
40
+
41
+Always use an instance which is operated by people you trust. The privacy features of searx are available to users no matter what kind of instance they use.
42
+
43
+If someone is on the go or just wants to try searx for the first time public instances are the best choices. Additionally, public instance are making a world a better place, because those who cannot or do not want to run an instance, have access to a privacy respecting search service.

+ 33
- 0
_sources/user/search_syntax.rst.txt View File

1
+Search syntax
2
+=============
3
+
4
+Searx allows you to modify the default categories, engines and search
5
+language via the search query.
6
+
7
+Category/engine prefix: ``!``
8
+
9
+Language prefix: ``:``
10
+
11
+Prefix to add engines and categories to the currently selected
12
+categories: ``?``
13
+
14
+Abbrevations of the engines and languages are also accepted.
15
+Engine/category modifiers are chainable and inclusive (e.g. with
16
+`!it !ddg !wp qwer <https://searx.me/?q=%21it%20%21ddg%20%21wp%20qwer>`_
17
+search in IT category **and** duckduckgo **and** wikipedia for ``qwer``).
18
+
19
+See the `/preferences page <https://searx.me/preferences>`_ for the
20
+list of engines, categories and languages.
21
+
22
+Examples
23
+~~~~~~~~
24
+
25
+Search in wikipedia for ``qwer``:
26
+`!wp qwer <https://searx.me/?q=%21wp%20qwer>`__ or
27
+`!wikipedia qwer <https://searx.me/?q=%21wikipedia%20qwer>`_
28
+
29
+Image search:
30
+`!images Cthulhu <https://searx.me/?q=%21images%20Cthulhu>`_
31
+
32
+Custom language in wikipedia:
33
+`:hu !wp hackerspace <https://searx.me/?q=%3Ahu%20%21wp%20hackerspace>`_

+ 29
- 3
_static/basic.css View File

4
  *
4
  *
5
  * Sphinx stylesheet -- basic theme.
5
  * Sphinx stylesheet -- basic theme.
6
  *
6
  *
7
- * :copyright: Copyright 2007-2017 by the Sphinx team, see AUTHORS.
7
+ * :copyright: Copyright 2007-2018 by the Sphinx team, see AUTHORS.
8
  * :license: BSD, see LICENSE for details.
8
  * :license: BSD, see LICENSE for details.
9
  *
9
  *
10
  */
10
  */
82
 }
82
 }
83
 
83
 
84
 div.sphinxsidebar #searchbox input[type="text"] {
84
 div.sphinxsidebar #searchbox input[type="text"] {
85
-    width: 170px;
85
+    float: left;
86
+    width: 80%;
87
+    padding: 0.25em;
88
+    box-sizing: border-box;
89
+}
90
+
91
+div.sphinxsidebar #searchbox input[type="submit"] {
92
+    float: left;
93
+    width: 20%;
94
+    border-left: none;
95
+    padding: 0.25em;
96
+    box-sizing: border-box;
86
 }
97
 }
87
 
98
 
99
+
88
 img {
100
 img {
89
     border: 0;
101
     border: 0;
90
     max-width: 100%;
102
     max-width: 100%;
199
 
211
 
200
 /* -- general body styles --------------------------------------------------- */
212
 /* -- general body styles --------------------------------------------------- */
201
 
213
 
214
+div.body {
215
+    min-width: 450px;
216
+    max-width: 800px;
217
+}
218
+
202
 div.body p, div.body dd, div.body li, div.body blockquote {
219
 div.body p, div.body dd, div.body li, div.body blockquote {
203
     -moz-hyphens: auto;
220
     -moz-hyphens: auto;
204
     -ms-hyphens: auto;
221
     -ms-hyphens: auto;
332
     border-collapse: collapse;
349
     border-collapse: collapse;
333
 }
350
 }
334
 
351
 
352
+table.align-center {
353
+    margin-left: auto;
354
+    margin-right: auto;
355
+}
356
+
335
 table caption span.caption-number {
357
 table caption span.caption-number {
336
     font-style: italic;
358
     font-style: italic;
337
 }
359
 }
445
     margin-left: 30px;
467
     margin-left: 30px;
446
 }
468
 }
447
 
469
 
448
-dt:target, .highlighted {
470
+dt:target, span.highlighted {
449
     background-color: #fbe54e;
471
     background-color: #fbe54e;
450
 }
472
 }
451
 
473
 
474
+rect.highlighted {
475
+    fill: #fbe54e;
476
+}
477
+
452
 dl.glossary dt {
478
 dl.glossary dt {
453
     font-weight: bold;
479
     font-weight: bold;
454
     font-size: 1.1em;
480
     font-size: 1.1em;

+ 43
- 17
_static/doctools.js View File

4
  *
4
  *
5
  * Sphinx JavaScript utilities for all documentation.
5
  * Sphinx JavaScript utilities for all documentation.
6
  *
6
  *
7
- * :copyright: Copyright 2007-2017 by the Sphinx team, see AUTHORS.
7
+ * :copyright: Copyright 2007-2018 by the Sphinx team, see AUTHORS.
8
  * :license: BSD, see LICENSE for details.
8
  * :license: BSD, see LICENSE for details.
9
  *
9
  *
10
  */
10
  */
45
  * it will always return arrays of strings for the value parts.
45
  * it will always return arrays of strings for the value parts.
46
  */
46
  */
47
 jQuery.getQueryParameters = function(s) {
47
 jQuery.getQueryParameters = function(s) {
48
-  if (typeof s == 'undefined')
48
+  if (typeof s === 'undefined')
49
     s = document.location.search;
49
     s = document.location.search;
50
   var parts = s.substr(s.indexOf('?') + 1).split('&');
50
   var parts = s.substr(s.indexOf('?') + 1).split('&');
51
   var result = {};
51
   var result = {};
66
  * span elements with the given class name.
66
  * span elements with the given class name.
67
  */
67
  */
68
 jQuery.fn.highlightText = function(text, className) {
68
 jQuery.fn.highlightText = function(text, className) {
69
-  function highlight(node) {
70
-    if (node.nodeType == 3) {
69
+  function highlight(node, addItems) {
70
+    if (node.nodeType === 3) {
71
       var val = node.nodeValue;
71
       var val = node.nodeValue;
72
       var pos = val.toLowerCase().indexOf(text);
72
       var pos = val.toLowerCase().indexOf(text);
73
-      if (pos >= 0 && !jQuery(node.parentNode).hasClass(className)) {
74
-        var span = document.createElement("span");
75
-        span.className = className;
73
+      if (pos >= 0 &&
74
+          !jQuery(node.parentNode).hasClass(className) &&
75
+          !jQuery(node.parentNode).hasClass("nohighlight")) {
76
+        var span;
77
+        var isInSVG = jQuery(node).closest("body, svg, foreignObject").is("svg");
78
+        if (isInSVG) {
79
+          span = document.createElementNS("http://www.w3.org/2000/svg", "tspan");
80
+        } else {
81
+          span = document.createElement("span");
82
+          span.className = className;
83
+        }
76
         span.appendChild(document.createTextNode(val.substr(pos, text.length)));
84
         span.appendChild(document.createTextNode(val.substr(pos, text.length)));
77
         node.parentNode.insertBefore(span, node.parentNode.insertBefore(
85
         node.parentNode.insertBefore(span, node.parentNode.insertBefore(
78
           document.createTextNode(val.substr(pos + text.length)),
86
           document.createTextNode(val.substr(pos + text.length)),
79
           node.nextSibling));
87
           node.nextSibling));
80
         node.nodeValue = val.substr(0, pos);
88
         node.nodeValue = val.substr(0, pos);
89
+        if (isInSVG) {
90
+          var bbox = span.getBBox();
91
+          var rect = document.createElementNS("http://www.w3.org/2000/svg", "rect");
92
+       	  rect.x.baseVal.value = bbox.x;
93
+          rect.y.baseVal.value = bbox.y;
94
+          rect.width.baseVal.value = bbox.width;
95
+          rect.height.baseVal.value = bbox.height;
96
+          rect.setAttribute('class', className);
97
+          var parentOfText = node.parentNode.parentNode;
98
+          addItems.push({
99
+              "parent": node.parentNode,
100
+              "target": rect});
101
+        }
81
       }
102
       }
82
     }
103
     }
83
     else if (!jQuery(node).is("button, select, textarea")) {
104
     else if (!jQuery(node).is("button, select, textarea")) {
84
       jQuery.each(node.childNodes, function() {
105
       jQuery.each(node.childNodes, function() {
85
-        highlight(this);
106
+        highlight(this, addItems);
86
       });
107
       });
87
     }
108
     }
88
   }
109
   }
89
-  return this.each(function() {
90
-    highlight(this);
110
+  var addItems = [];
111
+  var result = this.each(function() {
112
+    highlight(this, addItems);
91
   });
113
   });
114
+  for (var i = 0; i < addItems.length; ++i) {
115
+    jQuery(addItems[i].parent).before(addItems[i].target);
116
+  }
117
+  return result;
92
 };
118
 };
93
 
119
 
94
 /*
120
 /*
131
    * i18n support
157
    * i18n support
132
    */
158
    */
133
   TRANSLATIONS : {},
159
   TRANSLATIONS : {},
134
-  PLURAL_EXPR : function(n) { return n == 1 ? 0 : 1; },
160
+  PLURAL_EXPR : function(n) { return n === 1 ? 0 : 1; },
135
   LOCALE : 'unknown',
161
   LOCALE : 'unknown',
136
 
162
 
137
   // gettext and ngettext don't access this so that the functions
163
   // gettext and ngettext don't access this so that the functions
138
   // can safely bound to a different name (_ = Documentation.gettext)
164
   // can safely bound to a different name (_ = Documentation.gettext)
139
   gettext : function(string) {
165
   gettext : function(string) {
140
     var translated = Documentation.TRANSLATIONS[string];
166
     var translated = Documentation.TRANSLATIONS[string];
141
-    if (typeof translated == 'undefined')
167
+    if (typeof translated === 'undefined')
142
       return string;
168
       return string;
143
-    return (typeof translated == 'string') ? translated : translated[0];
169
+    return (typeof translated === 'string') ? translated : translated[0];
144
   },
170
   },
145
 
171
 
146
   ngettext : function(singular, plural, n) {
172
   ngettext : function(singular, plural, n) {
147
     var translated = Documentation.TRANSLATIONS[singular];
173
     var translated = Documentation.TRANSLATIONS[singular];
148
-    if (typeof translated == 'undefined')
174
+    if (typeof translated === 'undefined')
149
       return (n == 1) ? singular : plural;
175
       return (n == 1) ? singular : plural;
150
     return translated[Documentation.PLURALEXPR(n)];
176
     return translated[Documentation.PLURALEXPR(n)];
151
   },
177
   },
180
    * see: https://bugzilla.mozilla.org/show_bug.cgi?id=645075
206
    * see: https://bugzilla.mozilla.org/show_bug.cgi?id=645075
181
    */
207
    */
182
   fixFirefoxAnchorBug : function() {
208
   fixFirefoxAnchorBug : function() {
183
-    if (document.location.hash)
209
+    if (document.location.hash && $.browser.mozilla)
184
       window.setTimeout(function() {
210
       window.setTimeout(function() {
185
         document.location.href += '';
211
         document.location.href += '';
186
       }, 10);
212
       }, 10);
216
       var src = $(this).attr('src');
242
       var src = $(this).attr('src');
217
       var idnum = $(this).attr('id').substr(7);
243
       var idnum = $(this).attr('id').substr(7);
218
       $('tr.cg-' + idnum).toggle();
244
       $('tr.cg-' + idnum).toggle();
219
-      if (src.substr(-9) == 'minus.png')
245
+      if (src.substr(-9) === 'minus.png')
220
         $(this).attr('src', src.substr(0, src.length-9) + 'plus.png');
246
         $(this).attr('src', src.substr(0, src.length-9) + 'plus.png');
221
       else
247
       else
222
         $(this).attr('src', src.substr(0, src.length-8) + 'minus.png');
248
         $(this).attr('src', src.substr(0, src.length-8) + 'minus.png');
248
     var path = document.location.pathname;
274
     var path = document.location.pathname;
249
     var parts = path.split(/\//);
275
     var parts = path.split(/\//);
250
     $.each(DOCUMENTATION_OPTIONS.URL_ROOT.split(/\//), function() {
276
     $.each(DOCUMENTATION_OPTIONS.URL_ROOT.split(/\//), function() {
251
-      if (this == '..')
277
+      if (this === '..')
252
         parts.pop();
278
         parts.pop();
253
     });
279
     });
254
     var url = parts.join('/');
280
     var url = parts.join('/');

+ 9
- 0
_static/documentation_options.js View File

1
+var DOCUMENTATION_OPTIONS = {
2
+    URL_ROOT: '',
3
+    VERSION: '0.12.0',
4
+    LANGUAGE: 'None',
5
+    COLLAPSE_INDEX: false,
6
+    FILE_SUFFIX: '.html',
7
+    HAS_SOURCE: true,
8
+    SOURCELINK_SUFFIX: '.txt'
9
+};

+ 10253
- 0
_static/jquery-3.2.1.js
File diff suppressed because it is too large
View File


+ 4
- 4
_static/jquery.js
File diff suppressed because it is too large
View File


+ 4
- 1
_static/searchtools.js View File

4
  *
4
  *
5
  * Sphinx JavaScript utilities for the full-text search.
5
  * Sphinx JavaScript utilities for the full-text search.
6
  *
6
  *
7
- * :copyright: Copyright 2007-2017 by the Sphinx team, see AUTHORS.
7
+ * :copyright: Copyright 2007-2018 by the Sphinx team, see AUTHORS.
8
  * :license: BSD, see LICENSE for details.
8
  * :license: BSD, see LICENSE for details.
9
  *
9
  *
10
  */
10
  */
540
           });
540
           });
541
         } else if (DOCUMENTATION_OPTIONS.HAS_SOURCE) {
541
         } else if (DOCUMENTATION_OPTIONS.HAS_SOURCE) {
542
           var suffix = DOCUMENTATION_OPTIONS.SOURCELINK_SUFFIX;
542
           var suffix = DOCUMENTATION_OPTIONS.SOURCELINK_SUFFIX;
543
+          if (suffix === undefined) {
544
+            suffix = '.txt';
545
+          }
543
           $.ajax({url: DOCUMENTATION_OPTIONS.URL_ROOT + '_sources/' + item[5] + (item[5].slice(-suffix.length) === suffix ? '' : suffix),
546
           $.ajax({url: DOCUMENTATION_OPTIONS.URL_ROOT + '_sources/' + item[5] + (item[5].slice(-suffix.length) === suffix ? '' : suffix),
544
                   dataType: "text",
547
                   dataType: "text",
545
                   complete: function(jqxhr, textstatus) {
548
                   complete: function(jqxhr, textstatus) {

+ 2
- 2
_static/websupport.js View File

4
  *
4
  *
5
  * sphinx.websupport utilities for all documentation.
5
  * sphinx.websupport utilities for all documentation.
6
  *
6
  *
7
- * :copyright: Copyright 2007-2017 by the Sphinx team, see AUTHORS.
7
+ * :copyright: Copyright 2007-2018 by the Sphinx team, see AUTHORS.
8
  * :license: BSD, see LICENSE for details.
8
  * :license: BSD, see LICENSE for details.
9
  *
9
  *
10
  */
10
  */
301
     li.hide();
301
     li.hide();
302
 
302
 
303
     // Determine where in the parents children list to insert this comment.
303
     // Determine where in the parents children list to insert this comment.
304
-    for(i=0; i < siblings.length; i++) {
304
+    for(var i=0; i < siblings.length; i++) {
305
       if (comp(comment, siblings[i]) <= 0) {
305
       if (comp(comment, siblings[i]) <= 0) {
306
         $('#cd' + siblings[i].id)
306
         $('#cd' + siblings[i].id)
307
           .parent()
307
           .parent()

+ 38
- 16
admin/api.html View File

4
 
4
 
5
 <html xmlns="http://www.w3.org/1999/xhtml">
5
 <html xmlns="http://www.w3.org/1999/xhtml">
6
   <head>
6
   <head>
7
+    <meta http-equiv="X-UA-Compatible" content="IE=Edge" />
7
     <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
8
     <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
8
     <title>Administration API &#8212; searx 0.12.0 documentation</title>
9
     <title>Administration API &#8212; searx 0.12.0 documentation</title>
9
     <link rel="stylesheet" href="../_static/style.css" type="text/css" />
10
     <link rel="stylesheet" href="../_static/style.css" type="text/css" />
10
     <link rel="stylesheet" href="../_static/pygments.css" type="text/css" />
11
     <link rel="stylesheet" href="../_static/pygments.css" type="text/css" />
11
-    <script type="text/javascript">
12
-      var DOCUMENTATION_OPTIONS = {
13
-        URL_ROOT:    '../',
14
-        VERSION:     '0.12.0',
15
-        COLLAPSE_INDEX: false,
16
-        FILE_SUFFIX: '.html',
17
-        HAS_SOURCE:  true,
18
-        SOURCELINK_SUFFIX: '.txt'
19
-      };
20
-    </script>
12
+    <script type="text/javascript" src="../_static/documentation_options.js"></script>
21
     <script type="text/javascript" src="../_static/jquery.js"></script>
13
     <script type="text/javascript" src="../_static/jquery.js"></script>
22
     <script type="text/javascript" src="../_static/underscore.js"></script>
14
     <script type="text/javascript" src="../_static/underscore.js"></script>
23
     <script type="text/javascript" src="../_static/doctools.js"></script>
15
     <script type="text/javascript" src="../_static/doctools.js"></script>
30
   <link media="only screen and (max-device-width: 480px)" href="../_static/small_flask.css" type= "text/css" rel="stylesheet" />
22
   <link media="only screen and (max-device-width: 480px)" href="../_static/small_flask.css" type= "text/css" rel="stylesheet" />
31
   <meta name="viewport" content="width=device-width, initial-scale=0.9, maximum-scale=0.9">
23
   <meta name="viewport" content="width=device-width, initial-scale=0.9, maximum-scale=0.9">
32
 
24
 
33
-  </head>
34
-  <body>  
25
+  </head><body>  
35
 
26
 
36
     <div class="document">
27
     <div class="document">
37
       <div class="documentwrapper">
28
       <div class="documentwrapper">
42
 <span id="adminapi"></span><h1>Administration API<a class="headerlink" href="#administration-api" title="Permalink to this headline">¶</a></h1>
33
 <span id="adminapi"></span><h1>Administration API<a class="headerlink" href="#administration-api" title="Permalink to this headline">¶</a></h1>
43
 <div class="section" id="get-configuration-data">
34
 <div class="section" id="get-configuration-data">
44
 <h2>Get configuration data<a class="headerlink" href="#get-configuration-data" title="Permalink to this headline">¶</a></h2>
35
 <h2>Get configuration data<a class="headerlink" href="#get-configuration-data" title="Permalink to this headline">¶</a></h2>
45
-<div class="code sh highlight-default"><div class="highlight"><pre><span></span><span class="n">GET</span> <span class="o">/</span><span class="n">config</span>
36
+<div class="code sh highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">GET</span> <span class="o">/</span><span class="n">config</span>
46
 </pre></div>
37
 </pre></div>
47
 </div>
38
 </div>
48
 <div class="section" id="sample-response">
39
 <div class="section" id="sample-response">
49
 <h3>Sample response<a class="headerlink" href="#sample-response" title="Permalink to this headline">¶</a></h3>
40
 <h3>Sample response<a class="headerlink" href="#sample-response" title="Permalink to this headline">¶</a></h3>
50
-<div class="code sh highlight-default"><div class="highlight"><pre><span></span><span class="p">{</span>
41
+<div class="code sh highlight-default notranslate"><div class="highlight"><pre><span></span><span class="p">{</span>
51
   <span class="s2">&quot;autocomplete&quot;</span><span class="p">:</span> <span class="s2">&quot;&quot;</span><span class="p">,</span>
42
   <span class="s2">&quot;autocomplete&quot;</span><span class="p">:</span> <span class="s2">&quot;&quot;</span><span class="p">,</span>
52
   <span class="s2">&quot;categories&quot;</span><span class="p">:</span> <span class="p">[</span>
43
   <span class="s2">&quot;categories&quot;</span><span class="p">:</span> <span class="p">[</span>
53
     <span class="s2">&quot;map&quot;</span><span class="p">,</span>
44
     <span class="s2">&quot;map&quot;</span><span class="p">,</span>
117
 <h1>Embed search bar<a class="headerlink" href="#embed-search-bar" title="Permalink to this headline">¶</a></h1>
108
 <h1>Embed search bar<a class="headerlink" href="#embed-search-bar" title="Permalink to this headline">¶</a></h1>
118
 <p>The search bar can be embedded into websites. Just paste the example into the HTML of the site.
109
 <p>The search bar can be embedded into websites. Just paste the example into the HTML of the site.
119
 URL of the searx instance and values are customizable.</p>
110
 URL of the searx instance and values are customizable.</p>
120
-<div class="code html highlight-default"><div class="highlight"><pre><span></span>&lt;form method=&quot;post&quot; action=&quot;https://searx.me/&quot;&gt;
111
+<div class="code html highlight-default notranslate"><div class="highlight"><pre><span></span>&lt;form method=&quot;post&quot; action=&quot;https://searx.me/&quot;&gt;
121
     &lt;!-- search query --&gt; &lt;input type=&quot;text&quot; name=&quot;q&quot; /&gt;
112
     &lt;!-- search query --&gt; &lt;input type=&quot;text&quot; name=&quot;q&quot; /&gt;
122
     &lt;!-- categories   --&gt; &lt;input type=&quot;hidden&quot; name=&quot;categories&quot; value=&quot;general,social media&quot; /&gt;
113
     &lt;!-- categories   --&gt; &lt;input type=&quot;hidden&quot; name=&quot;categories&quot; value=&quot;general,social media&quot; /&gt;
123
     &lt;!-- language     --&gt; &lt;input type=&quot;hidden&quot; name=&quot;lang&quot; value=&quot;all&quot; /&gt;
114
     &lt;!-- language     --&gt; &lt;input type=&quot;hidden&quot; name=&quot;lang&quot; value=&quot;all&quot; /&gt;
133
         </div>
124
         </div>
134
       </div>
125
       </div>
135
       <div class="sphinxsidebar" role="navigation" aria-label="main navigation">
126
       <div class="sphinxsidebar" role="navigation" aria-label="main navigation">
136
-        <div class="sphinxsidebarwrapper"><div class="sidebar_container body">
127
+        <div class="sphinxsidebarwrapper">
128
+  <h3><a href="../index.html">Table Of Contents</a></h3>
129
+  <ul>
130
+<li><a class="reference internal" href="#">Administration API</a><ul>
131
+<li><a class="reference internal" href="#get-configuration-data">Get configuration data</a><ul>
132
+<li><a class="reference internal" href="#sample-response">Sample response</a></li>
133
+</ul>
134
+</li>
135
+</ul>
136
+</li>
137
+<li><a class="reference internal" href="#embed-search-bar">Embed search bar</a></li>
138
+</ul>
139
+<div class="sidebar_container body">
137
 <h1>Searx</h1>
140
 <h1>Searx</h1>
138
 <ul>
141
 <ul>
139
     <li><a href="../index.html">Home</a></li>
142
     <li><a href="../index.html">Home</a></li>
147
     <li><a href="https://twitter.com/Searx_engine">Twitter</a></li>
150
     <li><a href="https://twitter.com/Searx_engine">Twitter</a></li>
148
 </ul>
151
 </ul>
149
 </div>
152
 </div>
153
+  <div role="note" aria-label="source link">
154
+    <h3>This Page</h3>
155
+    <ul class="this-page-menu">
156
+      <li><a href="../_sources/admin/api.rst.txt"
157
+            rel="nofollow">Show Source</a></li>
158
+    </ul>
159
+   </div>
160
+<div id="searchbox" style="display: none" role="search">
161
+  <h3>Quick search</h3>
162
+    <div class="searchformwrapper">
163
+    <form class="search" action="../search.html" method="get">
164
+      <input type="text" name="q" />
165
+      <input type="submit" value="Go" />
166
+      <input type="hidden" name="check_keywords" value="yes" />
167
+      <input type="hidden" name="area" value="default" />
168
+    </form>
169
+    </div>
170
+</div>
171
+<script type="text/javascript">$('#searchbox').show(0);</script>
150
         </div>
172
         </div>
151
       </div>
173
       </div>
152
       <div class="clearer"></div>
174
       <div class="clearer"></div>

+ 37
- 18
admin/filtron.html View File

4
 
4
 
5
 <html xmlns="http://www.w3.org/1999/xhtml">
5
 <html xmlns="http://www.w3.org/1999/xhtml">
6
   <head>
6
   <head>
7
+    <meta http-equiv="X-UA-Compatible" content="IE=Edge" />
7
     <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
8
     <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
8
     <title>How to protect an instance &#8212; searx 0.12.0 documentation</title>
9
     <title>How to protect an instance &#8212; searx 0.12.0 documentation</title>
9
     <link rel="stylesheet" href="../_static/style.css" type="text/css" />
10
     <link rel="stylesheet" href="../_static/style.css" type="text/css" />
10
     <link rel="stylesheet" href="../_static/pygments.css" type="text/css" />
11
     <link rel="stylesheet" href="../_static/pygments.css" type="text/css" />
11
-    <script type="text/javascript">
12
-      var DOCUMENTATION_OPTIONS = {
13
-        URL_ROOT:    '../',
14
-        VERSION:     '0.12.0',
15
-        COLLAPSE_INDEX: false,
16
-        FILE_SUFFIX: '.html',
17
-        HAS_SOURCE:  true,
18
-        SOURCELINK_SUFFIX: '.txt'
19
-      };
20
-    </script>
12
+    <script type="text/javascript" src="../_static/documentation_options.js"></script>
21
     <script type="text/javascript" src="../_static/jquery.js"></script>
13
     <script type="text/javascript" src="../_static/jquery.js"></script>
22
     <script type="text/javascript" src="../_static/underscore.js"></script>
14
     <script type="text/javascript" src="../_static/underscore.js"></script>
23
     <script type="text/javascript" src="../_static/doctools.js"></script>
15
     <script type="text/javascript" src="../_static/doctools.js"></script>
30
   <link media="only screen and (max-device-width: 480px)" href="../_static/small_flask.css" type= "text/css" rel="stylesheet" />
22
   <link media="only screen and (max-device-width: 480px)" href="../_static/small_flask.css" type= "text/css" rel="stylesheet" />
31
   <meta name="viewport" content="width=device-width, initial-scale=0.9, maximum-scale=0.9">
23
   <meta name="viewport" content="width=device-width, initial-scale=0.9, maximum-scale=0.9">
32
 
24
 
33
-  </head>
34
-  <body>  
25
+  </head><body>  
35
 
26
 
36
     <div class="document">
27
     <div class="document">
37
       <div class="documentwrapper">
28
       <div class="documentwrapper">
41
   <div class="section" id="how-to-protect-an-instance">
32
   <div class="section" id="how-to-protect-an-instance">
42
 <h1>How to protect an instance<a class="headerlink" href="#how-to-protect-an-instance" title="Permalink to this headline">¶</a></h1>
33
 <h1>How to protect an instance<a class="headerlink" href="#how-to-protect-an-instance" title="Permalink to this headline">¶</a></h1>
43
 <p>Searx depens on external search services. To avoid the abuse of these services it is advised to limit the number of requests processed by searx.</p>
34
 <p>Searx depens on external search services. To avoid the abuse of these services it is advised to limit the number of requests processed by searx.</p>
44
-<p>An application firewall, <code class="docutils literal"><span class="pre">filtron</span></code> solves exactly this problem. Information on how to install it can be found at the <a class="reference external" href="https://github.com/asciimoo/filtron">project page of filtron</a>.</p>
35
+<p>An application firewall, <code class="docutils literal notranslate"><span class="pre">filtron</span></code> solves exactly this problem. Information on how to install it can be found at the <a class="reference external" href="https://github.com/asciimoo/filtron">project page of filtron</a>.</p>
45
 <div class="section" id="sample-configuration-of-filtron">
36
 <div class="section" id="sample-configuration-of-filtron">
46
 <h2>Sample configuration of filtron<a class="headerlink" href="#sample-configuration-of-filtron" title="Permalink to this headline">¶</a></h2>
37
 <h2>Sample configuration of filtron<a class="headerlink" href="#sample-configuration-of-filtron" title="Permalink to this headline">¶</a></h2>
47
 <p>An example configuration can be find below. This configuration limits the access of</p>
38
 <p>An example configuration can be find below. This configuration limits the access of</p>
54
 <li>the same UserAgent of if too many requests (useragent limit)</li>
45
 <li>the same UserAgent of if too many requests (useragent limit)</li>
55
 </ul>
46
 </ul>
56
 </div></blockquote>
47
 </div></blockquote>
57
-<div class="code json highlight-default"><div class="highlight"><pre><span></span><span class="p">[</span>
48
+<div class="code json highlight-default notranslate"><div class="highlight"><pre><span></span><span class="p">[</span>
58
     <span class="p">{</span>
49
     <span class="p">{</span>
59
         <span class="s2">&quot;name&quot;</span><span class="p">:</span> <span class="s2">&quot;search request&quot;</span><span class="p">,</span>
50
         <span class="s2">&quot;name&quot;</span><span class="p">:</span> <span class="s2">&quot;search request&quot;</span><span class="p">,</span>
60
         <span class="s2">&quot;filters&quot;</span><span class="p">:</span> <span class="p">[</span><span class="s2">&quot;Param:q&quot;</span><span class="p">,</span> <span class="s2">&quot;Path=^(/|/search)$&quot;</span><span class="p">],</span>
51
         <span class="s2">&quot;filters&quot;</span><span class="p">:</span> <span class="p">[</span><span class="s2">&quot;Param:q&quot;</span><span class="p">,</span> <span class="s2">&quot;Path=^(/|/search)$&quot;</span><span class="p">],</span>
122
 <div class="section" id="route-request-through-filtron">
113
 <div class="section" id="route-request-through-filtron">
123
 <h2>Route request through filtron<a class="headerlink" href="#route-request-through-filtron" title="Permalink to this headline">¶</a></h2>
114
 <h2>Route request through filtron<a class="headerlink" href="#route-request-through-filtron" title="Permalink to this headline">¶</a></h2>
124
 <p>Filtron can be started using the following command:</p>
115
 <p>Filtron can be started using the following command:</p>
125
-<div class="code bash highlight-default"><div class="highlight"><pre><span></span>$ filtron -rules rules.json
116
+<div class="code bash highlight-default notranslate"><div class="highlight"><pre><span></span>$ filtron -rules rules.json
126
 </pre></div>
117
 </pre></div>
127
 </div>
118
 </div>
128
 <p>It listens on 127.0.0.1:4004 and forwards filtered requests to 127.0.0.1:8888 by default.</p>
119
 <p>It listens on 127.0.0.1:4004 and forwards filtered requests to 127.0.0.1:8888 by default.</p>
129
-<p>Use it along with <code class="docutils literal"><span class="pre">nginx</span></code> with the following example configuration.</p>
130
-<div class="code bash highlight-default"><div class="highlight"><pre><span></span>location / {
120
+<p>Use it along with <code class="docutils literal notranslate"><span class="pre">nginx</span></code> with the following example configuration.</p>
121
+<div class="code bash highlight-default notranslate"><div class="highlight"><pre><span></span>location / {
131
     proxy_set_header        Host    $http_host;
122
     proxy_set_header        Host    $http_host;
132
     proxy_set_header        X-Real-IP $remote_addr;
123
     proxy_set_header        X-Real-IP $remote_addr;
133
     proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;
124
     proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;
145
         </div>
136
         </div>
146
       </div>
137
       </div>
147
       <div class="sphinxsidebar" role="navigation" aria-label="main navigation">
138
       <div class="sphinxsidebar" role="navigation" aria-label="main navigation">
148
-        <div class="sphinxsidebarwrapper"><div class="sidebar_container body">
139
+        <div class="sphinxsidebarwrapper">
140
+  <h3><a href="../index.html">Table Of Contents</a></h3>
141
+  <ul>
142
+<li><a class="reference internal" href="#">How to protect an instance</a><ul>
143
+<li><a class="reference internal" href="#sample-configuration-of-filtron">Sample configuration of filtron</a></li>
144
+<li><a class="reference internal" href="#route-request-through-filtron">Route request through filtron</a></li>
145
+</ul>
146
+</li>
147
+</ul>
148
+<div class="sidebar_container body">
149
 <h1>Searx</h1>
149
 <h1>Searx</h1>
150
 <ul>
150
 <ul>
151
     <li><a href="../index.html">Home</a></li>
151
     <li><a href="../index.html">Home</a></li>
159
     <li><a href="https://twitter.com/Searx_engine">Twitter</a></li>
159
     <li><a href="https://twitter.com/Searx_engine">Twitter</a></li>
160
 </ul>
160
 </ul>
161
 </div>
161
 </div>
162
+  <div role="note" aria-label="source link">
163
+    <h3>This Page</h3>
164
+    <ul class="this-page-menu">
165
+      <li><a href="../_sources/admin/filtron.rst.txt"
166
+            rel="nofollow">Show Source</a></li>
167
+    </ul>
168
+   </div>
169
+<div id="searchbox" style="display: none" role="search">
170
+  <h3>Quick search</h3>
171
+    <div class="searchformwrapper">
172
+    <form class="search" action="../search.html" method="get">
173
+      <input type="text" name="q" />
174
+      <input type="submit" value="Go" />
175
+      <input type="hidden" name="check_keywords" value="yes" />
176
+      <input type="hidden" name="area" value="default" />
177
+    </form>
178
+    </div>
179
+</div>
180
+<script type="text/javascript">$('#searchbox').show(0);</script>
162
         </div>
181
         </div>
163
       </div>
182
       </div>
164
       <div class="clearer"></div>
183
       <div class="clearer"></div>

+ 27
- 17
admin/morty.html View File

4
 
4
 
5
 <html xmlns="http://www.w3.org/1999/xhtml">
5
 <html xmlns="http://www.w3.org/1999/xhtml">
6
   <head>
6
   <head>
7
+    <meta http-equiv="X-UA-Compatible" content="IE=Edge" />
7
     <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
8
     <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
8
     <title>How to setup result proxy &#8212; searx 0.12.0 documentation</title>
9
     <title>How to setup result proxy &#8212; searx 0.12.0 documentation</title>
9
     <link rel="stylesheet" href="../_static/style.css" type="text/css" />
10
     <link rel="stylesheet" href="../_static/style.css" type="text/css" />
10
     <link rel="stylesheet" href="../_static/pygments.css" type="text/css" />
11
     <link rel="stylesheet" href="../_static/pygments.css" type="text/css" />
11
-    <script type="text/javascript">
12
-      var DOCUMENTATION_OPTIONS = {
13
-        URL_ROOT:    '../',
14
-        VERSION:     '0.12.0',
15
-        COLLAPSE_INDEX: false,
16
-        FILE_SUFFIX: '.html',
17
-        HAS_SOURCE:  true,
18
-        SOURCELINK_SUFFIX: '.txt'
19
-      };
20
-    </script>
12
+    <script type="text/javascript" src="../_static/documentation_options.js"></script>
21
     <script type="text/javascript" src="../_static/jquery.js"></script>
13
     <script type="text/javascript" src="../_static/jquery.js"></script>
22
     <script type="text/javascript" src="../_static/underscore.js"></script>
14
     <script type="text/javascript" src="../_static/underscore.js"></script>
23
     <script type="text/javascript" src="../_static/doctools.js"></script>
15
     <script type="text/javascript" src="../_static/doctools.js"></script>
30
   <link media="only screen and (max-device-width: 480px)" href="../_static/small_flask.css" type= "text/css" rel="stylesheet" />
22
   <link media="only screen and (max-device-width: 480px)" href="../_static/small_flask.css" type= "text/css" rel="stylesheet" />
31
   <meta name="viewport" content="width=device-width, initial-scale=0.9, maximum-scale=0.9">
23
   <meta name="viewport" content="width=device-width, initial-scale=0.9, maximum-scale=0.9">
32
 
24
 
33
-  </head>
34
-  <body>  
25
+  </head><body>  
35
 
26
 
36
     <div class="document">
27
     <div class="document">
37
       <div class="documentwrapper">
28
       <div class="documentwrapper">
43
 <p>By default searx can only act as an image proxy for result images,
34
 <p>By default searx can only act as an image proxy for result images,
44
 but it is possible to proxify all the result URLs with an external service,
35
 but it is possible to proxify all the result URLs with an external service,
45
 <a class="reference external" href="https://github.com/asciimoo/morty">morty</a>.</p>
36
 <a class="reference external" href="https://github.com/asciimoo/morty">morty</a>.</p>
46
-<p>To use this feature, morty has to be installed and activated in searx’s <code class="docutils literal"><span class="pre">settings.yml</span></code>.</p>
47
-<p>Add the following snippet to your <code class="docutils literal"><span class="pre">settings.yml</span></code> and restart searx:</p>
48
-<div class="code yaml highlight-default"><div class="highlight"><pre><span></span><span class="n">result_proxy</span><span class="p">:</span>
37
+<p>To use this feature, morty has to be installed and activated in searx’s <code class="docutils literal notranslate"><span class="pre">settings.yml</span></code>.</p>
38
+<p>Add the following snippet to your <code class="docutils literal notranslate"><span class="pre">settings.yml</span></code> and restart searx:</p>
39
+<div class="code yaml highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">result_proxy</span><span class="p">:</span>
49
     <span class="n">url</span> <span class="p">:</span> <span class="n">http</span><span class="p">:</span><span class="o">//</span><span class="mf">127.0</span><span class="o">.</span><span class="mf">0.1</span><span class="p">:</span><span class="mi">3000</span><span class="o">/</span>
40
     <span class="n">url</span> <span class="p">:</span> <span class="n">http</span><span class="p">:</span><span class="o">//</span><span class="mf">127.0</span><span class="o">.</span><span class="mf">0.1</span><span class="p">:</span><span class="mi">3000</span><span class="o">/</span>
50
     <span class="n">key</span> <span class="p">:</span> <span class="n">your_morty_proxy_key</span>
41
     <span class="n">key</span> <span class="p">:</span> <span class="n">your_morty_proxy_key</span>
51
 </pre></div>
42
 </pre></div>
52
 </div>
43
 </div>
53
-<p><code class="docutils literal"><span class="pre">url</span></code> is the address of the running morty service</p>
54
-<p><code class="docutils literal"><span class="pre">key</span></code> is an optional argument, see <a class="reference external" href="https://github.com/asciimoo/morty">morty’s README</a> for more information.</p>
44
+<p><code class="docutils literal notranslate"><span class="pre">url</span></code> is the address of the running morty service</p>
45
+<p><code class="docutils literal notranslate"><span class="pre">key</span></code> is an optional argument, see <a class="reference external" href="https://github.com/asciimoo/morty">morty’s README</a> for more information.</p>
55
 </div>
46
 </div>
56
 
47
 
57
 
48
 
73
     <li><a href="https://twitter.com/Searx_engine">Twitter</a></li>
64
     <li><a href="https://twitter.com/Searx_engine">Twitter</a></li>
74
 </ul>
65
 </ul>
75
 </div>
66
 </div>
67
+  <div role="note" aria-label="source link">
68
+    <h3>This Page</h3>
69
+    <ul class="this-page-menu">
70
+      <li><a href="../_sources/admin/morty.rst.txt"
71
+            rel="nofollow">Show Source</a></li>
72
+    </ul>
73
+   </div>
74
+<div id="searchbox" style="display: none" role="search">
75
+  <h3>Quick search</h3>
76
+    <div class="searchformwrapper">
77
+    <form class="search" action="../search.html" method="get">
78
+      <input type="text" name="q" />
79
+      <input type="submit" value="Go" />
80
+      <input type="hidden" name="check_keywords" value="yes" />
81
+      <input type="hidden" name="area" value="default" />
82
+    </form>
83
+    </div>
84
+</div>
85
+<script type="text/javascript">$('#searchbox').show(0);</script>
76
         </div>
86
         </div>
77
       </div>
87
       </div>
78
       <div class="clearer"></div>
88
       <div class="clearer"></div>

+ 35
- 16
blog/admin.html View File

4
 
4
 
5
 <html xmlns="http://www.w3.org/1999/xhtml">
5
 <html xmlns="http://www.w3.org/1999/xhtml">
6
   <head>
6
   <head>
7
+    <meta http-equiv="X-UA-Compatible" content="IE=Edge" />
7
     <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
8
     <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
8
     <title>Searx admin interface: manage your instance from your browser &#8212; searx 0.12.0 documentation</title>
9
     <title>Searx admin interface: manage your instance from your browser &#8212; searx 0.12.0 documentation</title>
9
     <link rel="stylesheet" href="../_static/style.css" type="text/css" />
10
     <link rel="stylesheet" href="../_static/style.css" type="text/css" />
10
     <link rel="stylesheet" href="../_static/pygments.css" type="text/css" />
11
     <link rel="stylesheet" href="../_static/pygments.css" type="text/css" />
11
-    <script type="text/javascript">
12
-      var DOCUMENTATION_OPTIONS = {
13
-        URL_ROOT:    '../',
14
-        VERSION:     '0.12.0',
15
-        COLLAPSE_INDEX: false,
16
-        FILE_SUFFIX: '.html',
17
-        HAS_SOURCE:  true,
18
-        SOURCELINK_SUFFIX: '.txt'
19
-      };
20
-    </script>
12
+    <script type="text/javascript" src="../_static/documentation_options.js"></script>
21
     <script type="text/javascript" src="../_static/jquery.js"></script>
13
     <script type="text/javascript" src="../_static/jquery.js"></script>
22
     <script type="text/javascript" src="../_static/underscore.js"></script>
14
     <script type="text/javascript" src="../_static/underscore.js"></script>
23
     <script type="text/javascript" src="../_static/doctools.js"></script>
15
     <script type="text/javascript" src="../_static/doctools.js"></script>
28
   <link media="only screen and (max-device-width: 480px)" href="../_static/small_flask.css" type= "text/css" rel="stylesheet" />
20
   <link media="only screen and (max-device-width: 480px)" href="../_static/small_flask.css" type= "text/css" rel="stylesheet" />
29
   <meta name="viewport" content="width=device-width, initial-scale=0.9, maximum-scale=0.9">
21
   <meta name="viewport" content="width=device-width, initial-scale=0.9, maximum-scale=0.9">
30
 
22
 
31
-  </head>
32
-  <body>  
23
+  </head><body>  
33
 
24
 
34
     <div class="document">
25
     <div class="document">
35
       <div class="documentwrapper">
26
       <div class="documentwrapper">
40
 <h1>Searx admin interface: manage your instance from your browser<a class="headerlink" href="#searx-admin-interface-manage-your-instance-from-your-browser" title="Permalink to this headline">¶</a></h1>
31
 <h1>Searx admin interface: manage your instance from your browser<a class="headerlink" href="#searx-admin-interface-manage-your-instance-from-your-browser" title="Permalink to this headline">¶</a></h1>
41
 <p>One of the biggest advantages of searx is being extremely customizable. But at first it can be daunting to newcomers.
32
 <p>One of the biggest advantages of searx is being extremely customizable. But at first it can be daunting to newcomers.
42
 A barrier of taking advantage of this feature is our ugly settings file which is sometimes hard to understand and edit.</p>
33
 A barrier of taking advantage of this feature is our ugly settings file which is sometimes hard to understand and edit.</p>
43
-<p>To make self-hosting searx more accessible a new tool is introduced, called <code class="docutils literal"><span class="pre">searx-admin</span></code>.
34
+<p>To make self-hosting searx more accessible a new tool is introduced, called <code class="docutils literal notranslate"><span class="pre">searx-admin</span></code>.
44
 It is a web application which is capable of managing your instance and manipulating its settings via a web UI.
35
 It is a web application which is capable of managing your instance and manipulating its settings via a web UI.
45
-It aims to replace editing of <code class="docutils literal"><span class="pre">settings.yml</span></code> for less experienced administrators or people
36
+It aims to replace editing of <code class="docutils literal notranslate"><span class="pre">settings.yml</span></code> for less experienced administrators or people
46
 who prefer graphical admin interfaces.</p>
37
 who prefer graphical admin interfaces.</p>
47
 <div class="align-center figure" id="id1">
38
 <div class="align-center figure" id="id1">
48
 <a class="reference internal image-reference" href="../_images/searx-admin-engines.png"><img alt="Screenshot of engine list" src="../_images/searx-admin-engines.png" style="width: 682.0px; height: 352.5px;" /></a>
39
 <a class="reference internal image-reference" href="../_images/searx-admin-engines.png"><img alt="Screenshot of engine list" src="../_images/searx-admin-engines.png" style="width: 682.0px; height: 352.5px;" /></a>
49
 <p class="caption"><span class="caption-text">Configuration page of engines</span></p>
40
 <p class="caption"><span class="caption-text">Configuration page of engines</span></p>
50
 </div>
41
 </div>
51
-<p>Since <code class="docutils literal"><span class="pre">searx-admin</span></code> acts as a supervisor for searx, we have decided to implement it
42
+<p>Since <code class="docutils literal notranslate"><span class="pre">searx-admin</span></code> acts as a supervisor for searx, we have decided to implement it
52
 as a standalone tool instead of part of searx. Another reason for making it a standalone
43
 as a standalone tool instead of part of searx. Another reason for making it a standalone
53
 tool is that the codebase and dependencies of searx should not grow because of a fully optional feature,
44
 tool is that the codebase and dependencies of searx should not grow because of a fully optional feature,
54
 which does not affect existing instances.</p>
45
 which does not affect existing instances.</p>
72
         </div>
63
         </div>
73
       </div>
64
       </div>
74
       <div class="sphinxsidebar" role="navigation" aria-label="main navigation">
65
       <div class="sphinxsidebar" role="navigation" aria-label="main navigation">
75
-        <div class="sphinxsidebarwrapper"><div class="sidebar_container body">
66
+        <div class="sphinxsidebarwrapper">
67
+  <h3><a href="../index.html">Table Of Contents</a></h3>
68
+  <ul>
69
+<li><a class="reference internal" href="#">Searx admin interface: manage your instance from your browser</a><ul>
70
+<li><a class="reference internal" href="#installation">Installation</a></li>
71
+<li><a class="reference internal" href="#acknowledgements">Acknowledgements</a></li>
72
+</ul>
73
+</li>
74
+</ul>
75
+<div class="sidebar_container body">
76
 <h1>Searx</h1>
76
 <h1>Searx</h1>
77
 <ul>
77
 <ul>
78
     <li><a href="../index.html">Home</a></li>
78
     <li><a href="../index.html">Home</a></li>
86
     <li><a href="https://twitter.com/Searx_engine">Twitter</a></li>
86
     <li><a href="https://twitter.com/Searx_engine">Twitter</a></li>
87
 </ul>
87
 </ul>
88
 </div>
88
 </div>
89
+  <div role="note" aria-label="source link">
90
+    <h3>This Page</h3>
91
+    <ul class="this-page-menu">
92
+      <li><a href="../_sources/blog/admin.rst.txt"
93
+            rel="nofollow">Show Source</a></li>
94
+    </ul>
95
+   </div>
96
+<div id="searchbox" style="display: none" role="search">
97
+  <h3>Quick search</h3>
98
+    <div class="searchformwrapper">
99
+    <form class="search" action="../search.html" method="get">
100
+      <input type="text" name="q" />
101
+      <input type="submit" value="Go" />
102
+      <input type="hidden" name="check_keywords" value="yes" />
103
+      <input type="hidden" name="area" value="default" />
104
+    </form>
105
+    </div>
106
+</div>
107
+<script type="text/javascript">$('#searchbox').show(0);</script>
89
         </div>
108
         </div>
90
       </div>
109
       </div>
91
       <div class="clearer"></div>
110
       <div class="clearer"></div>

+ 22
- 12
blog/blog.html View File

4
 
4
 
5
 <html xmlns="http://www.w3.org/1999/xhtml">
5
 <html xmlns="http://www.w3.org/1999/xhtml">
6
   <head>
6
   <head>
7
+    <meta http-equiv="X-UA-Compatible" content="IE=Edge" />
7
     <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
8
     <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
8
     <title>Blog &#8212; searx 0.12.0 documentation</title>
9
     <title>Blog &#8212; searx 0.12.0 documentation</title>
9
     <link rel="stylesheet" href="../_static/style.css" type="text/css" />
10
     <link rel="stylesheet" href="../_static/style.css" type="text/css" />
10
     <link rel="stylesheet" href="../_static/pygments.css" type="text/css" />
11
     <link rel="stylesheet" href="../_static/pygments.css" type="text/css" />
11
-    <script type="text/javascript">
12
-      var DOCUMENTATION_OPTIONS = {
13
-        URL_ROOT:    '../',
14
-        VERSION:     '0.12.0',
15
-        COLLAPSE_INDEX: false,
16
-        FILE_SUFFIX: '.html',
17
-        HAS_SOURCE:  true,
18
-        SOURCELINK_SUFFIX: '.txt'
19
-      };
20
-    </script>
12
+    <script type="text/javascript" src="../_static/documentation_options.js"></script>
21
     <script type="text/javascript" src="../_static/jquery.js"></script>
13
     <script type="text/javascript" src="../_static/jquery.js"></script>
22
     <script type="text/javascript" src="../_static/underscore.js"></script>
14
     <script type="text/javascript" src="../_static/underscore.js"></script>
23
     <script type="text/javascript" src="../_static/doctools.js"></script>
15
     <script type="text/javascript" src="../_static/doctools.js"></script>
28
   <link media="only screen and (max-device-width: 480px)" href="../_static/small_flask.css" type= "text/css" rel="stylesheet" />
20
   <link media="only screen and (max-device-width: 480px)" href="../_static/small_flask.css" type= "text/css" rel="stylesheet" />
29
   <meta name="viewport" content="width=device-width, initial-scale=0.9, maximum-scale=0.9">
21
   <meta name="viewport" content="width=device-width, initial-scale=0.9, maximum-scale=0.9">
30
 
22
 
31
-  </head>
32
-  <body>  
23
+  </head><body>  
33
 
24
 
34
     <div class="document">
25
     <div class="document">
35
       <div class="documentwrapper">
26
       <div class="documentwrapper">
65
     <li><a href="https://twitter.com/Searx_engine">Twitter</a></li>
56
     <li><a href="https://twitter.com/Searx_engine">Twitter</a></li>
66
 </ul>
57
 </ul>
67
 </div>
58
 </div>
59
+  <div role="note" aria-label="source link">
60
+    <h3>This Page</h3>
61
+    <ul class="this-page-menu">
62
+      <li><a href="../_sources/blog/blog.rst.txt"
63
+            rel="nofollow">Show Source</a></li>
64
+    </ul>
65
+   </div>
66
+<div id="searchbox" style="display: none" role="search">
67
+  <h3>Quick search</h3>
68
+    <div class="searchformwrapper">
69
+    <form class="search" action="../search.html" method="get">
70
+      <input type="text" name="q" />
71
+      <input type="submit" value="Go" />
72
+      <input type="hidden" name="check_keywords" value="yes" />
73
+      <input type="hidden" name="area" value="default" />
74
+    </form>
75
+    </div>
76
+</div>
77
+<script type="text/javascript">$('#searchbox').show(0);</script>
68
         </div>
78
         </div>
69
       </div>
79
       </div>
70
       <div class="clearer"></div>
80
       <div class="clearer"></div>

+ 35
- 14
blog/python3.html View File

4
 
4
 
5
 <html xmlns="http://www.w3.org/1999/xhtml">
5
 <html xmlns="http://www.w3.org/1999/xhtml">
6
   <head>
6
   <head>
7
+    <meta http-equiv="X-UA-Compatible" content="IE=Edge" />
7
     <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
8
     <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
8
     <title>Introducing Python3 support &#8212; searx 0.12.0 documentation</title>
9
     <title>Introducing Python3 support &#8212; searx 0.12.0 documentation</title>
9
     <link rel="stylesheet" href="../_static/style.css" type="text/css" />
10
     <link rel="stylesheet" href="../_static/style.css" type="text/css" />
10
     <link rel="stylesheet" href="../_static/pygments.css" type="text/css" />
11
     <link rel="stylesheet" href="../_static/pygments.css" type="text/css" />
11
-    <script type="text/javascript">
12
-      var DOCUMENTATION_OPTIONS = {
13
-        URL_ROOT:    '../',
14
-        VERSION:     '0.12.0',
15
-        COLLAPSE_INDEX: false,
16
-        FILE_SUFFIX: '.html',
17
-        HAS_SOURCE:  true,
18
-        SOURCELINK_SUFFIX: '.txt'
19
-      };
20
-    </script>
12
+    <script type="text/javascript" src="../_static/documentation_options.js"></script>
21
     <script type="text/javascript" src="../_static/jquery.js"></script>
13
     <script type="text/javascript" src="../_static/jquery.js"></script>
22
     <script type="text/javascript" src="../_static/underscore.js"></script>
14
     <script type="text/javascript" src="../_static/underscore.js"></script>
23
     <script type="text/javascript" src="../_static/doctools.js"></script>
15
     <script type="text/javascript" src="../_static/doctools.js"></script>
28
   <link media="only screen and (max-device-width: 480px)" href="../_static/small_flask.css" type= "text/css" rel="stylesheet" />
20
   <link media="only screen and (max-device-width: 480px)" href="../_static/small_flask.css" type= "text/css" rel="stylesheet" />
29
   <meta name="viewport" content="width=device-width, initial-scale=0.9, maximum-scale=0.9">
21
   <meta name="viewport" content="width=device-width, initial-scale=0.9, maximum-scale=0.9">
30
 
22
 
31
-  </head>
32
-  <body>  
23
+  </head><body>  
33
 
24
 
34
     <div class="document">
25
     <div class="document">
35
       <div class="documentwrapper">
26
       <div class="documentwrapper">
45
 <p>Please make sure that you run at least Python3.5.</p>
36
 <p>Please make sure that you run at least Python3.5.</p>
46
 <p>To run searx, first a Python3 virtualenv should be created. After entering the virtualenv,
37
 <p>To run searx, first a Python3 virtualenv should be created. After entering the virtualenv,
47
 dependencies must be installed. Then run searx with python3 instead of the usual python command.</p>
38
 dependencies must be installed. Then run searx with python3 instead of the usual python command.</p>
48
-<div class="code sh highlight-default"><div class="highlight"><pre><span></span><span class="n">virtualenv</span> <span class="o">-</span><span class="n">p</span> <span class="n">python3</span> <span class="n">venv3</span>
39
+<div class="code sh highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">virtualenv</span> <span class="o">-</span><span class="n">p</span> <span class="n">python3</span> <span class="n">venv3</span>
49
 <span class="n">source</span> <span class="n">venv3</span><span class="o">/</span><span class="nb">bin</span><span class="o">/</span><span class="n">activate</span>
40
 <span class="n">source</span> <span class="n">venv3</span><span class="o">/</span><span class="nb">bin</span><span class="o">/</span><span class="n">activate</span>
50
 <span class="n">pip3</span> <span class="n">install</span> <span class="o">-</span><span class="n">r</span> <span class="n">requirements</span><span class="o">.</span><span class="n">txt</span>
41
 <span class="n">pip3</span> <span class="n">install</span> <span class="o">-</span><span class="n">r</span> <span class="n">requirements</span><span class="o">.</span><span class="n">txt</span>
51
 <span class="n">python3</span> <span class="n">searx</span><span class="o">/</span><span class="n">webapp</span><span class="o">.</span><span class="n">py</span>
42
 <span class="n">python3</span> <span class="n">searx</span><span class="o">/</span><span class="n">webapp</span><span class="o">.</span><span class="n">py</span>
80
         </div>
71
         </div>
81
       </div>
72
       </div>
82
       <div class="sphinxsidebar" role="navigation" aria-label="main navigation">
73
       <div class="sphinxsidebar" role="navigation" aria-label="main navigation">
83
-        <div class="sphinxsidebarwrapper"><div class="sidebar_container body">
74
+        <div class="sphinxsidebarwrapper">
75
+  <h3><a href="../index.html">Table Of Contents</a></h3>
76
+  <ul>
77
+<li><a class="reference internal" href="#">Introducing Python3 support</a><ul>
78
+<li><a class="reference internal" href="#how-to-run-searx-using-python3">How to run searx using Python3</a></li>
79
+<li><a class="reference internal" href="#fun-facts">Fun facts</a></li>
80
+<li><a class="reference internal" href="#if-you-found-bugs">If you found bugs…</a></li>
81
+<li><a class="reference internal" href="#acknowledgement">Acknowledgement</a></li>
82
+</ul>
83
+</li>
84
+</ul>
85
+<div class="sidebar_container body">
84
 <h1>Searx</h1>
86
 <h1>Searx</h1>
85
 <ul>
87
 <ul>
86
     <li><a href="../index.html">Home</a></li>
88
     <li><a href="../index.html">Home</a></li>
94
     <li><a href="https://twitter.com/Searx_engine">Twitter</a></li>
96
     <li><a href="https://twitter.com/Searx_engine">Twitter</a></li>
95
 </ul>
97
 </ul>
96
 </div>
98
 </div>
99
+  <div role="note" aria-label="source link">
100
+    <h3>This Page</h3>
101
+    <ul class="this-page-menu">
102
+      <li><a href="../_sources/blog/python3.rst.txt"
103
+            rel="nofollow">Show Source</a></li>
104
+    </ul>
105
+   </div>
106
+<div id="searchbox" style="display: none" role="search">
107
+  <h3>Quick search</h3>
108
+    <div class="searchformwrapper">
109
+    <form class="search" action="../search.html" method="get">
110
+      <input type="text" name="q" />
111
+      <input type="submit" value="Go" />
112
+      <input type="hidden" name="check_keywords" value="yes" />
113
+      <input type="hidden" name="area" value="default" />
114
+    </form>
115
+    </div>
116
+</div>
117
+<script type="text/javascript">$('#searchbox').show(0);</script>
97
         </div>
118
         </div>
98
       </div>
119
       </div>
99
       <div class="clearer"></div>
120
       <div class="clearer"></div>

+ 37
- 13
dev/contribution_guide.html View File

4
 
4
 
5
 <html xmlns="http://www.w3.org/1999/xhtml">
5
 <html xmlns="http://www.w3.org/1999/xhtml">
6
   <head>
6
   <head>
7
+    <meta http-equiv="X-UA-Compatible" content="IE=Edge" />
7
     <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
8
     <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
8
     <title>How to contribute &#8212; searx 0.12.0 documentation</title>
9
     <title>How to contribute &#8212; searx 0.12.0 documentation</title>
9
     <link rel="stylesheet" href="../_static/style.css" type="text/css" />
10
     <link rel="stylesheet" href="../_static/style.css" type="text/css" />
10
     <link rel="stylesheet" href="../_static/pygments.css" type="text/css" />
11
     <link rel="stylesheet" href="../_static/pygments.css" type="text/css" />
11
-    <script type="text/javascript">
12
-      var DOCUMENTATION_OPTIONS = {
13
-        URL_ROOT:    '../',
14
-        VERSION:     '0.12.0',
15
-        COLLAPSE_INDEX: false,
16
-        FILE_SUFFIX: '.html',
17
-        HAS_SOURCE:  true,
18
-        SOURCELINK_SUFFIX: '.txt'
19
-      };
20
-    </script>
12
+    <script type="text/javascript" src="../_static/documentation_options.js"></script>
21
     <script type="text/javascript" src="../_static/jquery.js"></script>
13
     <script type="text/javascript" src="../_static/jquery.js"></script>
22
     <script type="text/javascript" src="../_static/underscore.js"></script>
14
     <script type="text/javascript" src="../_static/underscore.js"></script>
23
     <script type="text/javascript" src="../_static/doctools.js"></script>
15
     <script type="text/javascript" src="../_static/doctools.js"></script>
30
   <link media="only screen and (max-device-width: 480px)" href="../_static/small_flask.css" type= "text/css" rel="stylesheet" />
22
   <link media="only screen and (max-device-width: 480px)" href="../_static/small_flask.css" type= "text/css" rel="stylesheet" />
31
   <meta name="viewport" content="width=device-width, initial-scale=0.9, maximum-scale=0.9">
23
   <meta name="viewport" content="width=device-width, initial-scale=0.9, maximum-scale=0.9">
32
 
24
 
33
-  </head>
34
-  <body>  
25
+  </head><body>  
35
 
26
 
36
     <div class="document">
27
     <div class="document">
37
       <div class="documentwrapper">
28
       <div class="documentwrapper">
125
         </div>
116
         </div>
126
       </div>
117
       </div>
127
       <div class="sphinxsidebar" role="navigation" aria-label="main navigation">
118
       <div class="sphinxsidebar" role="navigation" aria-label="main navigation">
128
-        <div class="sphinxsidebarwrapper"><div class="sidebar_container body">
119
+        <div class="sphinxsidebarwrapper">
120
+  <h3><a href="../index.html">Table Of Contents</a></h3>
121
+  <ul>
122
+<li><a class="reference internal" href="#">How to contribute</a><ul>
123
+<li><a class="reference internal" href="#prime-directives-privacy-hackability">Prime directives: Privacy, Hackability</a><ul>
124
+<li><a class="reference internal" href="#privacy-by-design">Privacy-by-design</a></li>
125
+</ul>
126
+</li>
127
+<li><a class="reference internal" href="#code">Code</a></li>
128
+<li><a class="reference internal" href="#translation">Translation</a></li>
129
+<li><a class="reference internal" href="#documentation">Documentation</a></li>
130
+</ul>
131
+</li>
132
+</ul>
133
+<div class="sidebar_container body">
129
 <h1>Searx</h1>
134
 <h1>Searx</h1>
130
 <ul>
135
 <ul>
131
     <li><a href="../index.html">Home</a></li>
136
     <li><a href="../index.html">Home</a></li>
139
     <li><a href="https://twitter.com/Searx_engine">Twitter</a></li>
144
     <li><a href="https://twitter.com/Searx_engine">Twitter</a></li>
140
 </ul>
145
 </ul>
141
 </div>
146
 </div>
147
+  <div role="note" aria-label="source link">
148
+    <h3>This Page</h3>
149
+    <ul class="this-page-menu">
150
+      <li><a href="../_sources/dev/contribution_guide.rst.txt"
151
+            rel="nofollow">Show Source</a></li>
152
+    </ul>
153
+   </div>
154
+<div id="searchbox" style="display: none" role="search">
155
+  <h3>Quick search</h3>
156
+    <div class="searchformwrapper">
157
+    <form class="search" action="../search.html" method="get">
158
+      <input type="text" name="q" />
159
+      <input type="submit" value="Go" />
160
+      <input type="hidden" name="check_keywords" value="yes" />
161
+      <input type="hidden" name="area" value="default" />
162
+    </form>
163
+    </div>
164
+</div>
165
+<script type="text/javascript">$('#searchbox').show(0);</script>
142
         </div>
166
         </div>
143
       </div>
167
       </div>
144
       <div class="clearer"></div>
168
       <div class="clearer"></div>

+ 71
- 33
dev/engine_overview.html View File

4
 
4
 
5
 <html xmlns="http://www.w3.org/1999/xhtml">
5
 <html xmlns="http://www.w3.org/1999/xhtml">
6
   <head>
6
   <head>
7
+    <meta http-equiv="X-UA-Compatible" content="IE=Edge" />
7
     <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
8
     <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
8
     <title>Engine overview &#8212; searx 0.12.0 documentation</title>
9
     <title>Engine overview &#8212; searx 0.12.0 documentation</title>
9
     <link rel="stylesheet" href="../_static/style.css" type="text/css" />
10
     <link rel="stylesheet" href="../_static/style.css" type="text/css" />
10
     <link rel="stylesheet" href="../_static/pygments.css" type="text/css" />
11
     <link rel="stylesheet" href="../_static/pygments.css" type="text/css" />
11
-    <script type="text/javascript">
12
-      var DOCUMENTATION_OPTIONS = {
13
-        URL_ROOT:    '../',
14
-        VERSION:     '0.12.0',
15
-        COLLAPSE_INDEX: false,
16
-        FILE_SUFFIX: '.html',
17
-        HAS_SOURCE:  true,
18
-        SOURCELINK_SUFFIX: '.txt'
19
-      };
20
-    </script>
12
+    <script type="text/javascript" src="../_static/documentation_options.js"></script>
21
     <script type="text/javascript" src="../_static/jquery.js"></script>
13
     <script type="text/javascript" src="../_static/jquery.js"></script>
22
     <script type="text/javascript" src="../_static/underscore.js"></script>
14
     <script type="text/javascript" src="../_static/underscore.js"></script>
23
     <script type="text/javascript" src="../_static/doctools.js"></script>
15
     <script type="text/javascript" src="../_static/doctools.js"></script>
30
   <link media="only screen and (max-device-width: 480px)" href="../_static/small_flask.css" type= "text/css" rel="stylesheet" />
22
   <link media="only screen and (max-device-width: 480px)" href="../_static/small_flask.css" type= "text/css" rel="stylesheet" />
31
   <meta name="viewport" content="width=device-width, initial-scale=0.9, maximum-scale=0.9">
23
   <meta name="viewport" content="width=device-width, initial-scale=0.9, maximum-scale=0.9">
32
 
24
 
33
-  </head>
34
-  <body>  
25
+  </head><body>  
35
 
26
 
36
     <div class="document">
27
     <div class="document">
37
       <div class="documentwrapper">
28
       <div class="documentwrapper">
79
 <h2><a class="toc-backref" href="#id3">general engine configuration</a><a class="headerlink" href="#general-engine-configuration" title="Permalink to this headline">¶</a></h2>
70
 <h2><a class="toc-backref" href="#id3">general engine configuration</a><a class="headerlink" href="#general-engine-configuration" title="Permalink to this headline">¶</a></h2>
80
 <p>It is required to tell searx the type of results the engine provides. The
71
 <p>It is required to tell searx the type of results the engine provides. The
81
 arguments can be set in the engine file or in the settings file
72
 arguments can be set in the engine file or in the settings file
82
-(normally <code class="docutils literal"><span class="pre">settings.yml</span></code>). The arguments in the settings file override
73
+(normally <code class="docutils literal notranslate"><span class="pre">settings.yml</span></code>). The arguments in the settings file override
83
 the ones in the engine file.</p>
74
 the ones in the engine file.</p>
84
 <p>It does not matter if an option is stored in the engine file or in the
75
 <p>It does not matter if an option is stored in the engine file or in the
85
 settings. However, the standard way is the following:</p>
76
 settings. However, the standard way is the following:</p>
154
 <div class="section" id="overrides">
145
 <div class="section" id="overrides">
155
 <h3><a class="toc-backref" href="#id6">overrides</a><a class="headerlink" href="#overrides" title="Permalink to this headline">¶</a></h3>
146
 <h3><a class="toc-backref" href="#id6">overrides</a><a class="headerlink" href="#overrides" title="Permalink to this headline">¶</a></h3>
156
 <p>A few of the options have default values in the engine, but are
147
 <p>A few of the options have default values in the engine, but are
157
-often overwritten by the settings. If <code class="docutils literal"><span class="pre">None</span></code> is assigned to an option
148
+often overwritten by the settings. If <code class="docutils literal notranslate"><span class="pre">None</span></code> is assigned to an option
158
 in the engine file, it has to be redefined in the settings,
149
 in the engine file, it has to be redefined in the settings,
159
 otherwise searx will not start with that engine.</p>
150
 otherwise searx will not start with that engine.</p>
160
 <p>The naming of overrides is arbitrary. But the recommended
151
 <p>The naming of overrides is arbitrary. But the recommended
193
 </div>
184
 </div>
194
 <div class="section" id="example-code">
185
 <div class="section" id="example-code">
195
 <h3><a class="toc-backref" href="#id7">example code</a><a class="headerlink" href="#example-code" title="Permalink to this headline">¶</a></h3>
186
 <h3><a class="toc-backref" href="#id7">example code</a><a class="headerlink" href="#example-code" title="Permalink to this headline">¶</a></h3>
196
-<div class="code python highlight-default"><div class="highlight"><pre><span></span><span class="c1"># engine dependent config</span>
187
+<div class="code python highlight-default notranslate"><div class="highlight"><pre><span></span><span class="c1"># engine dependent config</span>
197
 <span class="n">categories</span> <span class="o">=</span> <span class="p">[</span><span class="s1">&#39;general&#39;</span><span class="p">]</span>
188
 <span class="n">categories</span> <span class="o">=</span> <span class="p">[</span><span class="s1">&#39;general&#39;</span><span class="p">]</span>
198
 <span class="n">paging</span> <span class="o">=</span> <span class="kc">True</span>
189
 <span class="n">paging</span> <span class="o">=</span> <span class="kc">True</span>
199
 <span class="n">language_support</span> <span class="o">=</span> <span class="kc">True</span>
190
 <span class="n">language_support</span> <span class="o">=</span> <span class="kc">True</span>
224
 <tbody valign="top">
215
 <tbody valign="top">
225
 <tr class="row-even"><td>url</td>
216
 <tr class="row-even"><td>url</td>
226
 <td>string</td>
217
 <td>string</td>
227
-<td><code class="docutils literal"><span class="pre">''</span></code></td>
218
+<td><code class="docutils literal notranslate"><span class="pre">''</span></code></td>
228
 </tr>
219
 </tr>
229
 <tr class="row-odd"><td>method</td>
220
 <tr class="row-odd"><td>method</td>
230
 <td>string</td>
221
 <td>string</td>
231
-<td><code class="docutils literal"><span class="pre">'GET'</span></code></td>
222
+<td><code class="docutils literal notranslate"><span class="pre">'GET'</span></code></td>
232
 </tr>
223
 </tr>
233
 <tr class="row-even"><td>headers</td>
224
 <tr class="row-even"><td>headers</td>
234
 <td>set</td>
225
 <td>set</td>
235
-<td><code class="docutils literal"><span class="pre">{}</span></code></td>
226
+<td><code class="docutils literal notranslate"><span class="pre">{}</span></code></td>
236
 </tr>
227
 </tr>
237
 <tr class="row-odd"><td>data</td>
228
 <tr class="row-odd"><td>data</td>
238
 <td>set</td>
229
 <td>set</td>
239
-<td><code class="docutils literal"><span class="pre">{}</span></code></td>
230
+<td><code class="docutils literal notranslate"><span class="pre">{}</span></code></td>
240
 </tr>
231
 </tr>
241
 <tr class="row-even"><td>cookies</td>
232
 <tr class="row-even"><td>cookies</td>
242
 <td>set</td>
233
 <td>set</td>
243
-<td><code class="docutils literal"><span class="pre">{}</span></code></td>
234
+<td><code class="docutils literal notranslate"><span class="pre">{}</span></code></td>
244
 </tr>
235
 </tr>
245
 <tr class="row-odd"><td>verify</td>
236
 <tr class="row-odd"><td>verify</td>
246
 <td>boolean</td>
237
 <td>boolean</td>
247
-<td><code class="docutils literal"><span class="pre">True</span></code></td>
238
+<td><code class="docutils literal notranslate"><span class="pre">True</span></code></td>
248
 </tr>
239
 </tr>
249
 <tr class="row-even"><td>headers.User-Agent</td>
240
 <tr class="row-even"><td>headers.User-Agent</td>
250
 <td>string</td>
241
 <td>string</td>
252
 </tr>
243
 </tr>
253
 <tr class="row-odd"><td>category</td>
244
 <tr class="row-odd"><td>category</td>
254
 <td>string</td>
245
 <td>string</td>
255
-<td>current category, like <code class="docutils literal"><span class="pre">'general'</span></code></td>
246
+<td>current category, like <code class="docutils literal notranslate"><span class="pre">'general'</span></code></td>
256
 </tr>
247
 </tr>
257
 <tr class="row-even"><td>started</td>
248
 <tr class="row-even"><td>started</td>
258
 <td>datetime</td>
249
 <td>datetime</td>
264
 </tr>
255
 </tr>
265
 <tr class="row-even"><td>language</td>
256
 <tr class="row-even"><td>language</td>
266
 <td>string</td>
257
 <td>string</td>
267
-<td>specific language code like <code class="docutils literal"><span class="pre">'en_US'</span></code>, or <code class="docutils literal"><span class="pre">'all'</span></code> if unspecified</td>
258
+<td>specific language code like <code class="docutils literal notranslate"><span class="pre">'en_US'</span></code>, or <code class="docutils literal notranslate"><span class="pre">'all'</span></code> if unspecified</td>
268
 </tr>
259
 </tr>
269
 </tbody>
260
 </tbody>
270
 </table>
261
 </table>
271
 </div>
262
 </div>
272
 <div class="section" id="parsed-arguments">
263
 <div class="section" id="parsed-arguments">
273
 <h3><a class="toc-backref" href="#id10">parsed arguments</a><a class="headerlink" href="#parsed-arguments" title="Permalink to this headline">¶</a></h3>
264
 <h3><a class="toc-backref" href="#id10">parsed arguments</a><a class="headerlink" href="#parsed-arguments" title="Permalink to this headline">¶</a></h3>
274
-<p>The function <code class="docutils literal"><span class="pre">def</span> <span class="pre">request(query,</span> <span class="pre">params):</span></code> always returns the
275
-<code class="docutils literal"><span class="pre">params</span></code> variable. Inside searx, the following paramters can be
265
+<p>The function <code class="docutils literal notranslate"><span class="pre">def</span> <span class="pre">request(query,</span> <span class="pre">params):</span></code> always returns the
266
+<code class="docutils literal notranslate"><span class="pre">params</span></code> variable. Inside searx, the following paramters can be
276
 used to specify a search request:</p>
267
 used to specify a search request:</p>
277
 <table border="1" class="docutils">
268
 <table border="1" class="docutils">
278
 <colgroup>
269
 <colgroup>
301
 </tr>
292
 </tr>
302
 <tr class="row-odd"><td>data</td>
293
 <tr class="row-odd"><td>data</td>
303
 <td>set</td>
294
 <td>set</td>
304
-<td>HTTP data information (parsed if <code class="docutils literal"><span class="pre">method</span> <span class="pre">!=</span> <span class="pre">'GET'</span></code>)</td>
295
+<td>HTTP data information (parsed if <code class="docutils literal notranslate"><span class="pre">method</span> <span class="pre">!=</span> <span class="pre">'GET'</span></code>)</td>
305
 </tr>
296
 </tr>
306
 <tr class="row-even"><td>cookies</td>
297
 <tr class="row-even"><td>cookies</td>
307
 <td>set</td>
298
 <td>set</td>
316
 </div>
307
 </div>
317
 <div class="section" id="id1">
308
 <div class="section" id="id1">
318
 <h3><a class="toc-backref" href="#id11">example code</a><a class="headerlink" href="#id1" title="Permalink to this headline">¶</a></h3>
309
 <h3><a class="toc-backref" href="#id11">example code</a><a class="headerlink" href="#id1" title="Permalink to this headline">¶</a></h3>
319
-<div class="code python highlight-default"><div class="highlight"><pre><span></span><span class="c1"># search-url</span>
310
+<div class="code python highlight-default notranslate"><div class="highlight"><pre><span></span><span class="c1"># search-url</span>
320
 <span class="n">base_url</span> <span class="o">=</span> <span class="s1">&#39;https://example.com/&#39;</span>
311
 <span class="n">base_url</span> <span class="o">=</span> <span class="s1">&#39;https://example.com/&#39;</span>
321
 <span class="n">search_string</span> <span class="o">=</span> <span class="s1">&#39;search?</span><span class="si">{query}</span><span class="s1">&amp;page=</span><span class="si">{page}</span><span class="s1">&#39;</span>
312
 <span class="n">search_string</span> <span class="o">=</span> <span class="s1">&#39;search?</span><span class="si">{query}</span><span class="s1">&amp;page=</span><span class="si">{page}</span><span class="s1">&#39;</span>
322
 
313
 
345
 <li>map</li>
336
 <li>map</li>
346
 </ul>
337
 </ul>
347
 <p>To set another media-type as default, the parameter
338
 <p>To set another media-type as default, the parameter
348
-<code class="docutils literal"><span class="pre">template</span></code> must be set to the desired type.</p>
339
+<code class="docutils literal notranslate"><span class="pre">template</span></code> must be set to the desired type.</p>
349
 <div class="section" id="default">
340
 <div class="section" id="default">
350
 <h3><a class="toc-backref" href="#id13">default</a><a class="headerlink" href="#default" title="Permalink to this headline">¶</a></h3>
341
 <h3><a class="toc-backref" href="#id13">default</a><a class="headerlink" href="#default" title="Permalink to this headline">¶</a></h3>
351
 <table border="1" class="docutils">
342
 <table border="1" class="docutils">
389
 </thead>
380
 </thead>
390
 <tbody valign="top">
381
 <tbody valign="top">
391
 <tr class="row-even"><td>template</td>
382
 <tr class="row-even"><td>template</td>
392
-<td>is set to <code class="docutils literal"><span class="pre">images.html</span></code></td>
383
+<td>is set to <code class="docutils literal notranslate"><span class="pre">images.html</span></code></td>
393
 </tr>
384
 </tr>
394
 <tr class="row-odd"><td>url</td>
385
 <tr class="row-odd"><td>url</td>
395
 <td>string, url to the result site</td>
386
 <td>string, url to the result site</td>
426
 </thead>
417
 </thead>
427
 <tbody valign="top">
418
 <tbody valign="top">
428
 <tr class="row-even"><td>template</td>
419
 <tr class="row-even"><td>template</td>
429
-<td>is set to <code class="docutils literal"><span class="pre">videos.html</span></code></td>
420
+<td>is set to <code class="docutils literal notranslate"><span class="pre">videos.html</span></code></td>
430
 </tr>
421
 </tr>
431
 <tr class="row-odd"><td>url</td>
422
 <tr class="row-odd"><td>url</td>
432
 <td>string, url of the result</td>
423
 <td>string, url of the result</td>
460
 </thead>
451
 </thead>
461
 <tbody valign="top">
452
 <tbody valign="top">
462
 <tr class="row-even"><td>template</td>
453
 <tr class="row-even"><td>template</td>
463
-<td>is set to <code class="docutils literal"><span class="pre">torrent.html</span></code></td>
454
+<td>is set to <code class="docutils literal notranslate"><span class="pre">torrent.html</span></code></td>
464
 </tr>
455
 </tr>
465
 <tr class="row-odd"><td>url</td>
456
 <tr class="row-odd"><td>url</td>
466
 <td>string, url of the result</td>
457
 <td>string, url of the result</td>
527
 <td>longitude of result (in decimal format)</td>
518
 <td>longitude of result (in decimal format)</td>
528
 </tr>
519
 </tr>
529
 <tr class="row-even"><td>boundingbox</td>
520
 <tr class="row-even"><td>boundingbox</td>
530
-<td>boundingbox of result (array of 4. values <code class="docutils literal"><span class="pre">[lat-min,</span> <span class="pre">lat-max,</span> <span class="pre">lon-min,</span> <span class="pre">lon-max]</span></code>)</td>
521
+<td>boundingbox of result (array of 4. values <code class="docutils literal notranslate"><span class="pre">[lat-min,</span> <span class="pre">lat-max,</span> <span class="pre">lon-min,</span> <span class="pre">lon-max]</span></code>)</td>
531
 </tr>
522
 </tr>
532
 <tr class="row-odd"><td>geojson</td>
523
 <tr class="row-odd"><td>geojson</td>
533
 <td>geojson of result (<a class="reference external" href="http://geojson.org">http://geojson.org</a>)</td>
524
 <td>geojson of result (<a class="reference external" href="http://geojson.org">http://geojson.org</a>)</td>
567
         </div>
558
         </div>
568
       </div>
559
       </div>
569
       <div class="sphinxsidebar" role="navigation" aria-label="main navigation">
560
       <div class="sphinxsidebar" role="navigation" aria-label="main navigation">
570
-        <div class="sphinxsidebarwrapper"><div class="sidebar_container body">
561
+        <div class="sphinxsidebarwrapper">
562
+  <h3><a href="../index.html">Table Of Contents</a></h3>
563
+  <ul>
564
+<li><a class="reference internal" href="#">Engine overview</a><ul>
565
+<li><a class="reference internal" href="#general-engine-configuration">general engine configuration</a><ul>
566
+<li><a class="reference internal" href="#engine-file">engine file</a></li>
567
+<li><a class="reference internal" href="#settings-yml">settings.yml</a></li>
568
+<li><a class="reference internal" href="#overrides">overrides</a></li>
569
+<li><a class="reference internal" href="#example-code">example code</a></li>
570
+</ul>
571
+</li>
572
+<li><a class="reference internal" href="#making-a-request">making a request</a><ul>
573
+<li><a class="reference internal" href="#passed-arguments">passed arguments</a></li>
574
+<li><a class="reference internal" href="#parsed-arguments">parsed arguments</a></li>
575
+<li><a class="reference internal" href="#id1">example code</a></li>
576
+</ul>
577
+</li>
578
+<li><a class="reference internal" href="#returned-results">returned results</a><ul>
579
+<li><a class="reference internal" href="#default">default</a></li>
580
+<li><a class="reference internal" href="#images">images</a></li>
581
+<li><a class="reference internal" href="#videos">videos</a></li>
582
+<li><a class="reference internal" href="#torrent">torrent</a></li>
583
+<li><a class="reference internal" href="#map">map</a></li>
584
+</ul>
585
+</li>
586
+</ul>
587
+</li>
588
+</ul>
589
+<div class="sidebar_container body">
571
 <h1>Searx</h1>
590
 <h1>Searx</h1>
572
 <ul>
591
 <ul>
573
     <li><a href="../index.html">Home</a></li>
592
     <li><a href="../index.html">Home</a></li>
581
     <li><a href="https://twitter.com/Searx_engine">Twitter</a></li>
600
     <li><a href="https://twitter.com/Searx_engine">Twitter</a></li>
582
 </ul>
601
 </ul>
583
 </div>
602
 </div>
603
+  <div role="note" aria-label="source link">
604
+    <h3>This Page</h3>
605
+    <ul class="this-page-menu">
606
+      <li><a href="../_sources/dev/engine_overview.rst.txt"
607
+            rel="nofollow">Show Source</a></li>
608
+    </ul>
609
+   </div>
610
+<div id="searchbox" style="display: none" role="search">
611
+  <h3>Quick search</h3>
612
+    <div class="searchformwrapper">
613
+    <form class="search" action="../search.html" method="get">
614
+      <input type="text" name="q" />
615
+      <input type="submit" value="Go" />
616
+      <input type="hidden" name="check_keywords" value="yes" />
617
+      <input type="hidden" name="area" value="default" />
618
+    </form>
619
+    </div>
620
+</div>
621
+<script type="text/javascript">$('#searchbox').show(0);</script>
584
         </div>
622
         </div>
585
       </div>
623
       </div>
586
       <div class="clearer"></div>
624
       <div class="clearer"></div>

+ 82
- 43
dev/install/installation.html View File

4
 
4
 
5
 <html xmlns="http://www.w3.org/1999/xhtml">
5
 <html xmlns="http://www.w3.org/1999/xhtml">
6
   <head>
6
   <head>
7
+    <meta http-equiv="X-UA-Compatible" content="IE=Edge" />
7
     <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
8
     <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
8
     <title>Installation &#8212; searx 0.12.0 documentation</title>
9
     <title>Installation &#8212; searx 0.12.0 documentation</title>
9
     <link rel="stylesheet" href="../../_static/style.css" type="text/css" />
10
     <link rel="stylesheet" href="../../_static/style.css" type="text/css" />
10
     <link rel="stylesheet" href="../../_static/pygments.css" type="text/css" />
11
     <link rel="stylesheet" href="../../_static/pygments.css" type="text/css" />
11
-    <script type="text/javascript">
12
-      var DOCUMENTATION_OPTIONS = {
13
-        URL_ROOT:    '../../',
14
-        VERSION:     '0.12.0',
15
-        COLLAPSE_INDEX: false,
16
-        FILE_SUFFIX: '.html',
17
-        HAS_SOURCE:  true,
18
-        SOURCELINK_SUFFIX: '.txt'
19
-      };
20
-    </script>
12
+    <script type="text/javascript" src="../../_static/documentation_options.js"></script>
21
     <script type="text/javascript" src="../../_static/jquery.js"></script>
13
     <script type="text/javascript" src="../../_static/jquery.js"></script>
22
     <script type="text/javascript" src="../../_static/underscore.js"></script>
14
     <script type="text/javascript" src="../../_static/underscore.js"></script>
23
     <script type="text/javascript" src="../../_static/doctools.js"></script>
15
     <script type="text/javascript" src="../../_static/doctools.js"></script>
30
   <link media="only screen and (max-device-width: 480px)" href="../../_static/small_flask.css" type= "text/css" rel="stylesheet" />
22
   <link media="only screen and (max-device-width: 480px)" href="../../_static/small_flask.css" type= "text/css" rel="stylesheet" />
31
   <meta name="viewport" content="width=device-width, initial-scale=0.9, maximum-scale=0.9">
23
   <meta name="viewport" content="width=device-width, initial-scale=0.9, maximum-scale=0.9">
32
 
24
 
33
-  </head>
34
-  <body>  
25
+  </head><body>  
35
 
26
 
36
     <div class="document">
27
     <div class="document">
37
       <div class="documentwrapper">
28
       <div class="documentwrapper">
64
 <h2><a class="toc-backref" href="#id4">Basic installation</a><a class="headerlink" href="#basic-installation" title="Permalink to this headline">¶</a></h2>
55
 <h2><a class="toc-backref" href="#id4">Basic installation</a><a class="headerlink" href="#basic-installation" title="Permalink to this headline">¶</a></h2>
65
 <p>Step by step installation for Debian/Ubuntu with virtualenv. For Ubuntu, be sure to have enable universe repository.</p>
56
 <p>Step by step installation for Debian/Ubuntu with virtualenv. For Ubuntu, be sure to have enable universe repository.</p>
66
 <p>Install packages:</p>
57
 <p>Install packages:</p>
67
-<div class="code sh highlight-default"><div class="highlight"><pre><span></span><span class="n">sudo</span> <span class="n">apt</span><span class="o">-</span><span class="n">get</span> <span class="n">install</span> <span class="n">git</span> <span class="n">build</span><span class="o">-</span><span class="n">essential</span> <span class="n">libxslt</span><span class="o">-</span><span class="n">dev</span> <span class="n">python</span><span class="o">-</span><span class="n">dev</span> <span class="n">python</span><span class="o">-</span><span class="n">virtualenv</span> <span class="n">python</span><span class="o">-</span><span class="n">babel</span> <span class="n">zlib1g</span><span class="o">-</span><span class="n">dev</span> <span class="n">libffi</span><span class="o">-</span><span class="n">dev</span> <span class="n">libssl</span><span class="o">-</span><span class="n">dev</span>
58
+<div class="code sh highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">sudo</span> <span class="n">apt</span><span class="o">-</span><span class="n">get</span> <span class="n">install</span> <span class="n">git</span> <span class="n">build</span><span class="o">-</span><span class="n">essential</span> <span class="n">libxslt</span><span class="o">-</span><span class="n">dev</span> <span class="n">python</span><span class="o">-</span><span class="n">dev</span> <span class="n">python</span><span class="o">-</span><span class="n">virtualenv</span> <span class="n">virtualenv</span> <span class="n">python</span><span class="o">-</span><span class="n">babel</span> <span class="n">zlib1g</span><span class="o">-</span><span class="n">dev</span> <span class="n">libffi</span><span class="o">-</span><span class="n">dev</span> <span class="n">libssl</span><span class="o">-</span><span class="n">dev</span>
68
 </pre></div>
59
 </pre></div>
69
 </div>
60
 </div>
70
 <p>Install searx:</p>
61
 <p>Install searx:</p>
71
-<div class="code sh highlight-default"><div class="highlight"><pre><span></span><span class="n">cd</span> <span class="o">/</span><span class="n">usr</span><span class="o">/</span><span class="n">local</span>
62
+<div class="code sh highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">cd</span> <span class="o">/</span><span class="n">usr</span><span class="o">/</span><span class="n">local</span>
72
 <span class="n">sudo</span> <span class="n">git</span> <span class="n">clone</span> <span class="n">https</span><span class="p">:</span><span class="o">//</span><span class="n">github</span><span class="o">.</span><span class="n">com</span><span class="o">/</span><span class="n">asciimoo</span><span class="o">/</span><span class="n">searx</span><span class="o">.</span><span class="n">git</span>
63
 <span class="n">sudo</span> <span class="n">git</span> <span class="n">clone</span> <span class="n">https</span><span class="p">:</span><span class="o">//</span><span class="n">github</span><span class="o">.</span><span class="n">com</span><span class="o">/</span><span class="n">asciimoo</span><span class="o">/</span><span class="n">searx</span><span class="o">.</span><span class="n">git</span>
73
 <span class="n">sudo</span> <span class="n">useradd</span> <span class="n">searx</span> <span class="o">-</span><span class="n">d</span> <span class="o">/</span><span class="n">usr</span><span class="o">/</span><span class="n">local</span><span class="o">/</span><span class="n">searx</span>
64
 <span class="n">sudo</span> <span class="n">useradd</span> <span class="n">searx</span> <span class="o">-</span><span class="n">d</span> <span class="o">/</span><span class="n">usr</span><span class="o">/</span><span class="n">local</span><span class="o">/</span><span class="n">searx</span>
74
 <span class="n">sudo</span> <span class="n">chown</span> <span class="n">searx</span><span class="p">:</span><span class="n">searx</span> <span class="o">-</span><span class="n">R</span> <span class="o">/</span><span class="n">usr</span><span class="o">/</span><span class="n">local</span><span class="o">/</span><span class="n">searx</span>
65
 <span class="n">sudo</span> <span class="n">chown</span> <span class="n">searx</span><span class="p">:</span><span class="n">searx</span> <span class="o">-</span><span class="n">R</span> <span class="o">/</span><span class="n">usr</span><span class="o">/</span><span class="n">local</span><span class="o">/</span><span class="n">searx</span>
75
 </pre></div>
66
 </pre></div>
76
 </div>
67
 </div>
77
 <p>Install dependencies in a virtualenv:</p>
68
 <p>Install dependencies in a virtualenv:</p>
78
-<div class="code sh highlight-default"><div class="highlight"><pre><span></span><span class="n">sudo</span> <span class="o">-</span><span class="n">u</span> <span class="n">searx</span> <span class="o">-</span><span class="n">i</span>
69
+<div class="code sh highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">sudo</span> <span class="o">-</span><span class="n">u</span> <span class="n">searx</span> <span class="o">-</span><span class="n">i</span>
79
 <span class="n">cd</span> <span class="o">/</span><span class="n">usr</span><span class="o">/</span><span class="n">local</span><span class="o">/</span><span class="n">searx</span>
70
 <span class="n">cd</span> <span class="o">/</span><span class="n">usr</span><span class="o">/</span><span class="n">local</span><span class="o">/</span><span class="n">searx</span>
80
 <span class="n">virtualenv</span> <span class="n">searx</span><span class="o">-</span><span class="n">ve</span>
71
 <span class="n">virtualenv</span> <span class="n">searx</span><span class="o">-</span><span class="n">ve</span>
81
 <span class="o">.</span> <span class="o">./</span><span class="n">searx</span><span class="o">-</span><span class="n">ve</span><span class="o">/</span><span class="nb">bin</span><span class="o">/</span><span class="n">activate</span>
72
 <span class="o">.</span> <span class="o">./</span><span class="n">searx</span><span class="o">-</span><span class="n">ve</span><span class="o">/</span><span class="nb">bin</span><span class="o">/</span><span class="n">activate</span>
85
 </div>
76
 </div>
86
 <div class="section" id="configuration">
77
 <div class="section" id="configuration">
87
 <h2><a class="toc-backref" href="#id5">Configuration</a><a class="headerlink" href="#configuration" title="Permalink to this headline">¶</a></h2>
78
 <h2><a class="toc-backref" href="#id5">Configuration</a><a class="headerlink" href="#configuration" title="Permalink to this headline">¶</a></h2>
88
-<div class="code sh highlight-default"><div class="highlight"><pre><span></span><span class="n">sed</span> <span class="o">-</span><span class="n">i</span> <span class="o">-</span><span class="n">e</span> <span class="s2">&quot;s/ultrasecretkey/`openssl rand -hex 16`/g&quot;</span> <span class="n">searx</span><span class="o">/</span><span class="n">settings</span><span class="o">.</span><span class="n">yml</span>
79
+<div class="code sh highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">sed</span> <span class="o">-</span><span class="n">i</span> <span class="o">-</span><span class="n">e</span> <span class="s2">&quot;s/ultrasecretkey/`openssl rand -hex 16`/g&quot;</span> <span class="n">searx</span><span class="o">/</span><span class="n">settings</span><span class="o">.</span><span class="n">yml</span>
89
 </pre></div>
80
 </pre></div>
90
 </div>
81
 </div>
91
 <p>Edit searx/settings.yml if necessary.</p>
82
 <p>Edit searx/settings.yml if necessary.</p>
93
 <div class="section" id="check">
84
 <div class="section" id="check">
94
 <h2><a class="toc-backref" href="#id6">Check</a><a class="headerlink" href="#check" title="Permalink to this headline">¶</a></h2>
85
 <h2><a class="toc-backref" href="#id6">Check</a><a class="headerlink" href="#check" title="Permalink to this headline">¶</a></h2>
95
 <p>Start searx:</p>
86
 <p>Start searx:</p>
96
-<div class="code sh highlight-default"><div class="highlight"><pre><span></span><span class="n">python</span> <span class="n">searx</span><span class="o">/</span><span class="n">webapp</span><span class="o">.</span><span class="n">py</span>
87
+<div class="code sh highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">python</span> <span class="n">searx</span><span class="o">/</span><span class="n">webapp</span><span class="o">.</span><span class="n">py</span>
97
 </pre></div>
88
 </pre></div>
98
 </div>
89
 </div>
99
 <p>Go to <a class="reference external" href="http://localhost:8888">http://localhost:8888</a></p>
90
 <p>Go to <a class="reference external" href="http://localhost:8888">http://localhost:8888</a></p>
100
 <p>If everything works fine, disable the debug option in settings.yml:</p>
91
 <p>If everything works fine, disable the debug option in settings.yml:</p>
101
-<div class="code sh highlight-default"><div class="highlight"><pre><span></span><span class="n">sed</span> <span class="o">-</span><span class="n">i</span> <span class="o">-</span><span class="n">e</span> <span class="s2">&quot;s/debug : True/debug : False/g&quot;</span> <span class="n">searx</span><span class="o">/</span><span class="n">settings</span><span class="o">.</span><span class="n">yml</span>
92
+<div class="code sh highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">sed</span> <span class="o">-</span><span class="n">i</span> <span class="o">-</span><span class="n">e</span> <span class="s2">&quot;s/debug : True/debug : False/g&quot;</span> <span class="n">searx</span><span class="o">/</span><span class="n">settings</span><span class="o">.</span><span class="n">yml</span>
102
 </pre></div>
93
 </pre></div>
103
 </div>
94
 </div>
104
 <p>At this point searx is not demonized ; uwsgi allows this.</p>
95
 <p>At this point searx is not demonized ; uwsgi allows this.</p>
108
 <div class="section" id="uwsgi">
99
 <div class="section" id="uwsgi">
109
 <h2><a class="toc-backref" href="#id7">uwsgi</a><a class="headerlink" href="#uwsgi" title="Permalink to this headline">¶</a></h2>
100
 <h2><a class="toc-backref" href="#id7">uwsgi</a><a class="headerlink" href="#uwsgi" title="Permalink to this headline">¶</a></h2>
110
 <p>Install packages:</p>
101
 <p>Install packages:</p>
111
-<div class="code sh highlight-default"><div class="highlight"><pre><span></span><span class="n">sudo</span> <span class="n">apt</span><span class="o">-</span><span class="n">get</span> <span class="n">install</span> <span class="n">uwsgi</span> <span class="n">uwsgi</span><span class="o">-</span><span class="n">plugin</span><span class="o">-</span><span class="n">python</span>
102
+<div class="code sh highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">sudo</span> <span class="n">apt</span><span class="o">-</span><span class="n">get</span> <span class="n">install</span> <span class="n">uwsgi</span> <span class="n">uwsgi</span><span class="o">-</span><span class="n">plugin</span><span class="o">-</span><span class="n">python</span>
112
 </pre></div>
103
 </pre></div>
113
 </div>
104
 </div>
114
 <p>Create the configuration file /etc/uwsgi/apps-available/searx.ini with
105
 <p>Create the configuration file /etc/uwsgi/apps-available/searx.ini with
115
 this content:</p>
106
 this content:</p>
116
-<div class="highlight-default"><div class="highlight"><pre><span></span><span class="p">[</span><span class="n">uwsgi</span><span class="p">]</span>
107
+<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="p">[</span><span class="n">uwsgi</span><span class="p">]</span>
117
 <span class="c1"># Who will run the code</span>
108
 <span class="c1"># Who will run the code</span>
118
 <span class="n">uid</span> <span class="o">=</span> <span class="n">searx</span>
109
 <span class="n">uid</span> <span class="o">=</span> <span class="n">searx</span>
119
 <span class="n">gid</span> <span class="o">=</span> <span class="n">searx</span>
110
 <span class="n">gid</span> <span class="o">=</span> <span class="n">searx</span>
144
 </pre></div>
135
 </pre></div>
145
 </div>
136
 </div>
146
 <p>Activate the uwsgi application and restart:</p>
137
 <p>Activate the uwsgi application and restart:</p>
147
-<div class="code sh highlight-default"><div class="highlight"><pre><span></span><span class="n">cd</span> <span class="o">/</span><span class="n">etc</span><span class="o">/</span><span class="n">uwsgi</span><span class="o">/</span><span class="n">apps</span><span class="o">-</span><span class="n">enabled</span>
138
+<div class="code sh highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">cd</span> <span class="o">/</span><span class="n">etc</span><span class="o">/</span><span class="n">uwsgi</span><span class="o">/</span><span class="n">apps</span><span class="o">-</span><span class="n">enabled</span>
148
 <span class="n">ln</span> <span class="o">-</span><span class="n">s</span> <span class="o">../</span><span class="n">apps</span><span class="o">-</span><span class="n">available</span><span class="o">/</span><span class="n">searx</span><span class="o">.</span><span class="n">ini</span>
139
 <span class="n">ln</span> <span class="o">-</span><span class="n">s</span> <span class="o">../</span><span class="n">apps</span><span class="o">-</span><span class="n">available</span><span class="o">/</span><span class="n">searx</span><span class="o">.</span><span class="n">ini</span>
149
 <span class="o">/</span><span class="n">etc</span><span class="o">/</span><span class="n">init</span><span class="o">.</span><span class="n">d</span><span class="o">/</span><span class="n">uwsgi</span> <span class="n">restart</span>
140
 <span class="o">/</span><span class="n">etc</span><span class="o">/</span><span class="n">init</span><span class="o">.</span><span class="n">d</span><span class="o">/</span><span class="n">uwsgi</span> <span class="n">restart</span>
150
 </pre></div>
141
 </pre></div>
156
 <h3><a class="toc-backref" href="#id9">with nginx</a><a class="headerlink" href="#with-nginx" title="Permalink to this headline">¶</a></h3>
147
 <h3><a class="toc-backref" href="#id9">with nginx</a><a class="headerlink" href="#with-nginx" title="Permalink to this headline">¶</a></h3>
157
 <p>If nginx is not installed (uwsgi will not work with the package
148
 <p>If nginx is not installed (uwsgi will not work with the package
158
 nginx-light):</p>
149
 nginx-light):</p>
159
-<div class="code sh highlight-default"><div class="highlight"><pre><span></span><span class="n">sudo</span> <span class="n">apt</span><span class="o">-</span><span class="n">get</span> <span class="n">install</span> <span class="n">nginx</span>
150
+<div class="code sh highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">sudo</span> <span class="n">apt</span><span class="o">-</span><span class="n">get</span> <span class="n">install</span> <span class="n">nginx</span>
160
 </pre></div>
151
 </pre></div>
161
 </div>
152
 </div>
162
 <div class="section" id="hosted-at">
153
 <div class="section" id="hosted-at">
163
 <h4>Hosted at /<a class="headerlink" href="#hosted-at" title="Permalink to this headline">¶</a></h4>
154
 <h4>Hosted at /<a class="headerlink" href="#hosted-at" title="Permalink to this headline">¶</a></h4>
164
 <p>Create the configuration file /etc/nginx/sites-available/searx with this
155
 <p>Create the configuration file /etc/nginx/sites-available/searx with this
165
 content:</p>
156
 content:</p>
166
-<div class="code nginx highlight-default"><div class="highlight"><pre><span></span><span class="n">server</span> <span class="p">{</span>
157
+<div class="code nginx highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">server</span> <span class="p">{</span>
167
     <span class="n">listen</span> <span class="mi">80</span><span class="p">;</span>
158
     <span class="n">listen</span> <span class="mi">80</span><span class="p">;</span>
168
     <span class="n">server_name</span> <span class="n">searx</span><span class="o">.</span><span class="n">example</span><span class="o">.</span><span class="n">com</span><span class="p">;</span>
159
     <span class="n">server_name</span> <span class="n">searx</span><span class="o">.</span><span class="n">example</span><span class="o">.</span><span class="n">com</span><span class="p">;</span>
169
     <span class="n">root</span> <span class="o">/</span><span class="n">usr</span><span class="o">/</span><span class="n">local</span><span class="o">/</span><span class="n">searx</span><span class="p">;</span>
160
     <span class="n">root</span> <span class="o">/</span><span class="n">usr</span><span class="o">/</span><span class="n">local</span><span class="o">/</span><span class="n">searx</span><span class="p">;</span>
176
 </pre></div>
167
 </pre></div>
177
 </div>
168
 </div>
178
 <p>Restart service:</p>
169
 <p>Restart service:</p>
179
-<div class="code sh highlight-default"><div class="highlight"><pre><span></span><span class="n">sudo</span> <span class="n">service</span> <span class="n">nginx</span> <span class="n">restart</span>
170
+<div class="code sh highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">sudo</span> <span class="n">service</span> <span class="n">nginx</span> <span class="n">restart</span>
180
 <span class="n">sudo</span> <span class="n">service</span> <span class="n">uwsgi</span> <span class="n">restart</span>
171
 <span class="n">sudo</span> <span class="n">service</span> <span class="n">uwsgi</span> <span class="n">restart</span>
181
 </pre></div>
172
 </pre></div>
182
 </div>
173
 </div>
185
 <h4>from subdirectory URL (/searx)<a class="headerlink" href="#from-subdirectory-url-searx" title="Permalink to this headline">¶</a></h4>
176
 <h4>from subdirectory URL (/searx)<a class="headerlink" href="#from-subdirectory-url-searx" title="Permalink to this headline">¶</a></h4>
186
 <p>Add this configuration in the server config file
177
 <p>Add this configuration in the server config file
187
 /etc/nginx/sites-enabled/default:</p>
178
 /etc/nginx/sites-enabled/default:</p>
188
-<div class="code nginx highlight-default"><div class="highlight"><pre><span></span>location = /searx { rewrite ^ /searx/; }
179
+<div class="code nginx highlight-default notranslate"><div class="highlight"><pre><span></span>location = /searx { rewrite ^ /searx/; }
189
 location /searx {
180
 location /searx {
190
         try_files $uri @searx;
181
         try_files $uri @searx;
191
 }
182
 }
200
 <p>OR</p>
191
 <p>OR</p>
201
 <p>using reverse proxy
192
 <p>using reverse proxy
202
 (Please, note that reverse proxy advised to be used in case of single-user or low-traffic instances.)</p>
193
 (Please, note that reverse proxy advised to be used in case of single-user or low-traffic instances.)</p>
203
-<div class="code nginx highlight-default"><div class="highlight"><pre><span></span>location /searx {
194
+<div class="code nginx highlight-default notranslate"><div class="highlight"><pre><span></span>location /searx {
204
     proxy_pass http://127.0.0.1:8888;
195
     proxy_pass http://127.0.0.1:8888;
205
     proxy_set_header Host $host;
196
     proxy_set_header Host $host;
206
     proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
197
     proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
211
 </pre></div>
202
 </pre></div>
212
 </div>
203
 </div>
213
 <p>Enable base_url in searx/settings.yml</p>
204
 <p>Enable base_url in searx/settings.yml</p>
214
-<div class="highlight-default"><div class="highlight"><pre><span></span><span class="n">base_url</span> <span class="p">:</span> <span class="n">http</span><span class="p">:</span><span class="o">//</span><span class="n">your</span><span class="o">.</span><span class="n">domain</span><span class="o">.</span><span class="n">tld</span><span class="o">/</span><span class="n">searx</span><span class="o">/</span>
205
+<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">base_url</span> <span class="p">:</span> <span class="n">http</span><span class="p">:</span><span class="o">//</span><span class="n">your</span><span class="o">.</span><span class="n">domain</span><span class="o">.</span><span class="n">tld</span><span class="o">/</span><span class="n">searx</span><span class="o">/</span>
215
 </pre></div>
206
 </pre></div>
216
 </div>
207
 </div>
217
 <p>Restart service:</p>
208
 <p>Restart service:</p>
218
-<div class="code sh highlight-default"><div class="highlight"><pre><span></span><span class="n">sudo</span> <span class="n">service</span> <span class="n">nginx</span> <span class="n">restart</span>
209
+<div class="code sh highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">sudo</span> <span class="n">service</span> <span class="n">nginx</span> <span class="n">restart</span>
219
 <span class="n">sudo</span> <span class="n">service</span> <span class="n">uwsgi</span> <span class="n">restart</span>
210
 <span class="n">sudo</span> <span class="n">service</span> <span class="n">uwsgi</span> <span class="n">restart</span>
220
 </pre></div>
211
 </pre></div>
221
 </div>
212
 </div>
222
 <div class="section" id="disable-logs">
213
 <div class="section" id="disable-logs">
223
 <h5>disable logs<a class="headerlink" href="#disable-logs" title="Permalink to this headline">¶</a></h5>
214
 <h5>disable logs<a class="headerlink" href="#disable-logs" title="Permalink to this headline">¶</a></h5>
224
 <p>for better privacy you can disable nginx logs about searx.</p>
215
 <p>for better privacy you can disable nginx logs about searx.</p>
225
-<p>how to proceed: below <code class="docutils literal"><span class="pre">uwsgi_pass</span></code> in
216
+<p>how to proceed: below <code class="docutils literal notranslate"><span class="pre">uwsgi_pass</span></code> in
226
 /etc/nginx/sites-available/default add</p>
217
 /etc/nginx/sites-available/default add</p>
227
-<div class="highlight-default"><div class="highlight"><pre><span></span><span class="n">access_log</span> <span class="o">/</span><span class="n">dev</span><span class="o">/</span><span class="n">null</span><span class="p">;</span>
218
+<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">access_log</span> <span class="o">/</span><span class="n">dev</span><span class="o">/</span><span class="n">null</span><span class="p">;</span>
228
 <span class="n">error_log</span> <span class="o">/</span><span class="n">dev</span><span class="o">/</span><span class="n">null</span><span class="p">;</span>
219
 <span class="n">error_log</span> <span class="o">/</span><span class="n">dev</span><span class="o">/</span><span class="n">null</span><span class="p">;</span>
229
 </pre></div>
220
 </pre></div>
230
 </div>
221
 </div>
231
 <p>Restart service:</p>
222
 <p>Restart service:</p>
232
-<div class="code sh highlight-default"><div class="highlight"><pre><span></span><span class="n">sudo</span> <span class="n">service</span> <span class="n">nginx</span> <span class="n">restart</span>
223
+<div class="code sh highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">sudo</span> <span class="n">service</span> <span class="n">nginx</span> <span class="n">restart</span>
233
 </pre></div>
224
 </pre></div>
234
 </div>
225
 </div>
235
 </div>
226
 </div>
238
 <div class="section" id="with-apache">
229
 <div class="section" id="with-apache">
239
 <h3><a class="toc-backref" href="#id10">with apache</a><a class="headerlink" href="#with-apache" title="Permalink to this headline">¶</a></h3>
230
 <h3><a class="toc-backref" href="#id10">with apache</a><a class="headerlink" href="#with-apache" title="Permalink to this headline">¶</a></h3>
240
 <p>Add wsgi mod:</p>
231
 <p>Add wsgi mod:</p>
241
-<div class="code sh highlight-default"><div class="highlight"><pre><span></span><span class="n">sudo</span> <span class="n">apt</span><span class="o">-</span><span class="n">get</span> <span class="n">install</span> <span class="n">libapache2</span><span class="o">-</span><span class="n">mod</span><span class="o">-</span><span class="n">uwsgi</span>
232
+<div class="code sh highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">sudo</span> <span class="n">apt</span><span class="o">-</span><span class="n">get</span> <span class="n">install</span> <span class="n">libapache2</span><span class="o">-</span><span class="n">mod</span><span class="o">-</span><span class="n">uwsgi</span>
242
 <span class="n">sudo</span> <span class="n">a2enmod</span> <span class="n">uwsgi</span>
233
 <span class="n">sudo</span> <span class="n">a2enmod</span> <span class="n">uwsgi</span>
243
 </pre></div>
234
 </pre></div>
244
 </div>
235
 </div>
245
 <p>Add this configuration in the file /etc/apache2/apache2.conf:</p>
236
 <p>Add this configuration in the file /etc/apache2/apache2.conf:</p>
246
-<div class="code apache highlight-default"><div class="highlight"><pre><span></span><span class="o">&lt;</span><span class="n">Location</span> <span class="o">/&gt;</span>
237
+<div class="code apache highlight-default notranslate"><div class="highlight"><pre><span></span><span class="o">&lt;</span><span class="n">Location</span> <span class="o">/&gt;</span>
247
     <span class="n">Options</span> <span class="n">FollowSymLinks</span> <span class="n">Indexes</span>
238
     <span class="n">Options</span> <span class="n">FollowSymLinks</span> <span class="n">Indexes</span>
248
     <span class="n">SetHandler</span> <span class="n">uwsgi</span><span class="o">-</span><span class="n">handler</span>
239
     <span class="n">SetHandler</span> <span class="n">uwsgi</span><span class="o">-</span><span class="n">handler</span>
249
     <span class="n">uWSGISocket</span> <span class="o">/</span><span class="n">run</span><span class="o">/</span><span class="n">uwsgi</span><span class="o">/</span><span class="n">app</span><span class="o">/</span><span class="n">searx</span><span class="o">/</span><span class="n">socket</span>
240
     <span class="n">uWSGISocket</span> <span class="o">/</span><span class="n">run</span><span class="o">/</span><span class="n">uwsgi</span><span class="o">/</span><span class="n">app</span><span class="o">/</span><span class="n">searx</span><span class="o">/</span><span class="n">socket</span>
251
 </pre></div>
242
 </pre></div>
252
 </div>
243
 </div>
253
 <p>Note that if your instance of searx is not at the root, you should
244
 <p>Note that if your instance of searx is not at the root, you should
254
-change <code class="docutils literal"><span class="pre">&lt;Location</span> <span class="pre">/&gt;</span></code> by the location of your instance, like
255
-<code class="docutils literal"><span class="pre">&lt;Location</span> <span class="pre">/searx&gt;</span></code>.</p>
245
+change <code class="docutils literal notranslate"><span class="pre">&lt;Location</span> <span class="pre">/&gt;</span></code> by the location of your instance, like
246
+<code class="docutils literal notranslate"><span class="pre">&lt;Location</span> <span class="pre">/searx&gt;</span></code>.</p>
256
 <p>Restart Apache:</p>
247
 <p>Restart Apache:</p>
257
-<div class="code sh highlight-default"><div class="highlight"><pre><span></span><span class="n">sudo</span> <span class="o">/</span><span class="n">etc</span><span class="o">/</span><span class="n">init</span><span class="o">.</span><span class="n">d</span><span class="o">/</span><span class="n">apache2</span> <span class="n">restart</span>
248
+<div class="code sh highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">sudo</span> <span class="o">/</span><span class="n">etc</span><span class="o">/</span><span class="n">init</span><span class="o">.</span><span class="n">d</span><span class="o">/</span><span class="n">apache2</span> <span class="n">restart</span>
258
 </pre></div>
249
 </pre></div>
259
 </div>
250
 </div>
260
 <div class="section" id="id2">
251
 <div class="section" id="id2">
263
 <p>WARNING: not tested</p>
254
 <p>WARNING: not tested</p>
264
 <p>WARNING: you can only disable logs for the whole (virtual) server not
255
 <p>WARNING: you can only disable logs for the whole (virtual) server not
265
 for a specific path.</p>
256
 for a specific path.</p>
266
-<p>Go back to /etc/apache2/apache2.conf and above <code class="docutils literal"><span class="pre">&lt;Location</span> <span class="pre">/&gt;</span></code> add:</p>
267
-<div class="code apache highlight-default"><div class="highlight"><pre><span></span><span class="n">CustomLog</span> <span class="o">/</span><span class="n">dev</span><span class="o">/</span><span class="n">null</span> <span class="n">combined</span>
257
+<p>Go back to /etc/apache2/apache2.conf and above <code class="docutils literal notranslate"><span class="pre">&lt;Location</span> <span class="pre">/&gt;</span></code> add:</p>
258
+<div class="code apache highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">CustomLog</span> <span class="o">/</span><span class="n">dev</span><span class="o">/</span><span class="n">null</span> <span class="n">combined</span>
268
 </pre></div>
259
 </pre></div>
269
 </div>
260
 </div>
270
 <p>Restart Apache:</p>
261
 <p>Restart Apache:</p>
271
-<div class="code sh highlight-default"><div class="highlight"><pre><span></span><span class="n">sudo</span> <span class="o">/</span><span class="n">etc</span><span class="o">/</span><span class="n">init</span><span class="o">.</span><span class="n">d</span><span class="o">/</span><span class="n">apache2</span> <span class="n">restart</span>
262
+<div class="code sh highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">sudo</span> <span class="o">/</span><span class="n">etc</span><span class="o">/</span><span class="n">init</span><span class="o">.</span><span class="n">d</span><span class="o">/</span><span class="n">apache2</span> <span class="n">restart</span>
272
 </pre></div>
263
 </pre></div>
273
 </div>
264
 </div>
274
 </div>
265
 </div>
276
 </div>
267
 </div>
277
 <div class="section" id="how-to-update">
268
 <div class="section" id="how-to-update">
278
 <h2><a class="toc-backref" href="#id11">How to update</a><a class="headerlink" href="#how-to-update" title="Permalink to this headline">¶</a></h2>
269
 <h2><a class="toc-backref" href="#id11">How to update</a><a class="headerlink" href="#how-to-update" title="Permalink to this headline">¶</a></h2>
279
-<div class="code sh highlight-default"><div class="highlight"><pre><span></span><span class="n">cd</span> <span class="o">/</span><span class="n">usr</span><span class="o">/</span><span class="n">local</span><span class="o">/</span><span class="n">searx</span>
270
+<div class="code sh highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">cd</span> <span class="o">/</span><span class="n">usr</span><span class="o">/</span><span class="n">local</span><span class="o">/</span><span class="n">searx</span>
280
 <span class="n">sudo</span> <span class="o">-</span><span class="n">u</span> <span class="n">searx</span> <span class="o">-</span><span class="n">i</span>
271
 <span class="n">sudo</span> <span class="o">-</span><span class="n">u</span> <span class="n">searx</span> <span class="o">-</span><span class="n">i</span>
281
 <span class="o">.</span> <span class="o">./</span><span class="n">searx</span><span class="o">-</span><span class="n">ve</span><span class="o">/</span><span class="nb">bin</span><span class="o">/</span><span class="n">activate</span>
272
 <span class="o">.</span> <span class="o">./</span><span class="n">searx</span><span class="o">-</span><span class="n">ve</span><span class="o">/</span><span class="nb">bin</span><span class="o">/</span><span class="n">activate</span>
282
 <span class="n">git</span> <span class="n">stash</span>
273
 <span class="n">git</span> <span class="n">stash</span>
290
 <div class="section" id="docker">
281
 <div class="section" id="docker">
291
 <h2><a class="toc-backref" href="#id12">Docker</a><a class="headerlink" href="#docker" title="Permalink to this headline">¶</a></h2>
282
 <h2><a class="toc-backref" href="#id12">Docker</a><a class="headerlink" href="#docker" title="Permalink to this headline">¶</a></h2>
292
 <p>Make sure you have installed Docker. For instance, you can deploy searx like this:</p>
283
 <p>Make sure you have installed Docker. For instance, you can deploy searx like this:</p>
293
-<div class="code sh highlight-default"><div class="highlight"><pre><span></span>docker pull wonderfall/searx
284
+<div class="code sh highlight-default notranslate"><div class="highlight"><pre><span></span>docker pull wonderfall/searx
294
 docker run -d --name searx -p $PORT:8888 wonderfall/searx
285
 docker run -d --name searx -p $PORT:8888 wonderfall/searx
295
 </pre></div>
286
 </pre></div>
296
 </div>
287
 </div>
297
 <p>Go to <a class="reference external" href="http://localhost:$PORT">http://localhost:$PORT</a>.</p>
288
 <p>Go to <a class="reference external" href="http://localhost:$PORT">http://localhost:$PORT</a>.</p>
298
 <p>See <a class="reference external" href="https://hub.docker.com/r/wonderfall/searx/">https://hub.docker.com/r/wonderfall/searx/</a> for more informations.</p>
289
 <p>See <a class="reference external" href="https://hub.docker.com/r/wonderfall/searx/">https://hub.docker.com/r/wonderfall/searx/</a> for more informations.</p>
299
 <p>It’s also possible to build searx from the embedded Dockerfile.</p>
290
 <p>It’s also possible to build searx from the embedded Dockerfile.</p>
300
-<div class="code sh highlight-default"><div class="highlight"><pre><span></span><span class="n">git</span> <span class="n">clone</span> <span class="n">https</span><span class="p">:</span><span class="o">//</span><span class="n">github</span><span class="o">.</span><span class="n">com</span><span class="o">/</span><span class="n">asciimoo</span><span class="o">/</span><span class="n">searx</span><span class="o">.</span><span class="n">git</span>
291
+<div class="code sh highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">git</span> <span class="n">clone</span> <span class="n">https</span><span class="p">:</span><span class="o">//</span><span class="n">github</span><span class="o">.</span><span class="n">com</span><span class="o">/</span><span class="n">asciimoo</span><span class="o">/</span><span class="n">searx</span><span class="o">.</span><span class="n">git</span>
301
 <span class="n">cd</span> <span class="n">searx</span>
292
 <span class="n">cd</span> <span class="n">searx</span>
302
 <span class="n">docker</span> <span class="n">build</span> <span class="o">-</span><span class="n">t</span> <span class="n">whatever</span><span class="o">/</span><span class="n">searx</span> <span class="o">.</span>
293
 <span class="n">docker</span> <span class="n">build</span> <span class="o">-</span><span class="n">t</span> <span class="n">whatever</span><span class="o">/</span><span class="n">searx</span> <span class="o">.</span>
303
 </pre></div>
294
 </pre></div>
319
         </div>
310
         </div>
320
       </div>
311
       </div>
321
       <div class="sphinxsidebar" role="navigation" aria-label="main navigation">
312
       <div class="sphinxsidebar" role="navigation" aria-label="main navigation">
322
-        <div class="sphinxsidebarwrapper"><div class="sidebar_container body">
313
+        <div class="sphinxsidebarwrapper">
314
+  <h3><a href="../../index.html">Table Of Contents</a></h3>
315
+  <ul>
316
+<li><a class="reference internal" href="#">Installation</a><ul>
317
+<li><a class="reference internal" href="#basic-installation">Basic installation</a></li>
318
+<li><a class="reference internal" href="#configuration">Configuration</a></li>
319
+<li><a class="reference internal" href="#check">Check</a></li>
320
+<li><a class="reference internal" href="#uwsgi">uwsgi</a></li>
321
+<li><a class="reference internal" href="#web-server">Web server</a><ul>
322
+<li><a class="reference internal" href="#with-nginx">with nginx</a><ul>
323
+<li><a class="reference internal" href="#hosted-at">Hosted at /</a></li>
324
+<li><a class="reference internal" href="#from-subdirectory-url-searx">from subdirectory URL (/searx)</a><ul>
325
+<li><a class="reference internal" href="#disable-logs">disable logs</a></li>
326
+</ul>
327
+</li>
328
+</ul>
329
+</li>
330
+<li><a class="reference internal" href="#with-apache">with apache</a><ul>
331
+<li><a class="reference internal" href="#id2">disable logs</a></li>
332
+</ul>
333
+</li>
334
+</ul>
335
+</li>
336
+<li><a class="reference internal" href="#how-to-update">How to update</a></li>
337
+<li><a class="reference internal" href="#docker">Docker</a></li>
338
+</ul>
339
+</li>
340
+<li><a class="reference internal" href="#references">References</a></li>
341
+</ul>
342
+<div class="sidebar_container body">
323
 <h1>Searx</h1>
343
 <h1>Searx</h1>
324
 <ul>
344
 <ul>
325
     <li><a href="../../index.html">Home</a></li>
345
     <li><a href="../../index.html">Home</a></li>
333
     <li><a href="https://twitter.com/Searx_engine">Twitter</a></li>
353
     <li><a href="https://twitter.com/Searx_engine">Twitter</a></li>
334
 </ul>
354
 </ul>
335
 </div>
355
 </div>
356
+  <div role="note" aria-label="source link">
357
+    <h3>This Page</h3>
358
+    <ul class="this-page-menu">
359
+      <li><a href="../../_sources/dev/install/installation.rst.txt"
360
+            rel="nofollow">Show Source</a></li>
361
+    </ul>
362
+   </div>
363
+<div id="searchbox" style="display: none" role="search">
364
+  <h3>Quick search</h3>
365
+    <div class="searchformwrapper">
366
+    <form class="search" action="../../search.html" method="get">
367
+      <input type="text" name="q" />
368
+      <input type="submit" value="Go" />
369
+      <input type="hidden" name="check_keywords" value="yes" />
370
+      <input type="hidden" name="area" value="default" />
371
+    </form>
372
+    </div>
373
+</div>
374
+<script type="text/javascript">$('#searchbox').show(0);</script>
336
         </div>
375
         </div>
337
       </div>
376
       </div>
338
       <div class="clearer"></div>
377
       <div class="clearer"></div>

+ 41
- 17
dev/plugins.html View File

4
 
4
 
5
 <html xmlns="http://www.w3.org/1999/xhtml">
5
 <html xmlns="http://www.w3.org/1999/xhtml">
6
   <head>
6
   <head>
7
+    <meta http-equiv="X-UA-Compatible" content="IE=Edge" />
7
     <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
8
     <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
8
     <title>Plugins &#8212; searx 0.12.0 documentation</title>
9
     <title>Plugins &#8212; searx 0.12.0 documentation</title>
9
     <link rel="stylesheet" href="../_static/style.css" type="text/css" />
10
     <link rel="stylesheet" href="../_static/style.css" type="text/css" />
10
     <link rel="stylesheet" href="../_static/pygments.css" type="text/css" />
11
     <link rel="stylesheet" href="../_static/pygments.css" type="text/css" />
11
-    <script type="text/javascript">
12
-      var DOCUMENTATION_OPTIONS = {
13
-        URL_ROOT:    '../',
14
-        VERSION:     '0.12.0',
15
-        COLLAPSE_INDEX: false,
16
-        FILE_SUFFIX: '.html',
17
-        HAS_SOURCE:  true,
18
-        SOURCELINK_SUFFIX: '.txt'
19
-      };
20
-    </script>
12
+    <script type="text/javascript" src="../_static/documentation_options.js"></script>
21
     <script type="text/javascript" src="../_static/jquery.js"></script>
13
     <script type="text/javascript" src="../_static/jquery.js"></script>
22
     <script type="text/javascript" src="../_static/underscore.js"></script>
14
     <script type="text/javascript" src="../_static/underscore.js"></script>
23
     <script type="text/javascript" src="../_static/doctools.js"></script>
15
     <script type="text/javascript" src="../_static/doctools.js"></script>
30
   <link media="only screen and (max-device-width: 480px)" href="../_static/small_flask.css" type= "text/css" rel="stylesheet" />
22
   <link media="only screen and (max-device-width: 480px)" href="../_static/small_flask.css" type= "text/css" rel="stylesheet" />
31
   <meta name="viewport" content="width=device-width, initial-scale=0.9, maximum-scale=0.9">
23
   <meta name="viewport" content="width=device-width, initial-scale=0.9, maximum-scale=0.9">
32
 
24
 
33
-  </head>
34
-  <body>  
25
+  </head><body>  
35
 
26
 
36
     <div class="document">
27
     <div class="document">
37
       <div class="documentwrapper">
28
       <div class="documentwrapper">
44
 searx.</p>
35
 searx.</p>
45
 <div class="section" id="example-plugin">
36
 <div class="section" id="example-plugin">
46
 <h2>Example plugin<a class="headerlink" href="#example-plugin" title="Permalink to this headline">¶</a></h2>
37
 <h2>Example plugin<a class="headerlink" href="#example-plugin" title="Permalink to this headline">¶</a></h2>
47
-<div class="code python highlight-default"><div class="highlight"><pre><span></span><span class="n">name</span> <span class="o">=</span> <span class="s1">&#39;Example plugin&#39;</span>
38
+<div class="code python highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">name</span> <span class="o">=</span> <span class="s1">&#39;Example plugin&#39;</span>
48
 <span class="n">description</span> <span class="o">=</span> <span class="s1">&#39;This plugin extends the suggestions with the word &quot;example&quot;&#39;</span>
39
 <span class="n">description</span> <span class="o">=</span> <span class="s1">&#39;This plugin extends the suggestions with the word &quot;example&quot;&#39;</span>
49
 <span class="n">default_on</span> <span class="o">=</span> <span class="kc">False</span>  <span class="c1"># disabled by default</span>
40
 <span class="n">default_on</span> <span class="o">=</span> <span class="kc">False</span>  <span class="c1"># disabled by default</span>
50
 
41
 
66
 <p>Entry points (hooks) define when a plugin runs. Right now only three hooks are implemented. So feel free to implement a hook if it fits the behaviour of your plugin.</p>
57
 <p>Entry points (hooks) define when a plugin runs. Right now only three hooks are implemented. So feel free to implement a hook if it fits the behaviour of your plugin.</p>
67
 <div class="section" id="pre-search-hook">
58
 <div class="section" id="pre-search-hook">
68
 <h3>Pre search hook<a class="headerlink" href="#pre-search-hook" title="Permalink to this headline">¶</a></h3>
59
 <h3>Pre search hook<a class="headerlink" href="#pre-search-hook" title="Permalink to this headline">¶</a></h3>
69
-<p>Runs BEFORE the search request. Function to implement: <code class="docutils literal"><span class="pre">pre_search</span></code></p>
60
+<p>Runs BEFORE the search request. Function to implement: <code class="docutils literal notranslate"><span class="pre">pre_search</span></code></p>
70
 </div>
61
 </div>
71
 <div class="section" id="post-search-hook">
62
 <div class="section" id="post-search-hook">
72
 <h3>Post search hook<a class="headerlink" href="#post-search-hook" title="Permalink to this headline">¶</a></h3>
63
 <h3>Post search hook<a class="headerlink" href="#post-search-hook" title="Permalink to this headline">¶</a></h3>
73
-<p>Runs AFTER the search request. Function to implement: <code class="docutils literal"><span class="pre">post_search</span></code></p>
64
+<p>Runs AFTER the search request. Function to implement: <code class="docutils literal notranslate"><span class="pre">post_search</span></code></p>
74
 </div>
65
 </div>
75
 <div class="section" id="result-hook">
66
 <div class="section" id="result-hook">
76
 <h3>Result hook<a class="headerlink" href="#result-hook" title="Permalink to this headline">¶</a></h3>
67
 <h3>Result hook<a class="headerlink" href="#result-hook" title="Permalink to this headline">¶</a></h3>
77
-<p>Runs when a new result is added to the result list. Function to implement: <code class="docutils literal"><span class="pre">on_result</span></code></p>
68
+<p>Runs when a new result is added to the result list. Function to implement: <code class="docutils literal notranslate"><span class="pre">on_result</span></code></p>
78
 </div>
69
 </div>
79
 </div>
70
 </div>
80
 </div>
71
 </div>
84
         </div>
75
         </div>
85
       </div>
76
       </div>
86
       <div class="sphinxsidebar" role="navigation" aria-label="main navigation">
77
       <div class="sphinxsidebar" role="navigation" aria-label="main navigation">
87
-        <div class="sphinxsidebarwrapper"><div class="sidebar_container body">
78
+        <div class="sphinxsidebarwrapper">
79
+  <h3><a href="../index.html">Table Of Contents</a></h3>
80
+  <ul>
81
+<li><a class="reference internal" href="#">Plugins</a><ul>
82
+<li><a class="reference internal" href="#example-plugin">Example plugin</a></li>
83
+<li><a class="reference internal" href="#plugin-entry-points">Plugin entry points</a><ul>
84
+<li><a class="reference internal" href="#pre-search-hook">Pre search hook</a></li>
85
+<li><a class="reference internal" href="#post-search-hook">Post search hook</a></li>
86
+<li><a class="reference internal" href="#result-hook">Result hook</a></li>
87
+</ul>
88
+</li>
89
+</ul>
90
+</li>
91
+</ul>
92
+<div class="sidebar_container body">
88
 <h1>Searx</h1>
93
 <h1>Searx</h1>
89
 <ul>
94
 <ul>
90
     <li><a href="../index.html">Home</a></li>
95
     <li><a href="../index.html">Home</a></li>
98
     <li><a href="https://twitter.com/Searx_engine">Twitter</a></li>
103
     <li><a href="https://twitter.com/Searx_engine">Twitter</a></li>
99
 </ul>
104
 </ul>
100
 </div>
105
 </div>
106
+  <div role="note" aria-label="source link">
107
+    <h3>This Page</h3>
108
+    <ul class="this-page-menu">
109
+      <li><a href="../_sources/dev/plugins.rst.txt"
110
+            rel="nofollow">Show Source</a></li>
111
+    </ul>
112
+   </div>
113
+<div id="searchbox" style="display: none" role="search">
114
+  <h3>Quick search</h3>
115
+    <div class="searchformwrapper">
116
+    <form class="search" action="../search.html" method="get">
117
+      <input type="text" name="q" />
118
+      <input type="submit" value="Go" />
119
+      <input type="hidden" name="check_keywords" value="yes" />
120
+      <input type="hidden" name="area" value="default" />
121
+    </form>
122
+    </div>
123
+</div>
124
+<script type="text/javascript">$('#searchbox').show(0);</script>
101
         </div>
125
         </div>
102
       </div>
126
       </div>
103
       <div class="clearer"></div>
127
       <div class="clearer"></div>

+ 49
- 24
dev/quickstart.html View File

4
 
4
 
5
 <html xmlns="http://www.w3.org/1999/xhtml">
5
 <html xmlns="http://www.w3.org/1999/xhtml">
6
   <head>
6
   <head>
7
+    <meta http-equiv="X-UA-Compatible" content="IE=Edge" />
7
     <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
8
     <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
8
     <title>Development Quickstart &#8212; searx 0.12.0 documentation</title>
9
     <title>Development Quickstart &#8212; searx 0.12.0 documentation</title>
9
     <link rel="stylesheet" href="../_static/style.css" type="text/css" />
10
     <link rel="stylesheet" href="../_static/style.css" type="text/css" />
10
     <link rel="stylesheet" href="../_static/pygments.css" type="text/css" />
11
     <link rel="stylesheet" href="../_static/pygments.css" type="text/css" />
11
-    <script type="text/javascript">
12
-      var DOCUMENTATION_OPTIONS = {
13
-        URL_ROOT:    '../',
14
-        VERSION:     '0.12.0',
15
-        COLLAPSE_INDEX: false,
16
-        FILE_SUFFIX: '.html',
17
-        HAS_SOURCE:  true,
18
-        SOURCELINK_SUFFIX: '.txt'
19
-      };
20
-    </script>
12
+    <script type="text/javascript" src="../_static/documentation_options.js"></script>
21
     <script type="text/javascript" src="../_static/jquery.js"></script>
13
     <script type="text/javascript" src="../_static/jquery.js"></script>
22
     <script type="text/javascript" src="../_static/underscore.js"></script>
14
     <script type="text/javascript" src="../_static/underscore.js"></script>
23
     <script type="text/javascript" src="../_static/doctools.js"></script>
15
     <script type="text/javascript" src="../_static/doctools.js"></script>
30
   <link media="only screen and (max-device-width: 480px)" href="../_static/small_flask.css" type= "text/css" rel="stylesheet" />
22
   <link media="only screen and (max-device-width: 480px)" href="../_static/small_flask.css" type= "text/css" rel="stylesheet" />
31
   <meta name="viewport" content="width=device-width, initial-scale=0.9, maximum-scale=0.9">
23
   <meta name="viewport" content="width=device-width, initial-scale=0.9, maximum-scale=0.9">
32
 
24
 
33
-  </head>
34
-  <body>  
25
+  </head><body>  
35
 
26
 
36
     <div class="document">
27
     <div class="document">
37
       <div class="documentwrapper">
28
       <div class="documentwrapper">
47
 <p>First, clone the source code of searx to the desired folder. In this case the source
38
 <p>First, clone the source code of searx to the desired folder. In this case the source
48
 is cloned to ~/myprojects/searx. Then create and activate the searx-ve
39
 is cloned to ~/myprojects/searx. Then create and activate the searx-ve
49
 virtualenv and install the required packages using manage.sh.</p>
40
 virtualenv and install the required packages using manage.sh.</p>
50
-<div class="code sh highlight-default"><div class="highlight"><pre><span></span><span class="n">cd</span> <span class="o">~/</span><span class="n">myprojects</span>
41
+<div class="code sh highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">cd</span> <span class="o">~/</span><span class="n">myprojects</span>
51
 <span class="n">git</span> <span class="n">clone</span> <span class="n">https</span><span class="p">:</span><span class="o">//</span><span class="n">github</span><span class="o">.</span><span class="n">com</span><span class="o">/</span><span class="n">asciimoo</span><span class="o">/</span><span class="n">searx</span><span class="o">.</span><span class="n">git</span>
42
 <span class="n">git</span> <span class="n">clone</span> <span class="n">https</span><span class="p">:</span><span class="o">//</span><span class="n">github</span><span class="o">.</span><span class="n">com</span><span class="o">/</span><span class="n">asciimoo</span><span class="o">/</span><span class="n">searx</span><span class="o">.</span><span class="n">git</span>
52
 <span class="n">cd</span> <span class="n">searx</span>
43
 <span class="n">cd</span> <span class="n">searx</span>
53
 <span class="n">virtualenv</span> <span class="n">searx</span><span class="o">-</span><span class="n">ve</span>
44
 <span class="n">virtualenv</span> <span class="n">searx</span><span class="o">-</span><span class="n">ve</span>
67
 <li>Unit test coverage check</li>
58
 <li>Unit test coverage check</li>
68
 </ul>
59
 </ul>
69
 <p>For example unit tests are run with the command below:</p>
60
 <p>For example unit tests are run with the command below:</p>
70
-<div class="code sh highlight-default"><div class="highlight"><pre><span></span><span class="o">./</span><span class="n">manage</span><span class="o">.</span><span class="n">sh</span> <span class="n">unit_tests</span>
61
+<div class="code sh highlight-default notranslate"><div class="highlight"><pre><span></span><span class="o">./</span><span class="n">manage</span><span class="o">.</span><span class="n">sh</span> <span class="n">unit_tests</span>
71
 </pre></div>
62
 </pre></div>
72
 </div>
63
 </div>
73
 <p>For further test options, please consult the help of the manage.sh script.</p>
64
 <p>For further test options, please consult the help of the manage.sh script.</p>
77
 <div class="section" id="how-to-build-styles">
68
 <div class="section" id="how-to-build-styles">
78
 <h3>How to build styles<a class="headerlink" href="#how-to-build-styles" title="Permalink to this headline">¶</a></h3>
69
 <h3>How to build styles<a class="headerlink" href="#how-to-build-styles" title="Permalink to this headline">¶</a></h3>
79
 <p>Less is required to build the styles of searx. Less can be installed using either NodeJS or Apt.</p>
70
 <p>Less is required to build the styles of searx. Less can be installed using either NodeJS or Apt.</p>
80
-<div class="code sh highlight-default"><div class="highlight"><pre><span></span><span class="n">sudo</span> <span class="n">apt</span><span class="o">-</span><span class="n">get</span> <span class="n">install</span> <span class="n">nodejs</span>
71
+<div class="code sh highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">sudo</span> <span class="n">apt</span><span class="o">-</span><span class="n">get</span> <span class="n">install</span> <span class="n">nodejs</span>
81
 <span class="n">sudo</span> <span class="n">npm</span> <span class="n">install</span> <span class="o">-</span><span class="n">g</span> <span class="n">less</span>
72
 <span class="n">sudo</span> <span class="n">npm</span> <span class="n">install</span> <span class="o">-</span><span class="n">g</span> <span class="n">less</span>
82
 </pre></div>
73
 </pre></div>
83
 </div>
74
 </div>
84
 <p>OR</p>
75
 <p>OR</p>
85
-<div class="code sh highlight-default"><div class="highlight"><pre><span></span><span class="n">sudo</span> <span class="n">apt</span><span class="o">-</span><span class="n">get</span> <span class="n">install</span> <span class="n">node</span><span class="o">-</span><span class="n">less</span>
76
+<div class="code sh highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">sudo</span> <span class="n">apt</span><span class="o">-</span><span class="n">get</span> <span class="n">install</span> <span class="n">node</span><span class="o">-</span><span class="n">less</span>
86
 </pre></div>
77
 </pre></div>
87
 </div>
78
 </div>
88
 <p>After satisfying the requirements styles can be build using manage.sh</p>
79
 <p>After satisfying the requirements styles can be build using manage.sh</p>
89
-<div class="code sh highlight-default"><div class="highlight"><pre><span></span><span class="o">./</span><span class="n">manage</span><span class="o">.</span><span class="n">sh</span> <span class="n">styles</span>
80
+<div class="code sh highlight-default notranslate"><div class="highlight"><pre><span></span><span class="o">./</span><span class="n">manage</span><span class="o">.</span><span class="n">sh</span> <span class="n">styles</span>
90
 </pre></div>
81
 </pre></div>
91
 </div>
82
 </div>
92
 </div>
83
 </div>
94
 <h3>How to build the source of the oscar theme<a class="headerlink" href="#how-to-build-the-source-of-the-oscar-theme" title="Permalink to this headline">¶</a></h3>
85
 <h3>How to build the source of the oscar theme<a class="headerlink" href="#how-to-build-the-source-of-the-oscar-theme" title="Permalink to this headline">¶</a></h3>
95
 <p>Grunt must be installed in order to build the javascript sources. It depends on NodeJS, so first
86
 <p>Grunt must be installed in order to build the javascript sources. It depends on NodeJS, so first
96
 Node has to be installed.</p>
87
 Node has to be installed.</p>
97
-<div class="code sh highlight-default"><div class="highlight"><pre><span></span><span class="n">sudo</span> <span class="n">apt</span><span class="o">-</span><span class="n">get</span> <span class="n">install</span> <span class="n">nodejs</span>
88
+<div class="code sh highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">sudo</span> <span class="n">apt</span><span class="o">-</span><span class="n">get</span> <span class="n">install</span> <span class="n">nodejs</span>
98
 <span class="n">sudo</span> <span class="n">npm</span> <span class="n">install</span> <span class="o">-</span><span class="n">g</span> <span class="n">grunt</span><span class="o">-</span><span class="n">cli</span>
89
 <span class="n">sudo</span> <span class="n">npm</span> <span class="n">install</span> <span class="o">-</span><span class="n">g</span> <span class="n">grunt</span><span class="o">-</span><span class="n">cli</span>
99
 </pre></div>
90
 </pre></div>
100
 </div>
91
 </div>
101
 <p>After installing grunt, the files can be built using the following command:</p>
92
 <p>After installing grunt, the files can be built using the following command:</p>
102
-<div class="code sh highlight-default"><div class="highlight"><pre><span></span><span class="o">./</span><span class="n">manage</span><span class="o">.</span><span class="n">sh</span> <span class="n">build_grunt</span>
93
+<div class="code sh highlight-default notranslate"><div class="highlight"><pre><span></span><span class="o">./</span><span class="n">manage</span><span class="o">.</span><span class="n">sh</span> <span class="n">build_grunt</span>
103
 </pre></div>
94
 </pre></div>
104
 </div>
95
 </div>
105
 </div>
96
 </div>
111
 <dt>Turn on debug logging</dt>
102
 <dt>Turn on debug logging</dt>
112
 <dd>Whether you are working on a new engine or trying to eliminate a bug, it is always a good idea
103
 <dd>Whether you are working on a new engine or trying to eliminate a bug, it is always a good idea
113
 to turn on debug logging. When debug logging is enabled a stack trace appears,
104
 to turn on debug logging. When debug logging is enabled a stack trace appears,
114
-instead of the cryptic <code class="docutils literal"><span class="pre">Internal</span> <span class="pre">Server</span> <span class="pre">Error</span></code> message. It can be turned on by setting
115
-<code class="docutils literal"><span class="pre">debug:</span> <span class="pre">False</span></code> to <code class="docutils literal"><span class="pre">debug:</span> <span class="pre">True</span></code> in settings.yml.</dd>
105
+instead of the cryptic <code class="docutils literal notranslate"><span class="pre">Internal</span> <span class="pre">Server</span> <span class="pre">Error</span></code> message. It can be turned on by setting
106
+<code class="docutils literal notranslate"><span class="pre">debug:</span> <span class="pre">False</span></code> to <code class="docutils literal notranslate"><span class="pre">debug:</span> <span class="pre">True</span></code> in settings.yml.</dd>
116
 </dl>
107
 </dl>
117
 </li>
108
 </li>
118
 <li><dl class="first docutils">
109
 <li><dl class="first docutils">
119
-<dt>Run <code class="docutils literal"><span class="pre">./manage.sh</span> <span class="pre">tests</span></code> before creating a PR.</dt>
110
+<dt>Run <code class="docutils literal notranslate"><span class="pre">./manage.sh</span> <span class="pre">tests</span></code> before creating a PR.</dt>
120
 <dd>Failing build on Travis is common because of PEP8 checks. So a new commit must be created
111
 <dd>Failing build on Travis is common because of PEP8 checks. So a new commit must be created
121
-containing these format fixes. This phase can be skipped if <code class="docutils literal"><span class="pre">./manage.sh</span> <span class="pre">tests</span></code> is run
112
+containing these format fixes. This phase can be skipped if <code class="docutils literal notranslate"><span class="pre">./manage.sh</span> <span class="pre">tests</span></code> is run
122
 locally before creating a PR.</dd>
113
 locally before creating a PR.</dd>
123
 </dl>
114
 </dl>
124
 </li>
115
 </li>
131
         </div>
122
         </div>
132
       </div>
123
       </div>
133
       <div class="sphinxsidebar" role="navigation" aria-label="main navigation">
124
       <div class="sphinxsidebar" role="navigation" aria-label="main navigation">
134
-        <div class="sphinxsidebarwrapper"><div class="sidebar_container body">
125
+        <div class="sphinxsidebarwrapper">
126
+  <h3><a href="../index.html">Table Of Contents</a></h3>
127
+  <ul>
128
+<li><a class="reference internal" href="#">Development Quickstart</a><ul>
129
+<li><a class="reference internal" href="#how-to-setup-your-development-environment">How to setup your development environment</a></li>
130
+<li><a class="reference internal" href="#how-to-run-tests">How to run tests</a></li>
131
+<li><a class="reference internal" href="#how-to-compile-styles-and-javascript">How to compile styles and javascript</a><ul>
132
+<li><a class="reference internal" href="#how-to-build-styles">How to build styles</a></li>
133
+<li><a class="reference internal" href="#how-to-build-the-source-of-the-oscar-theme">How to build the source of the oscar theme</a></li>
134
+</ul>
135
+</li>
136
+<li><a class="reference internal" href="#tips-for-debugging-development">Tips for debugging/development</a></li>
137
+</ul>
138
+</li>
139
+</ul>
140
+<div class="sidebar_container body">
135
 <h1>Searx</h1>
141
 <h1>Searx</h1>
136
 <ul>
142
 <ul>
137
     <li><a href="../index.html">Home</a></li>
143
     <li><a href="../index.html">Home</a></li>
145
     <li><a href="https://twitter.com/Searx_engine">Twitter</a></li>
151
     <li><a href="https://twitter.com/Searx_engine">Twitter</a></li>
146
 </ul>
152
 </ul>
147
 </div>
153
 </div>
154
+  <div role="note" aria-label="source link">
155
+    <h3>This Page</h3>
156
+    <ul class="this-page-menu">
157
+      <li><a href="../_sources/dev/quickstart.rst.txt"
158
+            rel="nofollow">Show Source</a></li>
159
+    </ul>
160
+   </div>
161
+<div id="searchbox" style="display: none" role="search">
162
+  <h3>Quick search</h3>
163
+    <div class="searchformwrapper">
164
+    <form class="search" action="../search.html" method="get">
165
+      <input type="text" name="q" />
166
+      <input type="submit" value="Go" />
167
+      <input type="hidden" name="check_keywords" value="yes" />
168
+      <input type="hidden" name="area" value="default" />
169
+    </form>
170
+    </div>
171
+</div>
172
+<script type="text/javascript">$('#searchbox').show(0);</script>
148
         </div>
173
         </div>
149
       </div>
174
       </div>
150
       <div class="clearer"></div>
175
       <div class="clearer"></div>

+ 73
- 55
dev/search_api.html View File

4
 
4
 
5
 <html xmlns="http://www.w3.org/1999/xhtml">
5
 <html xmlns="http://www.w3.org/1999/xhtml">
6
   <head>
6
   <head>
7
+    <meta http-equiv="X-UA-Compatible" content="IE=Edge" />
7
     <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
8
     <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
8
     <title>Search API &#8212; searx 0.12.0 documentation</title>
9
     <title>Search API &#8212; searx 0.12.0 documentation</title>
9
     <link rel="stylesheet" href="../_static/style.css" type="text/css" />
10
     <link rel="stylesheet" href="../_static/style.css" type="text/css" />
10
     <link rel="stylesheet" href="../_static/pygments.css" type="text/css" />
11
     <link rel="stylesheet" href="../_static/pygments.css" type="text/css" />
11
-    <script type="text/javascript">
12
-      var DOCUMENTATION_OPTIONS = {
13
-        URL_ROOT:    '../',
14
-        VERSION:     '0.12.0',
15
-        COLLAPSE_INDEX: false,
16
-        FILE_SUFFIX: '.html',
17
-        HAS_SOURCE:  true,
18
-        SOURCELINK_SUFFIX: '.txt'
19
-      };
20
-    </script>
12
+    <script type="text/javascript" src="../_static/documentation_options.js"></script>
21
     <script type="text/javascript" src="../_static/jquery.js"></script>
13
     <script type="text/javascript" src="../_static/jquery.js"></script>
22
     <script type="text/javascript" src="../_static/underscore.js"></script>
14
     <script type="text/javascript" src="../_static/underscore.js"></script>
23
     <script type="text/javascript" src="../_static/doctools.js"></script>
15
     <script type="text/javascript" src="../_static/doctools.js"></script>
30
   <link media="only screen and (max-device-width: 480px)" href="../_static/small_flask.css" type= "text/css" rel="stylesheet" />
22
   <link media="only screen and (max-device-width: 480px)" href="../_static/small_flask.css" type= "text/css" rel="stylesheet" />
31
   <meta name="viewport" content="width=device-width, initial-scale=0.9, maximum-scale=0.9">
23
   <meta name="viewport" content="width=device-width, initial-scale=0.9, maximum-scale=0.9">
32
 
24
 
33
-  </head>
34
-  <body>  
25
+  </head><body>  
35
 
26
 
36
     <div class="document">
27
     <div class="document">
37
       <div class="documentwrapper">
28
       <div class="documentwrapper">
40
             
31
             
41
   <div class="section" id="search-api">
32
   <div class="section" id="search-api">
42
 <h1>Search API<a class="headerlink" href="#search-api" title="Permalink to this headline">¶</a></h1>
33
 <h1>Search API<a class="headerlink" href="#search-api" title="Permalink to this headline">¶</a></h1>
43
-<p>The search supports both <code class="docutils literal"><span class="pre">GET</span></code> and <code class="docutils literal"><span class="pre">POST</span></code>.</p>
44
-<p>Furthermore, two enpoints <code class="docutils literal"><span class="pre">/</span></code> and <code class="docutils literal"><span class="pre">/search</span></code> are available for querying.</p>
45
-<p><code class="docutils literal"><span class="pre">GET</span> <span class="pre">/</span></code></p>
46
-<p><code class="docutils literal"><span class="pre">GET</span> <span class="pre">/search</span></code></p>
34
+<p>The search supports both <code class="docutils literal notranslate"><span class="pre">GET</span></code> and <code class="docutils literal notranslate"><span class="pre">POST</span></code>.</p>
35
+<p>Furthermore, two enpoints <code class="docutils literal notranslate"><span class="pre">/</span></code> and <code class="docutils literal notranslate"><span class="pre">/search</span></code> are available for querying.</p>
36
+<p><code class="docutils literal notranslate"><span class="pre">GET</span> <span class="pre">/</span></code></p>
37
+<p><code class="docutils literal notranslate"><span class="pre">GET</span> <span class="pre">/search</span></code></p>
47
 <div class="section" id="parameters">
38
 <div class="section" id="parameters">
48
 <h2>Parameters<a class="headerlink" href="#parameters" title="Permalink to this headline">¶</a></h2>
39
 <h2>Parameters<a class="headerlink" href="#parameters" title="Permalink to this headline">¶</a></h2>
49
-<div class="code sh highlight-default"><div class="highlight"><pre><span></span><span class="n">q</span>
40
+<div class="code sh highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">q</span>
50
 </pre></div>
41
 </pre></div>
51
 </div>
42
 </div>
52
 <p>The search query. This string is passed to external search services.
43
 <p>The search query. This string is passed to external search services.
53
-Thus, searx supports syntax of each search service. For example, <code class="docutils literal"><span class="pre">site:github.com</span> <span class="pre">searx</span></code> is a valid
44
+Thus, searx supports syntax of each search service. For example, <code class="docutils literal notranslate"><span class="pre">site:github.com</span> <span class="pre">searx</span></code> is a valid
54
 query for Google. However, if simply the query above is passed to any search engine which does not filter its
45
 query for Google. However, if simply the query above is passed to any search engine which does not filter its
55
 results based on this syntax, you might not get the results you wanted.</p>
46
 results based on this syntax, you might not get the results you wanted.</p>
56
 <p>See more at <a class="reference internal" href="../user/search_syntax.html"><span class="doc">Search syntax</span></a></p>
47
 <p>See more at <a class="reference internal" href="../user/search_syntax.html"><span class="doc">Search syntax</span></a></p>
57
 <p>Required.</p>
48
 <p>Required.</p>
58
-<div class="code sh highlight-default"><div class="highlight"><pre><span></span><span class="n">categories</span>
49
+<div class="code sh highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">categories</span>
59
 </pre></div>
50
 </pre></div>
60
 </div>
51
 </div>
61
 <p>Comma separated list, specifies the active search categories</p>
52
 <p>Comma separated list, specifies the active search categories</p>
62
 <p>Optional.</p>
53
 <p>Optional.</p>
63
-<div class="code sh highlight-default"><div class="highlight"><pre><span></span><span class="n">engines</span>
54
+<div class="code sh highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">engines</span>
64
 </pre></div>
55
 </pre></div>
65
 </div>
56
 </div>
66
 <p>Comma separated list, specifies the active search engines.</p>
57
 <p>Comma separated list, specifies the active search engines.</p>
67
 <p>Optional.</p>
58
 <p>Optional.</p>
68
-<div class="code sh highlight-default"><div class="highlight"><pre><span></span><span class="n">lang</span>
59
+<div class="code sh highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">lang</span>
69
 </pre></div>
60
 </pre></div>
70
 </div>
61
 </div>
71
 <p>Code of the language.</p>
62
 <p>Code of the language.</p>
72
 <p>Optional.</p>
63
 <p>Optional.</p>
73
-<p>Default: <code class="docutils literal"><span class="pre">all</span></code></p>
74
-<div class="code sh highlight-default"><div class="highlight"><pre><span></span><span class="n">pageno</span>
64
+<p>Default: <code class="docutils literal notranslate"><span class="pre">all</span></code></p>
65
+<div class="code sh highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">pageno</span>
75
 </pre></div>
66
 </pre></div>
76
 </div>
67
 </div>
77
 <p>Search page number.</p>
68
 <p>Search page number.</p>
78
 <p>Optional.</p>
69
 <p>Optional.</p>
79
-<p>Default: <code class="docutils literal"><span class="pre">1</span></code></p>
80
-<div class="code sh highlight-default"><div class="highlight"><pre><span></span><span class="n">time_range</span>
70
+<p>Default: <code class="docutils literal notranslate"><span class="pre">1</span></code></p>
71
+<div class="code sh highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">time_range</span>
81
 </pre></div>
72
 </pre></div>
82
 </div>
73
 </div>
83
 <p>Time range of search for engines which support it. See if an engine supports time range search in the preferences page of an instance.</p>
74
 <p>Time range of search for engines which support it. See if an engine supports time range search in the preferences page of an instance.</p>
84
 <p>Optional.</p>
75
 <p>Optional.</p>
85
-<p>Possible: <code class="docutils literal"><span class="pre">day</span></code>, <code class="docutils literal"><span class="pre">month</span></code>, <code class="docutils literal"><span class="pre">year</span></code></p>
86
-<div class="code sh highlight-default"><div class="highlight"><pre><span></span><span class="nb">format</span>
76
+<p>Possible: <code class="docutils literal notranslate"><span class="pre">day</span></code>, <code class="docutils literal notranslate"><span class="pre">month</span></code>, <code class="docutils literal notranslate"><span class="pre">year</span></code></p>
77
+<div class="code sh highlight-default notranslate"><div class="highlight"><pre><span></span><span class="nb">format</span>
87
 </pre></div>
78
 </pre></div>
88
 </div>
79
 </div>
89
 <p>Output format of results.</p>
80
 <p>Output format of results.</p>
90
 <p>Optional.</p>
81
 <p>Optional.</p>
91
-<p>Possible: <code class="docutils literal"><span class="pre">json</span></code>, <code class="docutils literal"><span class="pre">csv</span></code>, <code class="docutils literal"><span class="pre">rss</span></code></p>
92
-<div class="code sh highlight-default"><div class="highlight"><pre><span></span><span class="n">results_on_new_tab</span>
82
+<p>Possible: <code class="docutils literal notranslate"><span class="pre">json</span></code>, <code class="docutils literal notranslate"><span class="pre">csv</span></code>, <code class="docutils literal notranslate"><span class="pre">rss</span></code></p>
83
+<div class="code sh highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">results_on_new_tab</span>
93
 </pre></div>
84
 </pre></div>
94
 </div>
85
 </div>
95
 <p>Open search results on new tab.</p>
86
 <p>Open search results on new tab.</p>
96
 <p>Optional.</p>
87
 <p>Optional.</p>
97
-<p>Default: <code class="docutils literal"><span class="pre">0</span></code></p>
98
-<p>Possible: <code class="docutils literal"><span class="pre">0</span></code>, <code class="docutils literal"><span class="pre">1</span></code></p>
99
-<div class="code sh highlight-default"><div class="highlight"><pre><span></span><span class="n">image_proxy</span>
88
+<p>Default: <code class="docutils literal notranslate"><span class="pre">0</span></code></p>
89
+<p>Possible: <code class="docutils literal notranslate"><span class="pre">0</span></code>, <code class="docutils literal notranslate"><span class="pre">1</span></code></p>
90
+<div class="code sh highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">image_proxy</span>
100
 </pre></div>
91
 </pre></div>
101
 </div>
92
 </div>
102
 <p>Proxy image results through searx.</p>
93
 <p>Proxy image results through searx.</p>
103
 <p>Optional.</p>
94
 <p>Optional.</p>
104
-<p>Default: <code class="docutils literal"><span class="pre">False</span></code></p>
105
-<p>Possible: <code class="docutils literal"><span class="pre">True</span></code>, <code class="docutils literal"><span class="pre">False</span></code></p>
106
-<div class="code sh highlight-default"><div class="highlight"><pre><span></span><span class="n">autocomplete</span>
95
+<p>Default: <code class="docutils literal notranslate"><span class="pre">False</span></code></p>
96
+<p>Possible: <code class="docutils literal notranslate"><span class="pre">True</span></code>, <code class="docutils literal notranslate"><span class="pre">False</span></code></p>
97
+<div class="code sh highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">autocomplete</span>
107
 </pre></div>
98
 </pre></div>
108
 </div>
99
 </div>
109
 <p>Service which completes words as you type.</p>
100
 <p>Service which completes words as you type.</p>
110
 <p>Optional.</p>
101
 <p>Optional.</p>
111
 <p>Default: empty</p>
102
 <p>Default: empty</p>
112
-<p>Possible: <code class="docutils literal"><span class="pre">google</span></code>, <code class="docutils literal"><span class="pre">dbpedia</span></code>, <code class="docutils literal"><span class="pre">duckduckgo</span></code>, <code class="docutils literal"><span class="pre">startpage</span></code>, <code class="docutils literal"><span class="pre">wikipedia</span></code></p>
113
-<div class="code sh highlight-default"><div class="highlight"><pre><span></span><span class="n">safesearch</span>
103
+<p>Possible: <code class="docutils literal notranslate"><span class="pre">google</span></code>, <code class="docutils literal notranslate"><span class="pre">dbpedia</span></code>, <code class="docutils literal notranslate"><span class="pre">duckduckgo</span></code>, <code class="docutils literal notranslate"><span class="pre">startpage</span></code>, <code class="docutils literal notranslate"><span class="pre">wikipedia</span></code></p>
104
+<div class="code sh highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">safesearch</span>
114
 </pre></div>
105
 </pre></div>
115
 </div>
106
 </div>
116
 <p>Filter search results of engines which support safe search. See if an engine supports safe search in the preferences page of an instance.</p>
107
 <p>Filter search results of engines which support safe search. See if an engine supports safe search in the preferences page of an instance.</p>
117
 <p>Optional.</p>
108
 <p>Optional.</p>
118
-<p>Default: <code class="docutils literal"><span class="pre">None</span></code></p>
119
-<p>Possible: <code class="docutils literal"><span class="pre">0</span></code>, <code class="docutils literal"><span class="pre">1</span></code>, <code class="docutils literal"><span class="pre">None</span></code></p>
120
-<div class="code sh highlight-default"><div class="highlight"><pre><span></span><span class="n">theme</span>
109
+<p>Default: <code class="docutils literal notranslate"><span class="pre">None</span></code></p>
110
+<p>Possible: <code class="docutils literal notranslate"><span class="pre">0</span></code>, <code class="docutils literal notranslate"><span class="pre">1</span></code>, <code class="docutils literal notranslate"><span class="pre">None</span></code></p>
111
+<div class="code sh highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">theme</span>
121
 </pre></div>
112
 </pre></div>
122
 </div>
113
 </div>
123
 <p>Theme of instance.</p>
114
 <p>Theme of instance.</p>
124
 <p>Optional.</p>
115
 <p>Optional.</p>
125
-<p>Default: <code class="docutils literal"><span class="pre">oscar</span></code></p>
126
-<p>Possible: <code class="docutils literal"><span class="pre">oscar</span></code>, <code class="docutils literal"><span class="pre">simple</span></code>, <code class="docutils literal"><span class="pre">legacy</span></code>, <code class="docutils literal"><span class="pre">pix-art</span></code>, <code class="docutils literal"><span class="pre">courgette</span></code></p>
116
+<p>Default: <code class="docutils literal notranslate"><span class="pre">oscar</span></code></p>
117
+<p>Possible: <code class="docutils literal notranslate"><span class="pre">oscar</span></code>, <code class="docutils literal notranslate"><span class="pre">simple</span></code>, <code class="docutils literal notranslate"><span class="pre">legacy</span></code>, <code class="docutils literal notranslate"><span class="pre">pix-art</span></code>, <code class="docutils literal notranslate"><span class="pre">courgette</span></code></p>
127
 <p>Please note, available themes depend on an instance. It is possible that an instance administrator deleted, created or renamed themes on his/her instance. See the available options in the preferences page of the instance.</p>
118
 <p>Please note, available themes depend on an instance. It is possible that an instance administrator deleted, created or renamed themes on his/her instance. See the available options in the preferences page of the instance.</p>
128
-<div class="code sh highlight-default"><div class="highlight"><pre><span></span><span class="n">oscar</span><span class="o">-</span><span class="n">style</span>
119
+<div class="code sh highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">oscar</span><span class="o">-</span><span class="n">style</span>
129
 </pre></div>
120
 </pre></div>
130
 </div>
121
 </div>
131
-<p>Style of Oscar theme. It is only parsed if the theme of an instance is <code class="docutils literal"><span class="pre">oscar</span></code>.</p>
122
+<p>Style of Oscar theme. It is only parsed if the theme of an instance is <code class="docutils literal notranslate"><span class="pre">oscar</span></code>.</p>
132
 <p>Optional.</p>
123
 <p>Optional.</p>
133
-<p>Default: <code class="docutils literal"><span class="pre">logicodev</span></code></p>
134
-<p>Possible: <code class="docutils literal"><span class="pre">pointhi</span></code>, <code class="docutils literal"><span class="pre">logicodev</span></code></p>
124
+<p>Default: <code class="docutils literal notranslate"><span class="pre">logicodev</span></code></p>
125
+<p>Possible: <code class="docutils literal notranslate"><span class="pre">pointhi</span></code>, <code class="docutils literal notranslate"><span class="pre">logicodev</span></code></p>
135
 <p>Please note, available styles depend on an instance. It is possible that an instance administrator deleted, created or renamed styles on his/her instance. See the available options in the preferences page of the instance.</p>
126
 <p>Please note, available styles depend on an instance. It is possible that an instance administrator deleted, created or renamed styles on his/her instance. See the available options in the preferences page of the instance.</p>
136
-<div class="code sh highlight-default"><div class="highlight"><pre><span></span><span class="n">enabled_plugins</span>
127
+<div class="code sh highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">enabled_plugins</span>
137
 </pre></div>
128
 </pre></div>
138
 </div>
129
 </div>
139
 <p>List of enabled plugins.</p>
130
 <p>List of enabled plugins.</p>
140
 <p>Optional.</p>
131
 <p>Optional.</p>
141
-<p>Default: <code class="docutils literal"><span class="pre">HTTPS_rewrite</span></code>, <code class="docutils literal"><span class="pre">Self_Informations</span></code>, <code class="docutils literal"><span class="pre">Search_on_category_select</span></code>, <code class="docutils literal"><span class="pre">Tracker_URL_remover</span></code></p>
142
-<p>Possible: <code class="docutils literal"><span class="pre">DOAI_rewrite</span></code>, <code class="docutils literal"><span class="pre">HTTPS_rewrite</span></code>, <code class="docutils literal"><span class="pre">Infinite_scroll</span></code>, <code class="docutils literal"><span class="pre">Vim-like_hotkeys</span></code>, <code class="docutils literal"><span class="pre">Self_Informations</span></code>, <code class="docutils literal"><span class="pre">Tracker_URL_remover</span></code>, <code class="docutils literal"><span class="pre">Search_on_category_select</span></code></p>
143
-<div class="code sh highlight-default"><div class="highlight"><pre><span></span><span class="n">disabled_plugins</span>
132
+<p>Default: <code class="docutils literal notranslate"><span class="pre">HTTPS_rewrite</span></code>, <code class="docutils literal notranslate"><span class="pre">Self_Informations</span></code>, <code class="docutils literal notranslate"><span class="pre">Search_on_category_select</span></code>, <code class="docutils literal notranslate"><span class="pre">Tracker_URL_remover</span></code></p>
133
+<p>Possible: <code class="docutils literal notranslate"><span class="pre">DOAI_rewrite</span></code>, <code class="docutils literal notranslate"><span class="pre">HTTPS_rewrite</span></code>, <code class="docutils literal notranslate"><span class="pre">Infinite_scroll</span></code>, <code class="docutils literal notranslate"><span class="pre">Vim-like_hotkeys</span></code>, <code class="docutils literal notranslate"><span class="pre">Self_Informations</span></code>, <code class="docutils literal notranslate"><span class="pre">Tracker_URL_remover</span></code>, <code class="docutils literal notranslate"><span class="pre">Search_on_category_select</span></code></p>
134
+<div class="code sh highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">disabled_plugins</span>
144
 </pre></div>
135
 </pre></div>
145
 </div>
136
 </div>
146
 <p>List of disabled plugins.</p>
137
 <p>List of disabled plugins.</p>
147
 <p>Optional.</p>
138
 <p>Optional.</p>
148
-<p>Default: <code class="docutils literal"><span class="pre">DOAI_rewrite</span></code>, <code class="docutils literal"><span class="pre">Infinite_scroll</span></code>, <code class="docutils literal"><span class="pre">Vim-like_hotkeys</span></code></p>
149
-<p>Possible: <code class="docutils literal"><span class="pre">DOAI_rewrite</span></code>, <code class="docutils literal"><span class="pre">HTTPS_rewrite</span></code>, <code class="docutils literal"><span class="pre">Infinite_scroll</span></code>, <code class="docutils literal"><span class="pre">Vim-like_hotkeys</span></code>, <code class="docutils literal"><span class="pre">Self_Informations</span></code>, <code class="docutils literal"><span class="pre">Tracker_URL_remover</span></code>, <code class="docutils literal"><span class="pre">Search_on_category_select</span></code></p>
150
-<div class="code sh highlight-default"><div class="highlight"><pre><span></span><span class="n">enabled_engines</span>
139
+<p>Default: <code class="docutils literal notranslate"><span class="pre">DOAI_rewrite</span></code>, <code class="docutils literal notranslate"><span class="pre">Infinite_scroll</span></code>, <code class="docutils literal notranslate"><span class="pre">Vim-like_hotkeys</span></code></p>
140
+<p>Possible: <code class="docutils literal notranslate"><span class="pre">DOAI_rewrite</span></code>, <code class="docutils literal notranslate"><span class="pre">HTTPS_rewrite</span></code>, <code class="docutils literal notranslate"><span class="pre">Infinite_scroll</span></code>, <code class="docutils literal notranslate"><span class="pre">Vim-like_hotkeys</span></code>, <code class="docutils literal notranslate"><span class="pre">Self_Informations</span></code>, <code class="docutils literal notranslate"><span class="pre">Tracker_URL_remover</span></code>, <code class="docutils literal notranslate"><span class="pre">Search_on_category_select</span></code></p>
141
+<div class="code sh highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">enabled_engines</span>
151
 </pre></div>
142
 </pre></div>
152
 </div>
143
 </div>
153
 <p>List of enabled engines.</p>
144
 <p>List of enabled engines.</p>
154
 <p>Optional.</p>
145
 <p>Optional.</p>
155
 <p>Possible:  all engines</p>
146
 <p>Possible:  all engines</p>
156
-<div class="code sh highlight-default"><div class="highlight"><pre><span></span><span class="n">disabled_engines</span>
147
+<div class="code sh highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">disabled_engines</span>
157
 </pre></div>
148
 </pre></div>
158
 </div>
149
 </div>
159
 <p>List of disabled engines.</p>
150
 <p>List of disabled engines.</p>
167
         </div>
158
         </div>
168
       </div>
159
       </div>
169
       <div class="sphinxsidebar" role="navigation" aria-label="main navigation">
160
       <div class="sphinxsidebar" role="navigation" aria-label="main navigation">
170
-        <div class="sphinxsidebarwrapper"><div class="sidebar_container body">
161
+        <div class="sphinxsidebarwrapper">
162
+  <h3><a href="../index.html">Table Of Contents</a></h3>
163
+  <ul>
164
+<li><a class="reference internal" href="#">Search API</a><ul>
165
+<li><a class="reference internal" href="#parameters">Parameters</a></li>
166
+</ul>
167
+</li>
168
+</ul>
169
+<div class="sidebar_container body">
171
 <h1>Searx</h1>
170
 <h1>Searx</h1>
172
 <ul>
171
 <ul>
173
     <li><a href="../index.html">Home</a></li>
172
     <li><a href="../index.html">Home</a></li>
181
     <li><a href="https://twitter.com/Searx_engine">Twitter</a></li>
180
     <li><a href="https://twitter.com/Searx_engine">Twitter</a></li>
182
 </ul>
181
 </ul>
183
 </div>
182
 </div>
183
+  <div role="note" aria-label="source link">
184
+    <h3>This Page</h3>
185
+    <ul class="this-page-menu">
186
+      <li><a href="../_sources/dev/search_api.rst.txt"
187
+            rel="nofollow">Show Source</a></li>
188
+    </ul>
189
+   </div>
190
+<div id="searchbox" style="display: none" role="search">
191
+  <h3>Quick search</h3>
192
+    <div class="searchformwrapper">
193
+    <form class="search" action="../search.html" method="get">
194
+      <input type="text" name="q" />
195
+      <input type="submit" value="Go" />
196
+      <input type="hidden" name="check_keywords" value="yes" />
197
+      <input type="hidden" name="area" value="default" />
198
+    </form>
199
+    </div>
200
+</div>
201
+<script type="text/javascript">$('#searchbox').show(0);</script>
184
         </div>
202
         </div>
185
       </div>
203
       </div>
186
       <div class="clearer"></div>
204
       <div class="clearer"></div>

+ 44
- 24
dev/translation.html View File

4
 
4
 
5
 <html xmlns="http://www.w3.org/1999/xhtml">
5
 <html xmlns="http://www.w3.org/1999/xhtml">
6
   <head>
6
   <head>
7
+    <meta http-equiv="X-UA-Compatible" content="IE=Edge" />
7
     <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
8
     <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
8
     <title>Translation &#8212; searx 0.12.0 documentation</title>
9
     <title>Translation &#8212; searx 0.12.0 documentation</title>
9
     <link rel="stylesheet" href="../_static/style.css" type="text/css" />
10
     <link rel="stylesheet" href="../_static/style.css" type="text/css" />
10
     <link rel="stylesheet" href="../_static/pygments.css" type="text/css" />
11
     <link rel="stylesheet" href="../_static/pygments.css" type="text/css" />
11
-    <script type="text/javascript">
12
-      var DOCUMENTATION_OPTIONS = {
13
-        URL_ROOT:    '../',
14
-        VERSION:     '0.12.0',
15
-        COLLAPSE_INDEX: false,
16
-        FILE_SUFFIX: '.html',
17
-        HAS_SOURCE:  true,
18
-        SOURCELINK_SUFFIX: '.txt'
19
-      };
20
-    </script>
12
+    <script type="text/javascript" src="../_static/documentation_options.js"></script>
21
     <script type="text/javascript" src="../_static/jquery.js"></script>
13
     <script type="text/javascript" src="../_static/jquery.js"></script>
22
     <script type="text/javascript" src="../_static/underscore.js"></script>
14
     <script type="text/javascript" src="../_static/underscore.js"></script>
23
     <script type="text/javascript" src="../_static/doctools.js"></script>
15
     <script type="text/javascript" src="../_static/doctools.js"></script>
29
   <link media="only screen and (max-device-width: 480px)" href="../_static/small_flask.css" type= "text/css" rel="stylesheet" />
21
   <link media="only screen and (max-device-width: 480px)" href="../_static/small_flask.css" type= "text/css" rel="stylesheet" />
30
   <meta name="viewport" content="width=device-width, initial-scale=0.9, maximum-scale=0.9">
22
   <meta name="viewport" content="width=device-width, initial-scale=0.9, maximum-scale=0.9">
31
 
23
 
32
-  </head>
33
-  <body>  
24
+  </head><body>  
34
 
25
 
35
     <div class="document">
26
     <div class="document">
36
       <div class="documentwrapper">
27
       <div class="documentwrapper">
50
 </div>
41
 </div>
51
 <div class="section" id="init-transifex-project">
42
 <div class="section" id="init-transifex-project">
52
 <h2>Init Transifex project<a class="headerlink" href="#init-transifex-project" title="Permalink to this headline">¶</a></h2>
43
 <h2>Init Transifex project<a class="headerlink" href="#init-transifex-project" title="Permalink to this headline">¶</a></h2>
53
-<p>After installing <code class="docutils literal"><span class="pre">transifex</span></code> using pip, run the following command to initialize the project.</p>
54
-<div class="code shell highlight-default"><div class="highlight"><pre><span></span><span class="n">tx</span> <span class="n">init</span> <span class="c1"># Transifex instance: https://www.transifex.com/asciimoo/searx/</span>
44
+<p>After installing <code class="docutils literal notranslate"><span class="pre">transifex</span></code> using pip, run the following command to initialize the project.</p>
45
+<div class="code shell highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">tx</span> <span class="n">init</span> <span class="c1"># Transifex instance: https://www.transifex.com/asciimoo/searx/</span>
55
 </pre></div>
46
 </pre></div>
56
 </div>
47
 </div>
57
-<p>After <code class="docutils literal"><span class="pre">$HOME/.transifexrc</span></code> is created, get a Transifex API key and insert it into the configuration file.</p>
58
-<p>Create a configuration file for <code class="docutils literal"><span class="pre">tx</span></code> named <code class="docutils literal"><span class="pre">$HOME/.tx/config</span></code>.</p>
59
-<div class="code shell highlight-default"><div class="highlight"><pre><span></span><span class="p">[</span><span class="n">main</span><span class="p">]</span>
48
+<p>After <code class="docutils literal notranslate"><span class="pre">$HOME/.transifexrc</span></code> is created, get a Transifex API key and insert it into the configuration file.</p>
49
+<p>Create a configuration file for <code class="docutils literal notranslate"><span class="pre">tx</span></code> named <code class="docutils literal notranslate"><span class="pre">$HOME/.tx/config</span></code>.</p>
50
+<div class="code shell highlight-default notranslate"><div class="highlight"><pre><span></span><span class="p">[</span><span class="n">main</span><span class="p">]</span>
60
 <span class="n">host</span> <span class="o">=</span> <span class="n">https</span><span class="p">:</span><span class="o">//</span><span class="n">www</span><span class="o">.</span><span class="n">transifex</span><span class="o">.</span><span class="n">com</span>
51
 <span class="n">host</span> <span class="o">=</span> <span class="n">https</span><span class="p">:</span><span class="o">//</span><span class="n">www</span><span class="o">.</span><span class="n">transifex</span><span class="o">.</span><span class="n">com</span>
61
 <span class="p">[</span><span class="n">searx</span><span class="o">.</span><span class="n">messagespo</span><span class="p">]</span>
52
 <span class="p">[</span><span class="n">searx</span><span class="o">.</span><span class="n">messagespo</span><span class="p">]</span>
62
 <span class="n">file_filter</span> <span class="o">=</span> <span class="n">searx</span><span class="o">/</span><span class="n">translations</span><span class="o">/&lt;</span><span class="n">lang</span><span class="o">&gt;/</span><span class="n">LC_MESSAGES</span><span class="o">/</span><span class="n">messages</span><span class="o">.</span><span class="n">po</span>
53
 <span class="n">file_filter</span> <span class="o">=</span> <span class="n">searx</span><span class="o">/</span><span class="n">translations</span><span class="o">/&lt;</span><span class="n">lang</span><span class="o">&gt;/</span><span class="n">LC_MESSAGES</span><span class="o">/</span><span class="n">messages</span><span class="o">.</span><span class="n">po</span>
65
 <span class="nb">type</span> <span class="o">=</span> <span class="n">PO</span>
56
 <span class="nb">type</span> <span class="o">=</span> <span class="n">PO</span>
66
 </pre></div>
57
 </pre></div>
67
 </div>
58
 </div>
68
-<p>Then run <code class="docutils literal"><span class="pre">tx</span> <span class="pre">set</span></code>:</p>
69
-<div class="code shell highlight-default"><div class="highlight"><pre><span></span><span class="n">tx</span> <span class="nb">set</span> <span class="o">--</span><span class="n">auto</span><span class="o">-</span><span class="n">local</span> <span class="o">-</span><span class="n">r</span> <span class="n">searx</span><span class="o">.</span><span class="n">messagespo</span> <span class="s1">&#39;searx/translations/&lt;lang&gt;/LC_MESSAGES/messages.po&#39;</span> \
59
+<p>Then run <code class="docutils literal notranslate"><span class="pre">tx</span> <span class="pre">set</span></code>:</p>
60
+<div class="code shell highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">tx</span> <span class="nb">set</span> <span class="o">--</span><span class="n">auto</span><span class="o">-</span><span class="n">local</span> <span class="o">-</span><span class="n">r</span> <span class="n">searx</span><span class="o">.</span><span class="n">messagespo</span> <span class="s1">&#39;searx/translations/&lt;lang&gt;/LC_MESSAGES/messages.po&#39;</span> \
70
 <span class="o">--</span><span class="n">source</span><span class="o">-</span><span class="n">lang</span> <span class="n">en</span> <span class="o">--</span><span class="nb">type</span> <span class="n">PO</span> <span class="o">--</span><span class="n">source</span><span class="o">-</span><span class="n">file</span> <span class="n">messages</span><span class="o">.</span><span class="n">pot</span> <span class="o">--</span><span class="n">execute</span>
61
 <span class="o">--</span><span class="n">source</span><span class="o">-</span><span class="n">lang</span> <span class="n">en</span> <span class="o">--</span><span class="nb">type</span> <span class="n">PO</span> <span class="o">--</span><span class="n">source</span><span class="o">-</span><span class="n">file</span> <span class="n">messages</span><span class="o">.</span><span class="n">pot</span> <span class="o">--</span><span class="n">execute</span>
71
 </pre></div>
62
 </pre></div>
72
 </div>
63
 </div>
74
 <div class="section" id="update-translations">
65
 <div class="section" id="update-translations">
75
 <h2>Update translations<a class="headerlink" href="#update-translations" title="Permalink to this headline">¶</a></h2>
66
 <h2>Update translations<a class="headerlink" href="#update-translations" title="Permalink to this headline">¶</a></h2>
76
 <p>To retrieve the latest translations, pull it from Transifex.</p>
67
 <p>To retrieve the latest translations, pull it from Transifex.</p>
77
-<div class="code shell highlight-default"><div class="highlight"><pre><span></span><span class="n">tx</span> <span class="n">pull</span> <span class="o">-</span><span class="n">a</span>
68
+<div class="code shell highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">tx</span> <span class="n">pull</span> <span class="o">-</span><span class="n">a</span>
78
 </pre></div>
69
 </pre></div>
79
 </div>
70
 </div>
80
 <p>Then check the new languages. If strings translated are not enough, delete those folders, because
71
 <p>Then check the new languages. If strings translated are not enough, delete those folders, because
81
-those should not be compiled. Call the command below to compile the <code class="docutils literal"><span class="pre">.po</span></code> files.</p>
82
-<div class="code shell highlight-default"><div class="highlight"><pre><span></span><span class="n">pybabel</span> <span class="nb">compile</span> <span class="o">-</span><span class="n">d</span> <span class="n">searx</span><span class="o">/</span><span class="n">translations</span>
72
+those should not be compiled. Call the command below to compile the <code class="docutils literal notranslate"><span class="pre">.po</span></code> files.</p>
73
+<div class="code shell highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">pybabel</span> <span class="nb">compile</span> <span class="o">-</span><span class="n">d</span> <span class="n">searx</span><span class="o">/</span><span class="n">translations</span>
83
 </pre></div>
74
 </pre></div>
84
 </div>
75
 </div>
85
-<p>After the compilation is finished commit the <code class="docutils literal"><span class="pre">.po</span></code> and <code class="docutils literal"><span class="pre">.mo</span></code> files and create a PR.</p>
76
+<p>After the compilation is finished commit the <code class="docutils literal notranslate"><span class="pre">.po</span></code> and <code class="docutils literal notranslate"><span class="pre">.mo</span></code> files and create a PR.</p>
86
 </div>
77
 </div>
87
 </div>
78
 </div>
88
 
79
 
91
         </div>
82
         </div>
92
       </div>
83
       </div>
93
       <div class="sphinxsidebar" role="navigation" aria-label="main navigation">
84
       <div class="sphinxsidebar" role="navigation" aria-label="main navigation">
94
-        <div class="sphinxsidebarwrapper"><div class="sidebar_container body">
85
+        <div class="sphinxsidebarwrapper">
86
+  <h3><a href="../index.html">Table Of Contents</a></h3>
87
+  <ul>
88
+<li><a class="reference internal" href="#">Translation</a><ul>
89
+<li><a class="reference internal" href="#requirements">Requirements</a></li>
90
+<li><a class="reference internal" href="#init-transifex-project">Init Transifex project</a></li>
91
+<li><a class="reference internal" href="#update-translations">Update translations</a></li>
92
+</ul>
93
+</li>
94
+</ul>
95
+<div class="sidebar_container body">
95
 <h1>Searx</h1>
96
 <h1>Searx</h1>
96
 <ul>
97
 <ul>
97
     <li><a href="../index.html">Home</a></li>
98
     <li><a href="../index.html">Home</a></li>
105
     <li><a href="https://twitter.com/Searx_engine">Twitter</a></li>
106
     <li><a href="https://twitter.com/Searx_engine">Twitter</a></li>
106
 </ul>
107
 </ul>
107
 </div>
108
 </div>
109
+  <div role="note" aria-label="source link">
110
+    <h3>This Page</h3>
111
+    <ul class="this-page-menu">
112
+      <li><a href="../_sources/dev/translation.rst.txt"
113
+            rel="nofollow">Show Source</a></li>
114
+    </ul>
115
+   </div>
116
+<div id="searchbox" style="display: none" role="search">
117
+  <h3>Quick search</h3>
118
+    <div class="searchformwrapper">
119
+    <form class="search" action="../search.html" method="get">
120
+      <input type="text" name="q" />
121
+      <input type="submit" value="Go" />
122
+      <input type="hidden" name="check_keywords" value="yes" />
123
+      <input type="hidden" name="area" value="default" />
124
+    </form>
125
+    </div>
126
+</div>
127
+<script type="text/javascript">$('#searchbox').show(0);</script>
108
         </div>
128
         </div>
109
       </div>
129
       </div>
110
       <div class="clearer"></div>
130
       <div class="clearer"></div>

+ 1
- 1
docs/dev/install/installation.rst View File

15
 
15
 
16
 .. code:: sh
16
 .. code:: sh
17
 
17
 
18
-    sudo apt-get install git build-essential libxslt-dev python-dev python-virtualenv python-babel zlib1g-dev libffi-dev libssl-dev
18
+    sudo apt-get install git build-essential libxslt-dev python-dev python-virtualenv virtualenv python-babel zlib1g-dev libffi-dev libssl-dev
19
 
19
 
20
 Install searx:
20
 Install searx:
21
 
21
 

+ 16
- 16
genindex.html View File

5
 
5
 
6
 <html xmlns="http://www.w3.org/1999/xhtml">
6
 <html xmlns="http://www.w3.org/1999/xhtml">
7
   <head>
7
   <head>
8
+    <meta http-equiv="X-UA-Compatible" content="IE=Edge" />
8
     <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
9
     <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
9
     <title>Index &#8212; searx 0.12.0 documentation</title>
10
     <title>Index &#8212; searx 0.12.0 documentation</title>
10
     <link rel="stylesheet" href="_static/style.css" type="text/css" />
11
     <link rel="stylesheet" href="_static/style.css" type="text/css" />
11
     <link rel="stylesheet" href="_static/pygments.css" type="text/css" />
12
     <link rel="stylesheet" href="_static/pygments.css" type="text/css" />
12
-    <script type="text/javascript">
13
-      var DOCUMENTATION_OPTIONS = {
14
-        URL_ROOT:    './',
15
-        VERSION:     '0.12.0',
16
-        COLLAPSE_INDEX: false,
17
-        FILE_SUFFIX: '.html',
18
-        HAS_SOURCE:  true,
19
-        SOURCELINK_SUFFIX: '.txt'
20
-      };
21
-    </script>
13
+    <script type="text/javascript" src="_static/documentation_options.js"></script>
22
     <script type="text/javascript" src="_static/jquery.js"></script>
14
     <script type="text/javascript" src="_static/jquery.js"></script>
23
     <script type="text/javascript" src="_static/underscore.js"></script>
15
     <script type="text/javascript" src="_static/underscore.js"></script>
24
     <script type="text/javascript" src="_static/doctools.js"></script>
16
     <script type="text/javascript" src="_static/doctools.js"></script>
29
   <link media="only screen and (max-device-width: 480px)" href="_static/small_flask.css" type= "text/css" rel="stylesheet" />
21
   <link media="only screen and (max-device-width: 480px)" href="_static/small_flask.css" type= "text/css" rel="stylesheet" />
30
   <meta name="viewport" content="width=device-width, initial-scale=0.9, maximum-scale=0.9">
22
   <meta name="viewport" content="width=device-width, initial-scale=0.9, maximum-scale=0.9">
31
 
23
 
32
-  </head>
33
-  <body>  
24
+  </head><body>  
34
 
25
 
35
     <div class="document">
26
     <div class="document">
36
       <div class="documentwrapper">
27
       <div class="documentwrapper">
49
         </div>
40
         </div>
50
       </div>
41
       </div>
51
       <div class="sphinxsidebar" role="navigation" aria-label="main navigation">
42
       <div class="sphinxsidebar" role="navigation" aria-label="main navigation">
52
-        <div class="sphinxsidebarwrapper">
53
-
54
-   <div class="sidebar_container body">
43
+        <div class="sphinxsidebarwrapper"><div class="sidebar_container body">
55
 <h1>Searx</h1>
44
 <h1>Searx</h1>
56
 <ul>
45
 <ul>
57
     <li><a href="index.html">Home</a></li>
46
     <li><a href="index.html">Home</a></li>
65
     <li><a href="https://twitter.com/Searx_engine">Twitter</a></li>
54
     <li><a href="https://twitter.com/Searx_engine">Twitter</a></li>
66
 </ul>
55
 </ul>
67
 </div>
56
 </div>
68
-
57
+<div id="searchbox" style="display: none" role="search">
58
+  <h3>Quick search</h3>
59
+    <div class="searchformwrapper">
60
+    <form class="search" action="search.html" method="get">
61
+      <input type="text" name="q" />
62
+      <input type="submit" value="Go" />
63
+      <input type="hidden" name="check_keywords" value="yes" />
64
+      <input type="hidden" name="area" value="default" />
65
+    </form>
66
+    </div>
67
+</div>
68
+<script type="text/javascript">$('#searchbox').show(0);</script>
69
         </div>
69
         </div>
70
       </div>
70
       </div>
71
       <div class="clearer"></div>
71
       <div class="clearer"></div>

+ 34
- 13
index.html View File

4
 
4
 
5
 <html xmlns="http://www.w3.org/1999/xhtml">
5
 <html xmlns="http://www.w3.org/1999/xhtml">
6
   <head>
6
   <head>
7
+    <meta http-equiv="X-UA-Compatible" content="IE=Edge" />
7
     <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
8
     <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
8
     <title>Welcome to searx &#8212; searx 0.12.0 documentation</title>
9
     <title>Welcome to searx &#8212; searx 0.12.0 documentation</title>
9
     <link rel="stylesheet" href="_static/style.css" type="text/css" />
10
     <link rel="stylesheet" href="_static/style.css" type="text/css" />
10
     <link rel="stylesheet" href="_static/pygments.css" type="text/css" />
11
     <link rel="stylesheet" href="_static/pygments.css" type="text/css" />
11
-    <script type="text/javascript">
12
-      var DOCUMENTATION_OPTIONS = {
13
-        URL_ROOT:    './',
14
-        VERSION:     '0.12.0',
15
-        COLLAPSE_INDEX: false,
16
-        FILE_SUFFIX: '.html',
17
-        HAS_SOURCE:  true,
18
-        SOURCELINK_SUFFIX: '.txt'
19
-      };
20
-    </script>
12
+    <script type="text/javascript" src="_static/documentation_options.js"></script>
21
     <script type="text/javascript" src="_static/jquery.js"></script>
13
     <script type="text/javascript" src="_static/jquery.js"></script>
22
     <script type="text/javascript" src="_static/underscore.js"></script>
14
     <script type="text/javascript" src="_static/underscore.js"></script>
23
     <script type="text/javascript" src="_static/doctools.js"></script>
15
     <script type="text/javascript" src="_static/doctools.js"></script>
29
   <link media="only screen and (max-device-width: 480px)" href="_static/small_flask.css" type= "text/css" rel="stylesheet" />
21
   <link media="only screen and (max-device-width: 480px)" href="_static/small_flask.css" type= "text/css" rel="stylesheet" />
30
   <meta name="viewport" content="width=device-width, initial-scale=0.9, maximum-scale=0.9">
22
   <meta name="viewport" content="width=device-width, initial-scale=0.9, maximum-scale=0.9">
31
 
23
 
32
-  </head>
33
-  <body>  
24
+  </head><body>  
34
 
25
 
35
     <div class="document">
26
     <div class="document">
36
       <div class="documentwrapper">
27
       <div class="documentwrapper">
99
         </div>
90
         </div>
100
       </div>
91
       </div>
101
       <div class="sphinxsidebar" role="navigation" aria-label="main navigation">
92
       <div class="sphinxsidebar" role="navigation" aria-label="main navigation">
102
-        <div class="sphinxsidebarwrapper"><div class="sidebar_container body">
93
+        <div class="sphinxsidebarwrapper">
94
+  <h3><a href="#">Table Of Contents</a></h3>
95
+  <ul>
96
+<li><a class="reference internal" href="#">Welcome to searx</a><ul>
97
+<li><a class="reference internal" href="#features">Features</a></li>
98
+<li><a class="reference internal" href="#user-documentation">User documentation</a></li>
99
+<li><a class="reference internal" href="#administrator-documentation">Administrator documentation</a></li>
100
+<li><a class="reference internal" href="#developer-documentation">Developer documentation</a></li>
101
+</ul>
102
+</li>
103
+</ul>
104
+<div class="sidebar_container body">
103
 <h1>Searx</h1>
105
 <h1>Searx</h1>
104
 <ul>
106
 <ul>
105
     <li><a href="#">Home</a></li>
107
     <li><a href="#">Home</a></li>
113
     <li><a href="https://twitter.com/Searx_engine">Twitter</a></li>
115
     <li><a href="https://twitter.com/Searx_engine">Twitter</a></li>
114
 </ul>
116
 </ul>
115
 </div>
117
 </div>
118
+  <div role="note" aria-label="source link">
119
+    <h3>This Page</h3>
120
+    <ul class="this-page-menu">
121
+      <li><a href="_sources/index.rst.txt"
122
+            rel="nofollow">Show Source</a></li>
123
+    </ul>
124
+   </div>
125
+<div id="searchbox" style="display: none" role="search">
126
+  <h3>Quick search</h3>
127
+    <div class="searchformwrapper">
128
+    <form class="search" action="search.html" method="get">
129
+      <input type="text" name="q" />
130
+      <input type="submit" value="Go" />
131
+      <input type="hidden" name="check_keywords" value="yes" />
132
+      <input type="hidden" name="area" value="default" />
133
+    </form>
134
+    </div>
135
+</div>
136
+<script type="text/javascript">$('#searchbox').show(0);</script>
116
         </div>
137
         </div>
117
       </div>
138
       </div>
118
       <div class="clearer"></div>
139
       <div class="clearer"></div>

+ 3
- 12
search.html View File

4
 
4
 
5
 <html xmlns="http://www.w3.org/1999/xhtml">
5
 <html xmlns="http://www.w3.org/1999/xhtml">
6
   <head>
6
   <head>
7
+    <meta http-equiv="X-UA-Compatible" content="IE=Edge" />
7
     <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
8
     <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
8
     <title>Search &#8212; searx 0.12.0 documentation</title>
9
     <title>Search &#8212; searx 0.12.0 documentation</title>
9
     <link rel="stylesheet" href="_static/style.css" type="text/css" />
10
     <link rel="stylesheet" href="_static/style.css" type="text/css" />
10
     <link rel="stylesheet" href="_static/pygments.css" type="text/css" />
11
     <link rel="stylesheet" href="_static/pygments.css" type="text/css" />
11
-    <script type="text/javascript">
12
-      var DOCUMENTATION_OPTIONS = {
13
-        URL_ROOT:    './',
14
-        VERSION:     '0.12.0',
15
-        COLLAPSE_INDEX: false,
16
-        FILE_SUFFIX: '.html',
17
-        HAS_SOURCE:  true,
18
-        SOURCELINK_SUFFIX: '.txt'
19
-      };
20
-    </script>
12
+    <script type="text/javascript" src="_static/documentation_options.js"></script>
21
     <script type="text/javascript" src="_static/jquery.js"></script>
13
     <script type="text/javascript" src="_static/jquery.js"></script>
22
     <script type="text/javascript" src="_static/underscore.js"></script>
14
     <script type="text/javascript" src="_static/underscore.js"></script>
23
     <script type="text/javascript" src="_static/doctools.js"></script>
15
     <script type="text/javascript" src="_static/doctools.js"></script>
36
   <meta name="viewport" content="width=device-width, initial-scale=0.9, maximum-scale=0.9">
28
   <meta name="viewport" content="width=device-width, initial-scale=0.9, maximum-scale=0.9">
37
 
29
 
38
 
30
 
39
-  </head>
40
-  <body>  
31
+  </head><body>  
41
 
32
 
42
     <div class="document">
33
     <div class="document">
43
       <div class="documentwrapper">
34
       <div class="documentwrapper">

+ 1
- 1
searchindex.js
File diff suppressed because it is too large
View File


+ 36
- 13
user/own-instance.html View File

4
 
4
 
5
 <html xmlns="http://www.w3.org/1999/xhtml">
5
 <html xmlns="http://www.w3.org/1999/xhtml">
6
   <head>
6
   <head>
7
+    <meta http-equiv="X-UA-Compatible" content="IE=Edge" />
7
     <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
8
     <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
8
     <title>Why use a private instance? &#8212; searx 0.12.0 documentation</title>
9
     <title>Why use a private instance? &#8212; searx 0.12.0 documentation</title>
9
     <link rel="stylesheet" href="../_static/style.css" type="text/css" />
10
     <link rel="stylesheet" href="../_static/style.css" type="text/css" />
10
     <link rel="stylesheet" href="../_static/pygments.css" type="text/css" />
11
     <link rel="stylesheet" href="../_static/pygments.css" type="text/css" />
11
-    <script type="text/javascript">
12
-      var DOCUMENTATION_OPTIONS = {
13
-        URL_ROOT:    '../',
14
-        VERSION:     '0.12.0',
15
-        COLLAPSE_INDEX: false,
16
-        FILE_SUFFIX: '.html',
17
-        HAS_SOURCE:  true,
18
-        SOURCELINK_SUFFIX: '.txt'
19
-      };
20
-    </script>
12
+    <script type="text/javascript" src="../_static/documentation_options.js"></script>
21
     <script type="text/javascript" src="../_static/jquery.js"></script>
13
     <script type="text/javascript" src="../_static/jquery.js"></script>
22
     <script type="text/javascript" src="../_static/underscore.js"></script>
14
     <script type="text/javascript" src="../_static/underscore.js"></script>
23
     <script type="text/javascript" src="../_static/doctools.js"></script>
15
     <script type="text/javascript" src="../_static/doctools.js"></script>
30
   <link media="only screen and (max-device-width: 480px)" href="../_static/small_flask.css" type= "text/css" rel="stylesheet" />
22
   <link media="only screen and (max-device-width: 480px)" href="../_static/small_flask.css" type= "text/css" rel="stylesheet" />
31
   <meta name="viewport" content="width=device-width, initial-scale=0.9, maximum-scale=0.9">
23
   <meta name="viewport" content="width=device-width, initial-scale=0.9, maximum-scale=0.9">
32
 
24
 
33
-  </head>
34
-  <body>  
25
+  </head><body>  
35
 
26
 
36
     <div class="document">
27
     <div class="document">
37
       <div class="documentwrapper">
28
       <div class="documentwrapper">
79
         </div>
70
         </div>
80
       </div>
71
       </div>
81
       <div class="sphinxsidebar" role="navigation" aria-label="main navigation">
72
       <div class="sphinxsidebar" role="navigation" aria-label="main navigation">
82
-        <div class="sphinxsidebarwrapper"><div class="sidebar_container body">
73
+        <div class="sphinxsidebarwrapper">
74
+  <h3><a href="../index.html">Table Of Contents</a></h3>
75
+  <ul>
76
+<li><a class="reference internal" href="#">Why use a private instance?</a><ul>
77
+<li><a class="reference internal" href="#how-does-searx-protect-privacy">How does searx protect privacy?</a><ul>
78
+<li><a class="reference internal" href="#what-are-the-consequences-of-using-public-instances">What are the consequences of using public instances?</a></li>
79
+<li><a class="reference internal" href="#i-see-what-about-private-instances">I see. What about private instances?</a></li>
80
+</ul>
81
+</li>
82
+<li><a class="reference internal" href="#conclusion">Conclusion</a></li>
83
+</ul>
84
+</li>
85
+</ul>
86
+<div class="sidebar_container body">
83
 <h1>Searx</h1>
87
 <h1>Searx</h1>
84
 <ul>
88
 <ul>
85
     <li><a href="../index.html">Home</a></li>
89
     <li><a href="../index.html">Home</a></li>
93
     <li><a href="https://twitter.com/Searx_engine">Twitter</a></li>
97
     <li><a href="https://twitter.com/Searx_engine">Twitter</a></li>
94
 </ul>
98
 </ul>
95
 </div>
99
 </div>
100
+  <div role="note" aria-label="source link">
101
+    <h3>This Page</h3>
102
+    <ul class="this-page-menu">
103
+      <li><a href="../_sources/user/own-instance.rst.txt"
104
+            rel="nofollow">Show Source</a></li>
105
+    </ul>
106
+   </div>
107
+<div id="searchbox" style="display: none" role="search">
108
+  <h3>Quick search</h3>
109
+    <div class="searchformwrapper">
110
+    <form class="search" action="../search.html" method="get">
111
+      <input type="text" name="q" />
112
+      <input type="submit" value="Go" />
113
+      <input type="hidden" name="check_keywords" value="yes" />
114
+      <input type="hidden" name="area" value="default" />
115
+    </form>
116
+    </div>
117
+</div>
118
+<script type="text/javascript">$('#searchbox').show(0);</script>
96
         </div>
119
         </div>
97
       </div>
120
       </div>
98
       <div class="clearer"></div>
121
       <div class="clearer"></div>

+ 36
- 18
user/search_syntax.html View File

4
 
4
 
5
 <html xmlns="http://www.w3.org/1999/xhtml">
5
 <html xmlns="http://www.w3.org/1999/xhtml">
6
   <head>
6
   <head>
7
+    <meta http-equiv="X-UA-Compatible" content="IE=Edge" />
7
     <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
8
     <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
8
     <title>Search syntax &#8212; searx 0.12.0 documentation</title>
9
     <title>Search syntax &#8212; searx 0.12.0 documentation</title>
9
     <link rel="stylesheet" href="../_static/style.css" type="text/css" />
10
     <link rel="stylesheet" href="../_static/style.css" type="text/css" />
10
     <link rel="stylesheet" href="../_static/pygments.css" type="text/css" />
11
     <link rel="stylesheet" href="../_static/pygments.css" type="text/css" />
11
-    <script type="text/javascript">
12
-      var DOCUMENTATION_OPTIONS = {
13
-        URL_ROOT:    '../',
14
-        VERSION:     '0.12.0',
15
-        COLLAPSE_INDEX: false,
16
-        FILE_SUFFIX: '.html',
17
-        HAS_SOURCE:  true,
18
-        SOURCELINK_SUFFIX: '.txt'
19
-      };
20
-    </script>
12
+    <script type="text/javascript" src="../_static/documentation_options.js"></script>
21
     <script type="text/javascript" src="../_static/jquery.js"></script>
13
     <script type="text/javascript" src="../_static/jquery.js"></script>
22
     <script type="text/javascript" src="../_static/underscore.js"></script>
14
     <script type="text/javascript" src="../_static/underscore.js"></script>
23
     <script type="text/javascript" src="../_static/doctools.js"></script>
15
     <script type="text/javascript" src="../_static/doctools.js"></script>
30
   <link media="only screen and (max-device-width: 480px)" href="../_static/small_flask.css" type= "text/css" rel="stylesheet" />
22
   <link media="only screen and (max-device-width: 480px)" href="../_static/small_flask.css" type= "text/css" rel="stylesheet" />
31
   <meta name="viewport" content="width=device-width, initial-scale=0.9, maximum-scale=0.9">
23
   <meta name="viewport" content="width=device-width, initial-scale=0.9, maximum-scale=0.9">
32
 
24
 
33
-  </head>
34
-  <body>  
25
+  </head><body>  
35
 
26
 
36
     <div class="document">
27
     <div class="document">
37
       <div class="documentwrapper">
28
       <div class="documentwrapper">
42
 <h1>Search syntax<a class="headerlink" href="#search-syntax" title="Permalink to this headline">¶</a></h1>
33
 <h1>Search syntax<a class="headerlink" href="#search-syntax" title="Permalink to this headline">¶</a></h1>
43
 <p>Searx allows you to modify the default categories, engines and search
34
 <p>Searx allows you to modify the default categories, engines and search
44
 language via the search query.</p>
35
 language via the search query.</p>
45
-<p>Category/engine prefix: <code class="docutils literal"><span class="pre">!</span></code></p>
46
-<p>Language prefix: <code class="docutils literal"><span class="pre">:</span></code></p>
36
+<p>Category/engine prefix: <code class="docutils literal notranslate"><span class="pre">!</span></code></p>
37
+<p>Language prefix: <code class="docutils literal notranslate"><span class="pre">:</span></code></p>
47
 <p>Prefix to add engines and categories to the currently selected
38
 <p>Prefix to add engines and categories to the currently selected
48
-categories: <code class="docutils literal"><span class="pre">?</span></code></p>
39
+categories: <code class="docutils literal notranslate"><span class="pre">?</span></code></p>
49
 <p>Abbrevations of the engines and languages are also accepted.
40
 <p>Abbrevations of the engines and languages are also accepted.
50
 Engine/category modifiers are chainable and inclusive (e.g. with
41
 Engine/category modifiers are chainable and inclusive (e.g. with
51
 <a class="reference external" href="https://searx.me/?q=%21it%20%21ddg%20%21wp%20qwer">!it !ddg !wp qwer</a>
42
 <a class="reference external" href="https://searx.me/?q=%21it%20%21ddg%20%21wp%20qwer">!it !ddg !wp qwer</a>
52
-search in IT category <strong>and</strong> duckduckgo <strong>and</strong> wikipedia for <code class="docutils literal"><span class="pre">qwer</span></code>).</p>
43
+search in IT category <strong>and</strong> duckduckgo <strong>and</strong> wikipedia for <code class="docutils literal notranslate"><span class="pre">qwer</span></code>).</p>
53
 <p>See the <a class="reference external" href="https://searx.me/preferences">/preferences page</a> for the
44
 <p>See the <a class="reference external" href="https://searx.me/preferences">/preferences page</a> for the
54
 list of engines, categories and languages.</p>
45
 list of engines, categories and languages.</p>
55
 <div class="section" id="examples">
46
 <div class="section" id="examples">
56
 <h2>Examples<a class="headerlink" href="#examples" title="Permalink to this headline">¶</a></h2>
47
 <h2>Examples<a class="headerlink" href="#examples" title="Permalink to this headline">¶</a></h2>
57
-<p>Search in wikipedia for <code class="docutils literal"><span class="pre">qwer</span></code>:
48
+<p>Search in wikipedia for <code class="docutils literal notranslate"><span class="pre">qwer</span></code>:
58
 <a class="reference external" href="https://searx.me/?q=%21wp%20qwer">!wp qwer</a> or
49
 <a class="reference external" href="https://searx.me/?q=%21wp%20qwer">!wp qwer</a> or
59
 <a class="reference external" href="https://searx.me/?q=%21wikipedia%20qwer">!wikipedia qwer</a></p>
50
 <a class="reference external" href="https://searx.me/?q=%21wikipedia%20qwer">!wikipedia qwer</a></p>
60
 <p>Image search:
51
 <p>Image search:
69
         </div>
60
         </div>
70
       </div>
61
       </div>
71
       <div class="sphinxsidebar" role="navigation" aria-label="main navigation">
62
       <div class="sphinxsidebar" role="navigation" aria-label="main navigation">
72
-        <div class="sphinxsidebarwrapper"><div class="sidebar_container body">
63
+        <div class="sphinxsidebarwrapper">
64
+  <h3><a href="../index.html">Table Of Contents</a></h3>
65
+  <ul>
66
+<li><a class="reference internal" href="#">Search syntax</a><ul>
67
+<li><a class="reference internal" href="#examples">Examples</a></li>
68
+</ul>
69
+</li>
70
+</ul>
71
+<div class="sidebar_container body">
73
 <h1>Searx</h1>
72
 <h1>Searx</h1>
74
 <ul>
73
 <ul>
75
     <li><a href="../index.html">Home</a></li>
74
     <li><a href="../index.html">Home</a></li>
83
     <li><a href="https://twitter.com/Searx_engine">Twitter</a></li>
82
     <li><a href="https://twitter.com/Searx_engine">Twitter</a></li>
84
 </ul>
83
 </ul>
85
 </div>
84
 </div>
85
+  <div role="note" aria-label="source link">
86
+    <h3>This Page</h3>
87
+    <ul class="this-page-menu">
88
+      <li><a href="../_sources/user/search_syntax.rst.txt"
89
+            rel="nofollow">Show Source</a></li>
90
+    </ul>
91
+   </div>
92
+<div id="searchbox" style="display: none" role="search">
93
+  <h3>Quick search</h3>
94
+    <div class="searchformwrapper">
95
+    <form class="search" action="../search.html" method="get">
96
+      <input type="text" name="q" />
97
+      <input type="submit" value="Go" />
98
+      <input type="hidden" name="check_keywords" value="yes" />
99
+      <input type="hidden" name="area" value="default" />
100
+    </form>
101
+    </div>
102
+</div>
103
+<script type="text/javascript">$('#searchbox').show(0);</script>
86
         </div>
104
         </div>
87
       </div>
105
       </div>
88
       <div class="clearer"></div>
106
       <div class="clearer"></div>