summaryrefslogtreecommitdiff
path: root/README.md
blob: d9f159d5d1837b01194531afa08a505bdc5c7598 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
searx
=====

A privacy-respecting, hackable [metasearch engine](https://en.wikipedia.org/wiki/Metasearch_engine).

List of [running instances](https://github.com/asciimoo/searx/wiki/Searx-instances).

[![Flattr searx](http://api.flattr.com/button/flattr-badge-large.png)](https://flattr.com/submit/auto?user_id=asciimoo&url=https://github.com/asciimoo/searx&title=searx&language=&tags=github&category=software)

### Features

* Tracking free
* Modular (see [examples](https://github.com/asciimoo/searx/blob/master/examples))
* Parallel queries
* Supports multiple output formats
 * json `curl https://searx.0x2a.tk/?format=json&q=[query]`
 * csv `curl https://searx.0x2a.tk/?format=csv&q=[query]`
 * opensearch/rss `curl https://searx.0x2a.tk/?format=rss&q=[query]`
* Opensearch support (you can set as default search engine)
* Configurable search engines/categories

### Installation

* clone source: `git clone git@github.com:asciimoo/searx.git && cd searx`
* install dependencies: `pip install -r requirements.txt`
* edit your [searx/settings.py](https://github.com/asciimoo/searx/blob/master/searx/settings.py) (set your `secret_key`!)
* rename `engines.cfg_sample` to `engines.cfg`
* run `python searx/webapp.py` to start the application

For all the details, follow this [step by step installation](https://github.com/asciimoo/searx/wiki/Installation)

### Alternative (Recommended) Installation

* clone source: `git clone git@github.com:asciimoo/searx.git && cd searx`
* build in current folder: `make minimal`
* run `bin/searx-run` to start the application


### Development

Just run `make`. Versions of dependencies are pinned down inside `versions.cfg` to produce most stable build.

#### Command make

##### `make`

Builds development environment with testing support.

##### `make tests`

Runs tests. You can write tests [here](https://github.com/asciimoo/searx/tree/master/searx/tests) and remember 'untested code is broken code'.

##### `make robot`

Runs robot (Selenium) tests, you must have `firefox` installed because this functional tests actually run the browser and perform operations on it. Also searx is executed with [settings_robot](https://github.com/asciimoo/searx/blob/master/searx/settings_robot.py).

##### `make flake8`

'pep8 is a tool to check your Python code against some of the style conventions in [PEP 8](http://www.python.org/dev/peps/pep-0008/).'

##### `make coverage`

Checks coverage of tests, after running this, execute this: `firefox ./coverage/index.html`

##### `make minimal`

Used to make co-called production environment - without tests (you should ran tests before deploying searx on the server).

##### `make clean`

Deletes several folders and files (see `Makefile` for more), so that next time you run any other `make` command it will rebuild everithing.


### TODO

* Moar engines
* Better ui
* Language support
* Documentation
* Pagination
* Fix `flake8` errors, `make flake8` will be merged into `make tests` when it does not fail anymore
* Tests
* When we have more tests, we can integrate Travis-CI


### Bugs

Bugs or suggestions? Visit the [issue tracker](https://github.com/asciimoo/searx/issues).


### [License](https://github.com/asciimoo/searx/blob/master/LICENSE)


### More about searx

* [ohloh](https://www.ohloh.net/p/searx/)
* [twitter](https://twitter.com/Searx_engine)